matlab幂律拟合曲线
时间: 2023-11-13 15:56:24 浏览: 272
Matlab中可以使用powerlawfit函数进行幂律拟合,该函数需要输入数据和拟合的范围。以下是一个示例代码:
```matlab
% 生成幂律分布的数据
x = linspace(1, 100, 1000);
y = 10 * x.^(-2);
% 添加噪声
noise = randn(size(y)) * 0.1;
y = y + noise;
% 进行幂律拟合
[powerlaw, goodness] = powerlawfit(x, y, [1, 100]);
% 绘制拟合曲线和原始数据
figure;
loglog(x, y, 'o');
hold on;
loglog(x, powerlaw(x));
xlabel('x');
ylabel('y');
legend('Data', 'Power Law Fit');
% 输出拟合结果
disp(['Power Law Fit: y = ', num2str(powerlaw.a), ' * x^(', num2str(powerlaw.b), ')']);
disp(['Goodness of Fit: R^2 = ', num2str(goodness.rsquare)]);
```
阅读全文