用最小二乘法在MATLAB中拟合曲线

拟合函数形式为: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的值

你好!

既然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

图片:

温馨提示:内容为网友见解,仅供参考
无其他回答

matlab最小二乘法拟合曲线
Matlab最小二乘法拟合曲线的步骤:1. 准备数据:准备要进行拟合的数据点集,包括横坐标和纵坐标的数据。2. 使用polyfit函数进行拟合:在Matlab中,可以使用polyfit函数进行多项式拟合,该函数基于最小二乘法原理。调用格式为[p,S,mu] = polyfit,其中x和y是数据点,n是多项式的阶数,p是多项式系数向量...

matlab最小二乘法曲线拟合怎么取?
最常用的曲线拟合方法是最小二乘法,该方法是寻找函数使得最小。\\x0d\\x0aMATLAB函数:p=polyfit(x,y,n)\\x0d\\x0a[p,s]= polyfit(x,y,n)\\x0d\\x0a说明:x,y为数据点,n为多项式阶数,返回p为幂次从高到低的多项式系数向量p。x必须是单调的。矩阵s用于生成预测值的误差估计。(见下一...

MATLAB最小二乘法拟合曲线
在MATLAB中,最小二乘法是一种常用的方法,用于拟合数据点并找到最佳的函数模型。当我们需要对一组数据(如x=[0.11, 0.13, 0.19, ..., 1.07]和y=[3868-1066, 3733-888.3, ..., 3131-106.6])进行二次多项式拟合时,可以使用polyfit函数。首先,我们导入数据,然后调用polyfit(x, y, ...

matlab拟合椭圆曲线
最小二乘法:function zdd = [0.50151 0; 0 1.26586; 1.28399 1.28399; 0.68278 -0.68278; 0 -2.45619; -7.17523 0; -11.13293 -11.13293; -2.15106 2.15106];X = d(:,1)';Y = d(:,2)';clfplot(X,Y,'x')hold onc = lsqcurvefit(@curve,[8 2 50*pi\/180 -5...

用加权最小二乘法拟合曲线matlab?
如何用matlab求加权最小二乘法拟合曲线?第一步,根据给出的xi、yi、wi分别赋值给x、y、w列变量第二步,将xi与wi乘积赋值给X变量,即X=w.*x;第三步,创建多项式系数矩阵,即X1=[X.^4 X.^3 X.^2 X ones(size(x))];第四步,使用regress函数求出拟合系数,即[p,bint,r,rint,stats] ...

matlab最小二乘法曲线拟合
用nlinfit()函数拟合,得到 c= 0.02000000498,K = -1.000012511 拟合精度R=0.99999999999997925522105374252033

matlab 最小二乘法拟合
主要的问题是inline函数写法不对,matlab不能识别下面的写法:f = inline('R * exp(-a * x)','[R a]','x');像这种有多个待辨识参数的情况,应该写成一个向量,如 f = inline('c(1) * exp(-c(2) * x)','c','x');参考代码:生成测试数据t=linspace(0,2*pi,50);x=1.5*...

如何用MATLAB求最小二乘法拟合曲线与原数据的最大偏差量
e1 = abs(e);max(e1)原理:x是自变量数组,y是原数据数组,n是你选择拟合的多项式阶数。如n=1,就是y=a+bx.n=2,就是y=a+bx+cx^2. p是最小二乘意义下的系数结果的数组,即[a,b,c]。然后把求得的p带回多项式计算曲线的y坐标y1, 让y1的数组元素对应减去原数据数组元素,得到误差数组...

在matlab 中用最小二乘法拟合y=a*x^2+b*x的程序要如何写?
matlab中曲线拟合的最优标准是采用最常见的最小二乘法,而所谓曲线拟合就是利用最小二乘法使得拟合多项式在各节点处的偏差达到最小。给出一组数据的话就可以进行数据拟合。你说的应该是2次拟合多项式 程序如下:t=输入数据;y=输入数据;p=polyfit(t,y,3)然后就可以进行数据拟合了。

用MATLAB将这些点用最小二乘法拟合成一条三维曲线并得出一般方程和参数...
根据数据判断,三维曲线方程 为 z(x,y)=Ax^2+Bx*y+Cy^2+Dx+Ey+F 用matlab的regress()函数命令,拟合出A、B、C、D、E、F系数。拟合结果:方程系数 A=-0.39445,B=-0.44107,C=-0.12052,D=-88.1778,E=-47.1086,F=-4240.7499 R²=0.99999 %决定系数(拟合精度)用matlab...

相似回答