怎样用 mathematica 拟合二元函数?

如题所述

第1个回答  2007-12-24
数据拟合
由一组已知数据(xk,yk)(k=1,2,…,n),求函数的近似解析式y=f(x),就是数据拟合问题,当然函数还可以是多元的。
Mathematica提供了进行数据拟合的函数:
Fit[data,funs,vars] 对数据data用最小二乘法求函数表funs中各函数的一个线性组合作为所求的近似解析式,其中vars是自变量或自变量的表。
例如:
Fit[data,{1,x},x] 求形为y=a+bx的近似函数式。
Fit[data,{1,x,x2},x] 求形为y=a+bx+cx2的近似函数式。
Fit[data,{1,x,y,x y},{x,y}] 求形为z=a+bx+cy+dxy的近似函数式。
以上出现的参数data的格式为{{x1,y1,…,f1},{x2,y2,…,f2},…}。
函数表中的函数还可以是更复杂的初等函数。
例1 由下面给出的一组数据进行线性拟合,并绘制拟合曲线。。
xi 19.1 25 30.1 36 40 15.1 50
yi 76.3 77.8 79.25 80.8 82.35 83.9 85.1
解:In[1]:=data={{19.1,76.3},{25,77.8},{30.1,79.25},{36,80.8},
{40,82.35},{45.1,83.9},{50,85.1}};
f=Fit[data,{1,x},x]
Out[2]=70.5723+0.291456x
In[3]:= pd=ListPlot[data,DisplayFunction→Identity];
fd=Plot[f,{x,19,52},DisplayFunction→Identity];
Show[pd,fd,DisplayFunction→$DisplayFunction]
图13-49 线性拟合的示意图
Out[5]=-Graphics-
说明:上例使用一次函数得到很理想的拟合,图形如图13-49所示。
例2 由下面给出的一组数据进行二次函数拟合,并绘制拟合曲线。
xi 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
yi 5.1234 5.3057 5.5687 5.9378 6.4337 7.0978 7.9493 9.0253 10.3627
解:In[1]:= data={{0.1,5.1234},{0.2,5.3057},{0.3,5.5687},
{0.4,5.9378}, {0.5,6.4337},{0.6,7.0978},
{0.7,7.9493},{0.8,9.0253},{0.9,10.3627}};
f=Fit[data,{1,x,x^2},x]
Out[2]=5.30661-1.83196x+8.17149x2
In[3]:= pd=ListPlot[data,DisplayFunction→Identity];
fd=Plot[f,{x,0,1},DisplayFunction→Identity];
Show[pd,fd,DisplayFunction→$DisplayFunction]
图13-50 使用二次函数拟合的示意图
Out[5]= -Graphics-
以上两例都是计算方法教材中的习题,利用Mathematica可以轻而易举地得到答案,并同时画出图形以便直观地了解拟合的质量。
以下是二元拟合。
例3 观察下面的二元函数拟合。
In[1]:=Flatten[Table[{x,y,1 + 5x –x y},
{x,0,1,0.2},{y,0,1,0.2}],1]
Out[1]={{0,0,1},{0,0.2,1},{0,0.4,1},
{0,0.6,1},{0,0.8,1},{0,1.,1},
{0.2,0,2.},{0.2,0.2,1.96},{0.2,0.4,1.92},
{0.2,0.6,1.88},{0.2,0.8,1.84},{0.2,1.,1.8},
{0.4,0,3.},{0.4,0.2,2.92},{0.4,0.4,2.84},
{0.4,0.6,2.76},{0.4,0.8,2.68},{0.4,1.,2.6},
{0.6,0,4.},{0.6,0.2,3.88},{0.6,0.4,3.76},
{0.6,0.6,3.64},{0.6,0.8,3.52},{0.6,1.,3.4},
{0.8,0,5.},{0.8,0.2,4.84},{0.8,0.4,4.68},
{0.8,0.6,4.52},{0.8,0.8,4.36},{0.8,1.,4.2},
{1.,0,6.},{1.,0.2,5.8},{1.,0.4,5.6},
{1.,0.6,5.4},{1.,0.8,5.2},{1.,1.,5.}}
In[2]:=Fit[%,{1,x,y,x y},{x,y}]
Out[2]=1.+5. x+7.77156×10-16 y -1. x y
In[3]:=Chop[%]
Out[3]= 1.+ 5. x -1. x y
说明:在上例的In[1]中,首先生成二元函数1+5x-xy在0≤x≤1,0≤y≤1时的一个数据表,然后In[2]由这些数据反过来求二元函数,说明Fit可以求解多元问题。In[3]使用函数Chop去掉系数很小的项,以此消除误差。
函数Chop的一般形式为:
Chop[expr,δ] 去掉表达式expr的系数中绝对值小于δ的项,δ的默认值为10-10。
最后这个例子用于说明Fit的第二个参数中可以使用复杂的函数,不限于1,x,x2等基本类型。
例4 观察下面使用初等函数组合进行的拟合。
In[1]:= ft=Table[N[1+2Exp[-x/3]],{x,10}]
Out[1]={2.43306,2.02683,1.73576,1.52719,1.37775,
1.27067,1.19394,1.13897,1.09957,1.07135}
In[2]:=Fit[ft,{1,Sin[x],Exp[-x/3],Exp[-x]},x]
Out[2]= 1. -4.44089×10-15e-x +2.e-x/3+2.22045×10-16Sin[x]
In[3]:=Chop[%]
Out[4]=1. +2. e-x/3
说明:在上例中,In[1]由一个指数函数生成数据表,然后In[2]由这些数据反过来进行拟合,其中的第2个参数使用了几个初等函数,用于说明可以任意选用函数组成函数表。
http://post.baidu.com/f?kz=236951263

