怎么用已知数据进行matlab函数拟合

能不能拟合成这种形式的,就是双曲抛物面的形式?z=b1*(x-b2)²-b3*(y-b4)²+b5求出来b,z是因变量,x,y自变量。选取了62个点的... 能不能拟合成这种形式的,就是双曲抛物面的形式?
z=b1*(x-b2)²-b3*(y-b4)²+b5求出来b,z是因变量,x,y自变量。选取了62个点的数据。用哪种拟合函数?

A=[0.08 0.00 0;0.08 0.01 0;0.08 0.02 0;0.08 0.03 0;0.08 0.04 0;0.08 0.05 0;0.08 0.06 825.033;0.08 0.07 250660;0.08 0.08 343379;0.08 0.09 342693;0.08 0.10 425817;0.08 0.11 572759;0.08 0.12 572565;0.08 0.13 567368;0.08 0.14 545491;0.08 0.15 541504;0.08 0.16 541632;0.08 0.17 559520;0.08 0.18 566870;0.08 0.19 566965;0.08 0.20 485341;0.08 0.21 334773;0.08 0.22 335178;0.08 0.23 285317;0.08 0.24 47941.7;0.08 0.25 0;0.08 0.26 0;0.08 0.27 0;0.08 0.28 0;0.08 0.29 0;0.08 0.30 0;0.09 0.00 0;0.09 0.01 0;0.09 0.02 0;0.09 0.03 0;0.09 0.04 0;0.09 0.05 0;0.09 0.06 1337.64;0.09 0.07 350045;0.09 0.08 482099;0.09 0.09 481473;0.09 0.10 525827;0.09 0.11 607711;0.09 0.12 607557;0.09 0.13 599059;0.09 0.14 561797;0.09 0.15 554831;0.09 0.16 554918;0.09 0.17 577049;0.09 0.18 586089;0.09 0.19 586107;0.09 0.20 540176;0.09 0.21 454426;0.09 0.22 455076;0.09 0.23 387710;0.09 0.24 66253.4;0.09 0.25 0;0.09 0.26 0;0.09 0.27 0;0.09 0.28 0;0.09 0.29 0;0.09 0.30 0];
>> x=A(:,1);
>>y=A(:,2);
>> z=A(:,3);
展开
 我来答
925386400
2013-11-24 · TA获得超过387个赞
知道小有建树答主
回答量:345
采纳率:0%
帮助的人:232万
展开全部

z可以化为z=a1+a2x^2+a3x+a4y^2+a5y的形式

然后采用最小二乘法拟合算a1,a2,a3,a4,a5

代码:

A=[0.08  0.00  0;0.08  0.01  0;0.08  0.02  0;0.08  0.03  0;0.08  0.04  0;0.08  0.05  0;0.08  0.06  825.033;0.08  0.07  250660;0.08  0.08  343379;0.08  0.09  342693;0.08  0.10  425817;0.08  0.11  572759;0.08  0.12  572565;0.08  0.13  567368;0.08  0.14  545491;0.08  0.15  541504;0.08  0.16  541632;0.08  0.17  559520;0.08  0.18  566870;0.08  0.19  566965;0.08  0.20  485341;0.08  0.21  334773;0.08  0.22  335178;0.08  0.23  285317;0.08  0.24  47941.7;0.08  0.25  0;0.08  0.26  0;0.08  0.27  0;0.08  0.28  0;0.08  0.29  0;0.08  0.30  0;0.09  0.00  0;0.09  0.01  0;0.09  0.02  0;0.09  0.03  0;0.09  0.04  0;0.09  0.05  0;0.09  0.06  1337.64;0.09  0.07  350045;0.09  0.08  482099;0.09  0.09  481473;0.09  0.10  525827;0.09  0.11  607711;0.09  0.12  607557;0.09  0.13  599059;0.09  0.14  561797;0.09  0.15  554831;0.09  0.16  554918;0.09  0.17  577049;0.09  0.18  586089;0.09  0.19  586107;0.09  0.20  540176;0.09  0.21  454426;0.09  0.22  455076;0.09  0.23  387710;0.09  0.24  66253.4;0.09  0.25  0;0.09  0.26  0;0.09  0.27  0;0.09  0.28  0;0.09  0.29  0;0.09  0.30  0];
x=A(:,1);
y=A(:,2);
z=A(:,3);
B(:,2)=x.^2;
B(:,3)=x;
B(:,4)=y.^2;
B(:,5)=y;
B(:,1)=1;
a=inv(B'*B)*B'*z;

>> a

a =

  1.0e+007 *

   -0.0584
   -2.9424
    0.8533
   -3.1661
    0.9523

那么z就可以用a1,a2,a3,a4,a5表示了

拟合结果

如下两图

感觉把它看成正态分布的样子,可能效果好一些

追问

谢谢,转换成那种形式后,用regress函数就行,我知道怎么做,但是效果不是很好,图形是三维的空间,只取了一部分试验值,中间低,两把高,转化成z=a1+a2x^2+a3x+a4y^2+a5y后,没有中间低的效果。想用nlinfit,fun的方法试试,不过不太会。

追答
如果你要让它中间低,两边高的话,可以设成z=a1+a2x^4+a3x^3+a4x^2+a5x+a6y^4+a7y^3+a8y^2+a9y的形式试一试
因为四次多项式可以具有中间低、两边高的特点
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式