24小时热门版块排行榜    

查看: 355  |  回复: 2

muyouyou

新虫 (初入文坛)

[求助] matlab拟合多项式,求高手指点 已有2人参与

x1=[21,26,31,21,26,31,21,26,31,21,26,31,21,26,31,21,26,31];
x2=[133,143,153,133,143,153,143,153,133,153,133,143,143,153,133,153,133,143];
x3=[3.9,4.4,4.9,4.4,4.9,3.9,3.9,4.4,4.9,4.9,3.9,4.4,4.9,3.9,4.4,4.4,4.9,3.9];
y=[40.69803,40.24597,39.66466,39.65027,39.3111,41.64728,39.43865,39.07176,42.09825,36.28181,42.55311,41.77374,37.45602,40.11952,43.03311,37.21668,40.57048,42.8215];
如何拟合成y=f(x1,x2,x3)的多项式,望高手指点。。。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

aihehaitang

金虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
设y=n1*x1+n2*x2+n3*x3;把x1,x2,x3,y的数值带入,求出n1、n2、n3
貌似你这n1、n2、n3是不确定的,因为三个未知数,却又18个方程,所以可能你的数据有误;或者此题无解
2楼2014-11-12 13:32:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

on_the_road

金虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
x1=[21,26,31,21,26,31,21,26,31,21,26,31,21,26,31,21,26,31]';
x2=[133,143,153,133,143,153,143,153,133,153,133,143,143,153,133,153,133,143]';
x3=[3.9,4.4,4.9,4.4,4.9,3.9,3.9,4.4,4.9,4.9,3.9,4.4,4.9,3.9,4.4,4.4,4.9,3.9]';
y=[40.69803,40.24597,39.66466,39.65027,39.3111,41.64728,39.43865,39.07176,42.09825,36.28181,42.55311,41.77374,37.45602,40.11952,43.03311,37.21668,40.57048,42.8215]';
F=[ones(size(y)),x1,x2,x3];
a=F\y

可得a=57.5312
    0.3383
   -0.1217
   -1.9826
所以 y=57.5312+0.3383*x1+(-0.1217)*x2+(-1.9826)*x3;
另还可以做误差图,
      e=z-y;
>> stem(1:18,e);
>> hold on;
>> stem(1:18,y,'r');
>> hold off;
>> legend('e','y')   即可得到误差图。
3楼2014-11-12 19:29:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 muyouyou 的主题更新
信息提示
请填处理意见