急~如何利用MATLAB求解高阶方程的系数

来源:百度知道 编辑:UC知道 时间:2024/06/13 23:22:09
例如一个三阶方程y=a+bx+cx^2+dx^3
知道X和Y的三组值,如何求解参数~~~
求助~~~

依题意就变成了以下的方程组
%a+x(1)*b+x(1)^2*c+x(1)^3*d=y(1);
%a+x(2)*b+x(2)^2*c+x(2)^3*d=y(2);
%a+x(3)*b+x(3)^2*c+x(3)^3*d=y(3);
%写成矩阵的形式:xx(3*4)*aa(4*1)=y(3*1) 其中3*1表示3行1列

x=[1 2 3];y=[2; 1; 5];%依题意写入知道的X和Y的三组值
c=[0 1 2 3];
xx=zeros(3,4);
for i=1:3
xx(i,:)=x(i).^c;
end
aa=xx\y %因为是一个超定方程,即方程个数小于未知数个数只能得到一个特解

结果:
aa =

3.3636
0
-2.1364
0.7727

syms a b c d;
A=[a b c d]';
x=[1 x1a x2a x3a;1 x1b x2b x3b;1 x1c x2c x3c];
y=[y1;y2;y3];
A=inv(x'*x)*x'*y