关于matlab下用最小二乘法拟合曲面的问题
我在matlab下想对函数z=a(1)*x+a(2)*y+a(3)进行最小二乘拟合,数据为x=[1.523.033.274.20.93-4.2-3.27-3.03-1.5...
我在matlab下想对函数z=a(1)*x+a(2)*y+a(3)进行最小二乘拟合,数据为
x=[1.52 3.03 3.27 4.2 0.93 -4.2 -3.27 -3.03 -1.52];
y=[0.8 2.1 4.6 7.1 8.4 7.1 4.6 2.1 0.8];
z=[2.16 2.4 2.69 3.82 3.02 2.68 2.5 2.48 2.31];
查了不少资料,没有找到解决办法,还请各位多多帮忙。谢谢。
我是想实现曲面拟合,谢谢! 展开
x=[1.52 3.03 3.27 4.2 0.93 -4.2 -3.27 -3.03 -1.52];
y=[0.8 2.1 4.6 7.1 8.4 7.1 4.6 2.1 0.8];
z=[2.16 2.4 2.69 3.82 3.02 2.68 2.5 2.48 2.31];
查了不少资料,没有找到解决办法,还请各位多多帮忙。谢谢。
我是想实现曲面拟合,谢谢! 展开
3个回答
展开全部
x=[1.52 3.03 3.27 4.2 0.93 -4.2 -3.27 -3.03 -1.52];
y=[0.8 2.1 4.6 7.1 8.4 7.1 4.6 2.1 0.8];
z=[2.16 2.4 2.69 3.82 3.02 2.68 2.5 2.48 2.31];
A=[x',y',ones(size(x'))];
a=A\z'
得到
a =
0.0592
0.1269
2.1371
就是说a(1)=0.0592
a(2)=0.1269
a(3)=2.371
原理:
我们可以把这题看成已知x,y,z,来求a(1),a(2),a(3)
由于表达式对于a(1),a(2),a(3)来说是线性的。
也就相当于求解三元一次方程组(只不过这里的方程数比未知数个数多)。这个可以用矩阵来解决。
你先看一下上面构造出来的A,然后再看一下A乘以[a1;a2;a3]这个列向量。
可能你就知道上面是什么意思了。
y=[0.8 2.1 4.6 7.1 8.4 7.1 4.6 2.1 0.8];
z=[2.16 2.4 2.69 3.82 3.02 2.68 2.5 2.48 2.31];
A=[x',y',ones(size(x'))];
a=A\z'
得到
a =
0.0592
0.1269
2.1371
就是说a(1)=0.0592
a(2)=0.1269
a(3)=2.371
原理:
我们可以把这题看成已知x,y,z,来求a(1),a(2),a(3)
由于表达式对于a(1),a(2),a(3)来说是线性的。
也就相当于求解三元一次方程组(只不过这里的方程数比未知数个数多)。这个可以用矩阵来解决。
你先看一下上面构造出来的A,然后再看一下A乘以[a1;a2;a3]这个列向量。
可能你就知道上面是什么意思了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询