运用matlab进行曲线拟合,求出参数

H = a(0 )+ a(1)* G + a(2)*G^2 + a(3) *G^3,已经知道五组数据,怎么拟合出来这个曲线,[H,G]=[17.4,15993.288],[21.98,13851],[26.0295,11637.46656],[28.86149,9794.567412],[30.737328,8352.9348],

m程序为:

g=[15993.288 13851 11637.46656 9794.567412 8352.9348];

h=[17.4  21.98 26.0295  28.86149 30.737328];

p=polyfit(g,h,3);

p

g2=5000:1000:20000;

h2=polyval(p,g2);

plot(g,h,'o',g2,h2);

xlabel('g');

ylabel('h')

title('H = a(0 )+ a(1)* G + a(2)*G^2 + a(3) *G^3拟合曲线')


 

运行上面m文件得到结果如下:

p =

    0.0000   -0.0000    0.0000   35.5845

 

也就是H= 35.5845*G^3

追问

实在是太感谢了!!再麻烦问下:可不可以再加一个条件,就是z=1,,[H,G]=[17.4,15993.288];
z=2,[H,G]=[21.98,13851];
z=3,[H,G]=[26.0295,11637.46656];
z=4,[H,G]=[28.86149,9794.567412];
z=5,[H,G]=[30.737328,8352.9348],
谢谢了 ,必须要多给分的

追答

跟Z没关系啊。你要拟合的是二元函数。估计你的Z是指第几组数的意思吧

追问

嗯,就是想加个变量,算是一个限制条件吧,方程还是这个一元的函数,出来的拟合曲线不满足实际需要。

追答

不能再加z了,要么就不是你所求的东西了

追问

这条曲线不满足要求,实际问题是这样的,要不断改变条件,要不我假设一个H,得到的G不知道是Z等于多少的情况下的事数据···还是谢谢你了

温馨提示:答案为网友推荐,仅供参考