急急,关于MATLAB求矩阵的问题

来源:百度知道 编辑:UC知道 时间:2024/09/24 01:38:05
我现在要算一个矩阵,z=a*x^2+b*x+c*y+d,z x y为矩阵,且已知,现在要求系数a b c d ,有没人帮我编一个啊,虽然较简单,但俺不太会哦.急用中.

PS 矩阵 Z X Y 不局限为4行,可无限增加,当然先定义4行计算,可人为定义为 1;2;3;4,演示一下即可...数我再自己换.

急急急.

x=rand(1,10);
y=rand(1,10);
z=rand(1,10);
%注意x,y,z是一行十列的行向量,你的如果是列向量,那么转置一下。
%另外多少行没有关系,只要大于等于4行就OK
%如果你的是多行多列的矩阵,那么通过以下转成行向量
%x=x(:)' 就可以转成一行多列的行向量。

A=[x.^2;x;y;ones(size(x))]';
b=z';
const=A\b;
a=const(1);
b=const(2);
c=const(3);
d=const(4);
a,b,c,d

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
例:
说明,我们从己知的a,b,c,d中,根据x,y值,生成一系列的z的值,
然后根据x,y,z看能否计算出a,b,c,d的值。

aa=1;
bb=2;
cc=3;
dd=4;

x=[1,2,3;4,5,6;7,8,9;10,11,12];
y=[1,1,1;2,3,4;1,6,10;3,7,10];
z=aa*x.^2+bb*x+cc*y+dd; %生成z

%注意x,y,z是一行十列的行向量,你的如果是列向量,那么转置一下。
%另外多少行没有关系,只要大于等于4行就OK
%如果你的是多行多列的矩阵,那么通过以下转成行向量
%x=x(:)' 就可以转成一行多列的行向量。

%%以下将矩阵变成行向量
x=x(:)';
y=y(:)';
z=z(:)';

A=[x.^2;x;y;ones(size(x))]';
b=z';
const=A\b;
a=const(1);
b=const(2);
c=const(3);a
d=c