作业帮 > 综合 > 作业

一个matlab三维拟合的问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/17 10:51:06
一个matlab三维拟合的问题
shuju=[
0.1929 0.0000 2.3300
0.2088 0.0000 2.3100
0.1612 0.0000 2.3900
0.2069 0.0000 2.3200
0.2475 0.1000 2.2500
0.2750 0.1600 2.2400
0.2532 0.1000 2.2400
0.1146 0.0600 2.4500
0.2438 0.0400 2.2300
0.1651 0.0300 2.3800
0.1145 0.0500 2.4700
0.2678 0.0600 2.1800
0.0474 0.0700 2.5300
0.1351 0.2700 2.4100
0.1907 0.0600 2.3600
0.2696 0.1600 2.2500
0.0608 0.0600 2.5000
0.1398 0.1400 2.4700
0.1866 0.0600 2.3500
0.2191 0.0400 2.2800
0.1991 0.0500 2.3400
];
x=shuju(1:26,1) ;
y=shuju(1:26,2) ;
z=shuju(1:26,3);
要求拟合的方程:z=Ax+By+Cxy+D
求出系数,
我删了几行数据,所以已经不是26行了
shuju=[
0.1929 0.0000 2.3300
0.2088 0.0000 2.3100
0.1612 0.0000 2.3900
0.2069 0.0000 2.3200
0.2475 0.1000 2.2500
0.2750 0.1600 2.2400
0.2532 0.1000 2.2400
0.1146 0.0600 2.4500
0.2438 0.0400 2.2300
0.1651 0.0300 2.3800
0.1145 0.0500 2.4700
0.2678 0.0600 2.1800
0.0474 0.0700 2.5300
0.1351 0.2700 2.4100
0.1907 0.0600 2.3600
0.2696 0.1600 2.2500
0.0608 0.0600 2.5000
0.1398 0.1400 2.4700
0.1866 0.0600 2.3500
0.2191 0.0400 2.2800
0.1991 0.0500 2.3400
];
x=shuju(:,1); %直接用:表示所有的行
y=shuju(:,2);
z=shuju(:,3);
Matr=[x,y,x.*y,ones(size(x))];
ABCD=Matr\z;
A=ABCD(1)
B=ABCD(2)
C=ABCD(3)
D=ABCD(4)
%下面是比较拟合的结果
z_fit=A*x+B*y+C*x.*y+D; %拟合值
plot(z,z,z,z_fit,'*') %如果点均匀分居线两侧,拟合结果较好