早教吧 育儿知识 作业答案 考试题库 百科 知识分享

一个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

题目详情
一个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,'*') %如果点均匀分居线两侧,拟合结果较好