如何用matlab求最小二乘法
4个回答
2017-08-20
展开全部
fz=@(z,x)z(1)*x.^2+z(2)*x+z(3),'z','x';[z,resnorm,residual,exitflag,output]=lsqcurvefit(fz,z0,x,y,[],[],options)z0为系数矩阵初值一般评价最小二乘非线性拟合不是用相关性系数,而是用residual,残差或残差平方和再有一种是用nonfit,很简单的一种非线性回归,不用写函数格式我没有看清楚,不好意思,所谓偏最小二乘法,就是指在做基于最小二乘法的线性回归分析之前,对数据集进行主成分分析降维,将最后得到的主成分作为输入的x,你可以看一下princomp这个函数是进行主成分分析的
展开全部
举例
x=[0 0.2 0.4 0.6 0.8 1.0]; %测得的温度数据
y=[0 0.19 0.32 0.46 0.66 0.83]; %测得的电容数据
p=polyfit(x,y,1) %调用拟合函数
x1=0:0.1:1.2; %设置采样区间,采样点
y1=polyval(p,x1); %计算多项式在x1处的值
plot(x,y,'*r',x1,y1,'-b');
x=[0 0.2 0.4 0.6 0.8 1.0]; %测得的温度数据
y=[0 0.19 0.32 0.46 0.66 0.83]; %测得的电容数据
p=polyfit(x,y,1) %调用拟合函数
x1=0:0.1:1.2; %设置采样区间,采样点
y1=polyval(p,x1); %计算多项式在x1处的值
plot(x,y,'*r',x1,y1,'-b');
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-09-19
展开全部
线性最小二乘法的函数:isqlin非线性最小二乘法的函数:isqcurvefit具体用法自己doc命令查吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Matlab中提供的 lsqcurvefit() 函数。
调用格式:[a,Jm]=lsqcurvefit(Fun,a0,x,y)
Fun为原型函数的matlab表示,可以使M=函数或是inline()函数,a0是最优化的初值,x,y是原始输入数据向量,调用该函数则将返回待定系数向量a以及系数的目标函数Jm。
例:
x=0.1:0.1:1;
y=[2.3201,2.6470,2.9707,3.2886,3.6008,3.9090,4.2147,4.5191,4.8232,5.1275];
%建立Matlab函数原型为M-函数
function y=sss(a,x)
y=a(1)*x+a(2)*x.^2*exp(-a(3)*x)+a(4);
>>a=lsqcurvefit(@sss,[1,2,2,3],x,y)
a=2.4587 2.4489 1.4466 2.0734
参考资料: 精通Matlab
调用格式:[a,Jm]=lsqcurvefit(Fun,a0,x,y)
Fun为原型函数的matlab表示,可以使M=函数或是inline()函数,a0是最优化的初值,x,y是原始输入数据向量,调用该函数则将返回待定系数向量a以及系数的目标函数Jm。
例:
x=0.1:0.1:1;
y=[2.3201,2.6470,2.9707,3.2886,3.6008,3.9090,4.2147,4.5191,4.8232,5.1275];
%建立Matlab函数原型为M-函数
function y=sss(a,x)
y=a(1)*x+a(2)*x.^2*exp(-a(3)*x)+a(4);
>>a=lsqcurvefit(@sss,[1,2,2,3],x,y)
a=2.4587 2.4489 1.4466 2.0734
参考资料: 精通Matlab
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询