怎么拟合二元函数?用什么软件比较容易实现?

具体问题是这样:我有很多组数据(X,Y,Z),想利用这些数据拟合得到Z=F(X,Y)公式,F(X,Y)的具体形式是不知道的,请高人指点一下,谢谢~~~~
2026年09月25日 15:48
有2个网友回答
网友(1):

告诉你吧 不用什么matlab,用mathematica就非常方便
给你举个例子吧 把程序都给你
B1={{0.5,0.5,17},{1.5,0.5,17.5},{2.5,0.5,18},{3.5,0.5,19},{4.5,0.5,18},{5.5,0.5,17},{0.5,1.5,20},{1.5,1.5,21},{2.5,1.5,23},{3.5,1.5,22},{4.5,1.5,21},{5.5,1.5,20},{0.5,2.5,21},{1.5,2.5,23},{2.5,2.5,24},{3.5,2.5,23},{4.5,2.5,23},{5.5,2.5,22},{0.5,3.5,19},{1.5,3.5,23},{2.5,3.5,24},{3.5,3.5,25},{4.5,3.5,20},{5.5,3.5,17},{0.5,4.5,23},{1.5,4.5,24},{2.5,4.5,24.5},{3.5,4.5,24},{4.5,4.5,23.5},{5.5,4.5,22}}
B2=Fit[B1,{1,x,y,x*y,x^2,y^2...},{x,y}]
Plot3D[%,{x,1,6},{y,1,5}]
这个{1,x,y,x*y,...}是一个幂函数族,你可以换成别的比如sinx等等 总之你要看看拟合出来的曲面是否和你实际相一致 或者相差不多 也不是说这个次数越高越好 总之够用就行
你可以试试 不同的次数得出来的图形有啥不同 ok?
给加分吧 呵呵 我这可是研究了一个3天才弄出来的

网友(2):

matalb可以进行多种拟合,比如三次样条插值什么的。matlab中的情况,以二维的说明:
已知一组比较稀疏的数对(X,Y),插值后变成密集的数对(X',Y')然后你就可以根据(X',Y')更加精确的知道Y=F(X)的情况。就算某个x不在一开始X中,你也能根据(X',Y')找出对应的y值。
你的题目是三维的拟合,你试试interp2函数看看~O(∩_∩)O~