用最小二乘法在MATLAB中拟合曲线
拟合函数形式为:y=a×(x^b);数据:y=[15.0335.6727.0641.317.5947.799.6432.0324.2120.3113.2325.3864....
拟合函数形式为:y=a×(x^b);数据:y=[15.03 35.67 27.06 41.3 17.59 47.79 9.64 32.03 24.21 20.31 13.23 25.38 64.17 7.49]; x=[66.52 28.08 37.61 26.68 56.52 22.71 113.163 34.33 48.48 56.18 78.23 43.7 16.75 151.02],用matlab编程程序该怎么写啊,谢谢!
需要求出未知系数a和b的值 展开
需要求出未知系数a和b的值 展开
展开全部
你好!
既然y=ax^b
那么ln(y)=bln(x)+lna;
下面是我的代码:
clc;clear all
x=[66.52 28.08 37.61 26.68 56.52 22.71 113.163 34.33 48.48 56.18 78.23 43.7 16.75 151.02];
y=[15.03 35.67 27.06 41.3 17.59 47.79 9.64 32.03 24.21 20.31 13.23 25.38 64.17 7.49];
x1=log(x);
y1=log(y);
p=polyfit(x1,y1,1);
b=p(1);
a=exp(p(2));
fprintf('a=%f\n',a);fprintf('b=%f\n\n',b);
hold on
plot(x,a*(x.^b),'*')
plot(x,y,'r.')
legend('拟合后的点','拟合前的点')
最后算出来的结果是:
a=1036.841810
b=-0.990830
图片:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询