在matlab中,怎样求下列方程的系数。是四元二次线性方程,最好能出现Y=A*X^2+B*X+C;

在matlab中,怎样求下列方程的系数。是四元二次多项式,最好能出现Y=A*X^2+B*X+C;这样的形式,其中ABC 都是矩阵,我的目的就是求出ABC三个矩阵。系数矩阵。
如果各位有更好的求这个四元二次多项式,系数的方法,更好,感谢。。。。。
x=[3.5 0.35 0.8 0.6
3.5 0.425 1.82 1.3
3.5 0.5 2.8 2
4.25 0.35 1.82 2
4.25 0.425 2.8 0.6
4.25 0.5 0.8 1.3
5 0.35 2.8 1.3
5 0.425 0.8 2
5 0.5 1.82 0.6
];
Y=[18.42
19.5
19.3
18.73
19.21
19.93
17.51
18.91
19.85
];
>>X=[ones(9,1),x];
syms a b c X;
Y=(ax+b)X+c;
t=coeffs(Y,X);
t(3)
再问一句,下面的语句看不大懂
A = diag(t(1:4))
B = t(5:8)'
C = t(9)
第一个是求对角矩阵的,B是?系数吗?

对于Y=A*X^2+B*X+C(确切一点说,应该是Y=X'*A*X+B*X+C)的形式,X是4x1向量,则A是4x4矩阵,B是1x4向量,C是标量,共21未知数,但现在的数据只有9组约束,显然有很多未知数是自由的。

 

可以考虑对矩阵A加一些限制条件,例如,规定A是对较阵,此时共有9个未知数,如果约束条件独立,应该可以求出唯一解来。

 

参考代码:

x = [3.5 0.35 0.8 0.6
    3.5 0.425 1.82 1.3
    3.5 0.5 2.8 2
    4.25 0.35 1.82 2
    4.25 0.425 2.8 0.6
    4.25 0.5 0.8 1.3
    5 0.35 2.8 1.3
    5 0.425 0.8 2
    5 0.5 1.82 0.6
];
Y = [18.42
    19.5
    19.3
    18.73
    19.21
    19.93
    17.51
    18.91
    19.85
];

X = [x.^2 x ones(9,1)];
t = X\Y;
A = diag(t(1:4))
B = t(5:8)'
C = t(9)

 

求得结果:

A =

   -0.6667         0         0         0
         0  -44.4444         0         0
         0         0   -0.4843         0
         0         0         0    0.1837


B =

    5.4556   47.6000    1.5369   -0.6061


C =

   -4.3453

追问

得到的方程是:y=a1*x1^2+a2*x2^2+a3*x3^2+a4*x4^2+b1*x1+b2*x2+b3*x3+b4*x4+c,
只有x^2,跟x的关系,而没有相互之间的关系。比如x1*x2,x2*x3,x3*x4,.......
而这正是我需要的东西。最好得出,x,x1*x2这下关系的。有很多未知数是自由的不要紧,只要能找出他们之间的关系就好。

追答

没看明白你的意思。

回归模型在能满足精度要求的条件下,一般尽量选择简单的,这也是著名的奥卡姆剃刀原则。

你给的数据一共9组,使用现在的方程刚好有9个参数,完全可以满足精度要求,为什么还一定要再增加其它项呢?你也完全可以理解为,x1*x2等项的系数都是0。

 

补充:

A = diag(t(1:4))  是用向量生成对角矩阵(也就是你上面写的方程中的a1~a4);
B = t(5:8)'  是系数b1~b4。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-07-10
实在看不理解你的题,下面东西也运行不了
第2个回答  2014-07-10
>> x=[3.5 0.35 0.8 0.6
3.5 0.425 1.82 1.3
3.5 0.5 2.8 2
4.25 0.35 1.82 2
4.25 0.425 2.8 0.6
4.25 0.5 0.8 1.3
5 0.35 2.8 1.3
5 0.425 0.8 2
5 0.5 1.82 0.6];
Y=[18.42
19.5
19.3
18.73
19.21
19.93
17.51
18.91
19.85];
X=[ones(9,1),x,x.^2];
[b]=regress(Y,X)
b =
-4.3453
5.4556
47.6000
1.5369
-0.6061
-0.6667
-44.4444
-0.4843
0.1837
b的解依次排下来就是常数项 一次项 和二次项的系数 正好九个
相似回答