额外说一句,这个用matlab不是也很方便本回答被提问者采纳

怎样用 mathematica 拟合二元函数?
Fit[data,funs,vars] 对数据data用最小二乘法求函数表funs中各函数的一个线性组合作为所求的近似解析式,其中vars是自变量或自变量的表。例如:Fit[data,{1,x},x] 求形为y=a+bx的近似函数式。Fit[data,{1,x,x2},x] 求形为y=a+bx+cx2的近似函数式。Fit[data,{1,x...

Mathematica如何引入数据拟合函数
1. Mathematica是区分大小写的,你不觉得你的某个 data 的颜色不大对吗?这里要改过来。2. 在Mathematica里命名变量时要尽量以小写字母开头,否则可能引起问题,因为内置函数都是大写字母开头。你这个代码里用了大写D,不行,因为这个是偏导符号,没法赋值,所以,改成小d。3. 你看看你那个Data的数据...

怎么拟合二元函数?用什么软件比较容易实现?
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等等 总之你要看看拟合出来的曲面是否和你实际相一致 或者相差不多 也不是说这个次数越高越好 总...

Mathematica如何进行数据拟合?
line = Fit[data1, {1, x}, x]若是选择二次函数,则 Fit[data1, {1, x, x^2}, x]你也可以自行搜索帮助文件

mathematica数据拟合
data = {{14.80, 310}, {18.74, 700}, {22.86, 1160}, {26.26,1800}, {29.50, 2680}, {31.15, 3200}};FindFit[data, a \/(1 + b Exp[x]), {a, b}, x]把FindFit里的表达式改成你想要拟合的式子就可以了

用mathematica怎么拟合这一组数据
Fit[离散点,{你想要拟合的形式,比如可以是1,x,y代表弄成a+bx+cy的形式},{x,y}]

mathematica中如何曲线拟合
FindFit 和 Fit 函数,但是函数的形式要你自己确定。函数的形式指的是直线、抛物线、等等 例如 data = Table[{x, 2 + x^2 + RandomReal[{-0.2, 0.2}]}, {x, -2, 2, 0.02}];y = Fit[data, {1, x, x^2}, x];data是离散的点,y是拟合出来的曲线,两个图画出来比较一下就...

mathematica怎么进行拟合多项式方程
接下来就是Fit了,不过以什么形式去拟合需要你自己指定,这里只举个例子:Fit[%, {1, x1, x2, x1 x2}, {x1, x2}](*“%”表示上一次的输出,如果你中间做了其他运算就不能这么用了,这个应该知道的吧。*)由此得到的式子是这个:1.03442 - 0.0186984 x1 - 0.213373 x2 + 0.0406338 ...

mathematica 三元函数拟合
Fit[离散点,{你想要拟合的形式,比如可以是1,x,y代表弄成a+bx+cy的形式},{x,y}]

造适当的函数,用mathematica作图,这个真的好难?
在图上找点,进行拟合,求出近似方程,因为你的图片不是太清楚,就没给你做完,这是黄线[-1,1]的图线,你仿照这个方法做就行了 a = {{-1, 0.5}, {-0.8, 0.75}, {-0.6, 0.9}, {-0.5, 1}, {0, 1}, {0.5,1}, {0.6, 0.9}, {0.8, 0.75}, {1, 0.5}};f = ...

相似回答