MATLAB最小二乘法拟合曲线

x=[0.11 0.13 0.19 0.21 0.27 0.37 0.53 0.59 0.71 0.79 0.89 1.07];
y=[3868-1066 3733-888.3 3659-789.6 3599-710.7 3508-592.2 3463-533 3335-367.6 3257-266.5 3215-213.2 3200-193.8 3125-133.3 3131-106.6];
x和Y的函数为y=a+bx^2
需拟合出关于想,x,y的曲线
请写出具体程序~~~~

楼主是想把最小二乘法的算法体现出来么,看下面这段代码是不是你想要的:

x0=[0.11 0.13 0.19 0.21 0.27 0.37 0.53 0.59 0.71 0.79 0.89 1.07];

y0=[3868-1066 3733-888.3 3659-789.6 3599-710.7 3508-592.2 3463-533 3335-367.6 3257-266.5 3215-213.2 3200-193.8 3125-133.3 3131-106.6];

for i=1:3

    xx0(i,1:length(x0))=x0.^(3-i);

end

coe=inv(xx0*xx0')*xx0*y0'

%以上得到y=-2808x^2+514.5x+2.7784,将给出点和拟合曲线画在同意图中如下%

plot(x0,y0,'b*');

hold on;

 x=0:0.01:1.5;

 y=-280*x.^2+514.5*x+2778.4;

 plot(x,y,'.');

看拟合图线比较吻合楼主你给的公式是不是有问题,结果又x的一次项

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-26
最小二乘法不难,
就是一个目标函数求极值问题,
目标函数是
err0=(5.6-f(3))^2+(5.81-f(4))^2+...+(5.96-f(8))^2
erro函数再对a0,a1,...
^a4
求导,令倒数为零即可。
第2个回答  推荐于2018-02-27
如上所述,采用polyfit来拟合,二次多项式polyfit(x,y,2)

x=[0.11 0.13 0.19 0.21 0.27 0.37 0.53 0.59 0.71 0.79 0.89 1.07];
y=[3868-1066 3733-888.3 3659-789.6 3599-710.7 3508-592.2 3463-533 3335-367.6 3257-266.5 3215-213.2 3200-193.8 3125-133.3 3131-106.6];
p=polyfit(x,y,2);
hold on;
plot(x,y,'o')
plot(x,polyval(p,x),'r');本回答被提问者和网友采纳
第3个回答  2010-06-02
用nonlinfit,或者多项式拟合polyfit(x,y,2),或者非线性曲线拟合指令lsqcurvefit
第4个回答  2010-06-03
x=[0.11 0.13 0.19 0.21 0.27 0.37 0.53 0.59 0.71 0.79 0.89 1.07];
y=[3868-1066 3733-888.3 3659-789.6 3599-710.7 3508-592.2 3463-533 3335-367.6 3257-266.5 3215-213.2 3200-193.8 3125-133.3 3131-106.6];
f=@(p,x)p(1)+p(2)*x.^2;
p=nlinfit(x,y,f,[1000,1000])% p(1)即a,p(2)即b
%p =
% 1.0e+003 *

% 2.8813 0.1636
x1=0:0.1:1.2;
y1=p(1)+p(2)*x1.^2;
plot(x,y,'or',x1,y1,'b')%查看拟合效果,看出用拟合公式拟合的不好

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?
如何用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中怎么实现?
matlab有多种最小二乘法,最简单的最小二乘法是函数lsqlin,可用help lsqlin查看相关解释。拟合曲线:线性最小二乘法,lsqlin;非负最小二乘法,lsqnonneg;非线性曲线拟合,lsqcurvefit(FUN,X0,XDATA,YDATA) ,最小二乘法拟合。它解决如下问题:lsqlin Constrained linear least squares.X = lsqlin(C...

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...

matlab最小二乘法拟合的线为什么是直线
不一定非得是直线啊,可以是曲线,最小二乘法拟合的目的是通过一定的方法(高斯牛顿法、LM法等)计算、迭代达到预测值与真实值之间的离差平方和最小,从而求出符合要求的参数,所以不仅适用于直线拟合还是用于曲线拟合。

怎样用matlab作数据的最小二乘拟合?
x,y是你的数据,n是你要进行几次拟合,填1的话为一次也就是最小二乘法拟合 你可以这样写 x=[0.250.50.7511.522.533.544.55678910111213141516];y=[3068758282776868585150413835282518151210774];p=polyfit(x,y,1);plot(x,y,'b',x,polyval(p,x),'r'); %如果作图的话,蓝线为原数据,红线...

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

如何用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的数组元素对应减去原数据数组元素,得到误差数组...

相似回答