Mathematica软件进行拟合

合集下载

Mathematica使用说明

Mathematica使用说明

Mathematica 入门一、引 言Mathematica 是美国Wolfram 公司开发的一个功能强大的数学软件系统,它主要包括:数值计 算、符号计算、图形功能和程序设计. 本指导书力图在不大的篇幅中给读者提供该系统的一个简 要的介绍. 指导书是按Mathematica 4.0版本编写的, 但是也适用于Mathematica 的任何其它图形 界面的版本.Mathematica 在数值计算、符号运算和图形表示等方面都是强有力的工具,并且其命令句法惊 人地一致, 这个特性使得Mathematica 很容易使用.不必担心你还不太熟悉计算机.本入门将带你 迅速了解Mathematica 的基本使用过程, 但在下面的介绍中,我们假定读者已经知道如何安装及启动Mathematica. 此外,始终要牢记的几点是:● Mathematica 是一个敏感的软件. 所有的Mathematica 函数都以大写字母开头; ● 圆括号( ),花括号{ },方括号[ ]都有特殊用途, 应特别注意; ● 句号“.”,分号“;”,逗号“,”感叹号“!”等都有特殊用途, 应特别注意; ● 用主键盘区的组合键Shfit+Enter 或数字键盘中的Enter 键执行命令.二、一般介绍1. 输入与输出例1 计算 1+1:在打开的命令窗口中输入1+2+3并按组合键Shfit+Enter 执行上述命令,则屏幕上将显示:In[1] : =1+2+3 Out[1] =6这里In[1] : = 表示第一个输入,Out[1]= 表示第一个输出,即计算结果.2. 数学常数Pi 表示圆周率π; E 表示无理数e; I 表示虚数单位i ; Degree 表示π/180; Infinity 表示无穷大.注:Pi,Degree,Infinity 的第一个字母必须大写,其后面的字母必须小写.3. 算术运算Mathematica 中用“+”、“-”、“*”、“/” 和“^”分别表示算术运算中的加、减、乘、除和 乘方.例2 计算 π⋅⎪⎭⎫ ⎝⎛⋅+⎪⎭⎫⎝⎛⋅--213121494891100. 输入 100^(1/4)*(1/9)^(-1/2)+8^(-1/3)*(4/9)^(1/2)*Pi则输出 3103π+这是准确值. 如果要求近似值,再输入N[%] 则输出 10.543这里%表示上一次输出的结果,命令N[%]表示对上一次的结果取近似值. 还用 %% 表示上 上次输出的结果,用 %6表示Out[6]的输出结果.注:关于乘号*,Mathematica 常用空格来代替. 例如,x y z 则表示x*y*z,而xyz 表示字符 串,Mathematica 将它理解为一个变量名. 常数与字符之间的乘号或空格可以省略.4. 代数运算例3 分解因式 232++x x 输入 Factor[x^2+3x+2] 输出 )x 2)(x 1(++ 例4 展开因式 )2)(1(x x ++ 输入 Expand[(1+x)(2+x)] 输出 2x x 32++例5 通分 3122+++x x 输入 Together[1/(x+3)+2/(x+2)]输出 )x 3)(x 2(x38+++例6 将表达式)3)(2(38x x x+++ 展开成部分分式输入 Apart[(8+3x)/((2+x)(3+x))]输出 3x 12x 2+++ 例7 化简表达式 )3)(1()2)(1(x x x x +++++ 输入 Simplify[(1+x)(2+x)+(1+x)(3+x)]输出 2x 2x 75++三、函数1. 内部函数Mathematica 系统内部定义了许多函数,并且常用英文全名作为函数名,所有函数名的第一个 字母都必须大写,后面的字母必须小写. 当函数名是由两个单词组成时,每个单词的第一个字母都 必须大写,其余的字母必须小写. Mathematica 函数(命令)的基本格式为函数名[表达式,选项] 下面列举了一些常用函数:算术平方根x Sqrt[x] 指数函数x e Exp[x] 对数函数x a log Log[a,x]对数函数x ln Log[x]三角函数 Sin[x], Cos[x], Tan[x], Cot[x], Sec[x], Csc[x] 反三角函数ArcSin[x], ArcCos[x], ArcTan[x], ArcCot[x], AsrcSec[x], ArcCsc[x]双曲函数 Sinh[x], Cosh[x], Tanh[x], 反双曲函数 ArcSinh[x], ArcCosh[x], ArcTanh[x] 四舍五入函数 Round[x] (*取最接近x 的整数*) 取整函数 Floor[x] (*取不超过x 的最大整数*) 取模 Mod[m,n] (*求m/n 的模*)取绝对值函数 Abs[x] n 的阶乘 n! 符号函数 Sign[x] 取近似值 N[x,n] (*取x 的有n 位有效数字的近似值,当n 缺省时,n 的默认值 为6*)例8 求π的有6位和20位有效数字的近似值. 输入 N[Pi] 输出 3.14159输入 N[Pi, 20] 输出 3.1415926535897932285 注:第一个输入语句也常用另一种形式: 输入 Pi//N 输出 3.14159例9 计算函数值(1) 输入 Sin[Pi/3] 输出23 (2) 输入 ArcSin[.45] 输出 0.466765 (3) 输入 Round[-1.52] 输出 -2 例10 计算表达式)6.0arctan(226sin 2ln 1132+-+-e π 的值 输入 1/(1+Log[2])*Sin[Pi/6]-Exp[-2]/(2+2^(2/3))*ArcTan[.6] 输出 0.2749212. 自定义函数在Mathematica 系统内,由字母开头的字母数字串都可用作变量名,但要注意其中不能包含空 格或标点符号.变量的赋值有两种方式. 立即赋值运算符是“=”,延迟赋值运算符是“: =”. 定义函数使用 的符号是延迟赋值运算符“: =”.例11 定义函数 12)(23++=x x x f ,并计算)2(f ,)4(f ,)6(f . 输入Clear[f,x]; (*清除对变量f 原先的赋值*) f[x_]:=x^3+2*x^2+1; (*定义函数的表达式*) f[2] (*求)2(f 的值*)f[x]/.{x->4} (*求)4(f 的值,另一种方法*)x=6; (*给变量x 立即赋值6*)f[x] (*求)6(f 的值,又一种方法*)输出17 97 289注:本例1、2、5行的结尾有“;”,它表示这些语句的输出结果不在屏幕上显示.四、解方程在Mathematica 系统内,方程中的等号用符号“==”表示. 最基本的求解方程的命令为 Solve[eqns, vars]它表示对系数按常规约定求出方程(组)的全部解,其中eqns 表示方程(组),vars 表示所求未知变量. 例12 解方程0232=++x x 输入 Solve[x^2+3x+2==0, x] 输出 }}1x {},2x {{-→-→例13 解方程组 ⎩⎨⎧=+=+1dy cx by ax输入 Solve[{a x + b y == 0,c x + d y ==1}, {x,y}]输出 ⎭⎬⎫⎩⎨⎧⎭⎬⎫⎩⎨⎧+-→-→ad bc a y ,ad bc b x例14 解无理方程a x x =++-11输入 Solve[Sqrt[x-1]+ Sqrt[x+1] == a, x]输出 ⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧+→24a 4a 4x 很多方程是根本不能求出准确解的,此时应转而求其近似解. 求方程的近似解的方法有两种, 一种是在方程组的系数中使用小数,这样所求的解即为方程的近似解;另一种是利用下列专门用于 求方程(组)数值解的命令:NSolve[eqns, vars] (*求代数方程(组)的全部数值解*)FindRoot[eqns, {x, x0}, {y, y0} ,]后一个命令表示从点),,(00 y x 出发找方程(组)的一个近似解,这时常常需要利用图像法先大致确定所求根的范围,是大致在什么点的附近.例15 求方程013=-x 的近似解 输入 NSolve[x^3-1== 0, x]输出 {{→x -0.5-0.866025ii},{→x -0.5+0.866025ii},{→x 1.}} 输入 FindRoot[x^3-1==0,{x, .5}] 输出 {→x 1.}下面再介绍一个很有用的命令:Eliminate[eqns, elims] (*从一组等式中消去变量(组)elims*)例16从方程组 ⎪⎩⎪⎨⎧=+=-+-+=++11)1()1(1222222y x z y x z y x 消去未知数y 、z .输入Eliminate[{x^2+y^2+z^2 ==1,x^2+(y-1)^2 + (z-1)^2 ==1, x + y== 1},{y, z}] 输出 0x 3x 22==+-注:上面这个输入语句为多行语句,它可以像上面例子中那样在行尾处有逗号的地方将行与行 隔开, 来迫使Mathematica 从前一行继续到下一行在执行该语句. 有时候多行语句的意义不太明 确,通常发生在其中有一行本身就是可执行的语句的情形,此时可在该行尾放一个继续的记号“\”, 来迫使Mathematica 继续到下一行再执行该语句.五、保存与退出Mathematica 很容易保存Notebook中显示的内容,打开位于窗口第一行的File菜单,点击Save 后得到保存文件时的对话框,按要求操作后即可把所要的内容存为*.nb文件. 如果只想保存全部输入的命令,而不想保存全部输出结果,则可以打开下拉式菜单Kernel,选中Delete All Output,然后再执行保存命令. 而退出Mathematica与退出Word的操作是一样的.六、查询与帮助查询某个函数(命令)的基本功能,键入“?函数名”,想要了解更多一些,键入“??函数名”,例如, 输入?Plot则输出Plot[f,{x,xmin,xmax}] generates a plot of f as a functionof x from xmin to xmax. Plot[{f1,f2,…},{x,xmin,xmax}] plots several functions fi它告诉了我们关于绘图命令“Plot”的基本使用方法.例17 在区间]1,1y=的图形.[-上作出抛物线2x输入Plot[x^2,{x,-1,1}]则输出例18 .输入Plot[{Sin[x],Cos[x]},{x,0,2Pi}]则输出??Plot则Mathematica会输出关于这个命令的选项的详细说明,请读者试之.此外,Mathematica的Help菜单中提供了大量的帮助信息,其中Help菜单中的第一项Help Browser(帮助游览器)是常用的查询工具,读者若想了解更多的使用信息,则应自己通过Help菜单去学习.空间图形的画法(基础实验)实验目的 掌握用Mathematica 绘制空间曲面和曲线的方法. 熟悉常用空间曲线和空间曲面 的图形特征,通过作图和观察, 提高空间想像能力. 深入理解二次曲面方程及其图形.基本命令1.空间直角坐标系中作三维图形的命令Plot3D命令Plot3D 主要用于绘制二元函数),(y x f z =的图形. 该命令的基本格式为Plot3D[f[x,y],{x,x1,x2},{y,y1,y2},选项]其中f[x,y]是y x ,的二元函数, x1,x2表示x 的作图范围, y1,y2表示y 的作图范围.例如,输入Plot3D[x^2+y^2,{x,-2,2},{y,-2,2}]则输出函数22y x z +=在区域22,22≤≤-≤≤-y x 上的图形(图2.1)与Plot 命令类似, Plot3D 有许多选项. 其中常用的如PlotPoints 和ViewPoint. PlotPoints 的用 法与以前相同. 由于其默认值为PlotPoints->15, 常常需要增加一些点以使曲面更加精致, 可能要 用更多的时间才能完成作图. 选项ViewPoint 用于选择图形的视点(视角), 其默认值为 ViewPoint->{1.3,-2.4,2.0},需要时可以改变视点.2.利用参数方程作空间曲面或曲线的命令ParametricPlot3D 用于作曲面时, 该命令的基本格式为ParametricPlot3D[{x[u,v],y[u,v],z[u,v]},{u,u1,u2},{v,v1,v2},选项]其中x[u,v],y[u,v],z[u,v]是曲面的参数方程表示式. u1,u2是作图时参数u 的范围, v1,v2是参数v 的 范围.例如,对前面的旋转抛物面, 输入ParametricPlot3D[{u*Cos[v],u*Sin[v],u^2},{u,0,3},{v,0,2 Pi}]同样得到曲面22y x z +=的图形(图2.2).由于自变量的取值范围不同, 图形也不同. 不过, 后者比较好的反映了旋转曲面的特点, 因 而是常用的方法.又如, 以原点为中心, 2为半径的球面. 它是多值函数, 不能用命令Plot3D 作图. 但是, 它的 参数方程为,20,0,cos 2,sin sin 2,cos sin 2πθπϕϕθϕθϕ≤≤≤≤===z y x因此,只要输入ParametricPlot3D[{2 Sin[u]*Cos[v],2 Sin[u]*Sin[v],2 Cos[u]},{u,0,Pi},{v,0,2 Pi}]便作出了方程为22222=++y x z 的球面(图2.3)..用于作空间曲线时,ParametricPlot3D 的基本格式为ParametricPlot3D[{x[t],y[t],z[t]},{t,t1,t2},选项]其中x[t],y[t],z[t]是曲线的参数方程表示式. t1,t2是作图时参数t 的范围.例如, 空间螺旋线的参数方程为).80(10/,sin ,cos π≤≤===t t z t y t x输入ParametricPlot3D[{Cos[t],Sin[t],t/10,RGBColor[1,0,0]},{t,0,8 Pi}]则输出了一条红色的螺旋线(图2.4).在这个例子中,请读者注意选项RGBColor[1,0,0]的位置.用于作空间曲线时, ParametricPlot3D 的选项PlotPoints 的默认值是30, 选项ViewPoint 的默 认值没有改变.3.作三维动画的命令MoviPlot3D:无论在平面或空间, 先作出一系列的图形, 再连续不断地放映, 便得到动画. 例如, 输入调用作图软件包命令<<Graphics\Animation.m.执行后再输入MoviePlot3D[Cos[t*x]*Sin[t*y],{x,-Pi,Pi},{y,-Pi,Pi},{t,1,2},Frames->12]则作出了12幅曲面图, 选中任一幅图形, 双击它便可形成动画.实验举例一般二元函数作图例2.1 (教材 例2.1) 作出平面y x z 326--=的图形,其中20,30≤≤≤≤y x . 输入Plot3D[6-2x-3y,{x,0,3},{y,0,2}]则输出所作平面的图形(图2.5).如果只要位于第一卦限的部分, 则输入Plot3D[6-2x-3y,{x,0,3},{y,0,2},PlotRange->{0,6}]观察图形.2.6).图2.6例2.2 (教材 例2.2) 作出函数2214y x z ++=的图形.输入k[x_,y_]:=4/(1+x^2+y^2)Plot3D[k[x,y],{x,-2,2},{y,-2,2},PlotPoints->30,PlotRange->{0,4},BoxRatios->{1,1,1}]则输出函数的图形2.7. 观察图形, 理解选项PlotRange->{0,4}和BoxRatios->{1,1,1}的含义. 选项 BoxRatios 的默认值是{1,1,0.4}.例2.3 (教材 例2.3) 作出函数22y x xye z ---=的图形. 输入命令Plot3D[-x*y*Exp[-x^2-y^2],{x,-3,3},{y,-3,3},PlotPoints->30,AspectRatio->Automatic];则输出所求图形(图 图2.8例2.4 (教材 例2.4) 作出函数)94cos(22y x z +=的图形. 输入Plot3D[Cos[4x^2+9y^2],{x,-1,1},{y,-1,1},Boxed->False,Axes->Automatic,PlotPoints->30,Shading->False]则输出网格形式的曲面图2.9, 这是选项Shading->False 起的作用, 同时注意选项Boxed->False 的作用.二次曲面例2.5 (教材 例2.5) 作出椭球面1194222=++z y x 的图形. 这是多值函数, 用参数方程作图的命令ParametricPlot3D. 该曲面的参数方程为,cos ,sin sin 3,cos sin 2u z v u y v u x === (ππ20,0≤≤≤≤v u ).输入ParametricPlot3D[{2*Sin[u]*Cos[v],3*Sin[u]*Sin[v], Cos[u]},{u,0,Pi},{v,0,2 Pi},PlotPoints->30]则输出椭球面的图形, 可使图形更加光滑.图2.10例2.6 (教材 例2.6) 作出单叶双曲面1941222=-+z y x 的图形. 曲面的参数方程为,tan 3,cos sec 2,sin sec u z v u y v u x === (.20,2/2/πππ≤≤<<-v u )输入ParametricPlot3D[{Sec[u]*Sin[v],2*Sec[u]*Cos[v], 3*Tan[u]},{u,-Pi/4,Pi/4},{v,0,2 Pi},PlotPoints->30]图2.11例2.7 作双叶双曲面13.14.15.1222222-=-+z y x 的图形.曲面的参数方程是,csc 3.1,sin cot 4.1,cos cot 5.1u z v u y v u x ===其中参数πππ<<-≤<v u ,20时对应双叶双曲面的一叶, 参数πππ<<-<≤-v u ,02时对应双叶双曲面的另一叶. 输入sh1=ParametricPlot3D[{1.5*Cot[u]*Cos[v],1.4*Cot[u]*Sin[v],1.3/Sin[u]},{u,Pi/1000,Pi/2},{v,-Pi,Pi}, DisplayFunction->Identity];(*DisplayFunction->Identity 是使图形暂时不输出的选项*) sh2=ParametricPlot3D[{1.5*Cot[u]*Cos[v],1.4* Cot[u]*Sin[v],1.3/Sin[u]},{u,-Pi/2,-Pi/1000}, {v,-Pi,Pi},DisplayFunction->Identity];Show[sh1,sh2,DisplayFunction->$DisplayFunction](*命令Show[sh1,sh2]是把图形sh1,sh2放置在一起, DisplayFunction->$DisplayFunction 是恢复显示图形的选项*) 输出为图2.12.例2.8 可以证明: 函数xy z =的图形是双曲抛物面. 在区域22,22≤≤-≤≤-y x 上作出它的图形.输入Plot3D[x*y,{x,-2,2},{y,-2,2},BoxRatios->{1,1,2}, PlotPoints->30]输出图形略. 也可以用ParametricPlot3命令作出这个图形, 输入ParametricPlot3[{r*Cos[t],r*Sin[t],r^2*Cos[t] *Sin[t]},{r,0,2},{t,0,2 Pi},PlotPoints->30]输出为图2.13例2.9 (教材 例2.7) 作出圆环v z u v y u v x sin 7,sin )cos 38(,cos )cos 38(=+=+=,(πππ22/,2/30≤≤≤≤v u )的图形.输入ParametricPlot3D[{(8+3*Cos[v])*Cos[u],(8+3*Cos[v])*Sin[u],7*Sin[v]},{u,0,3*Pi/2},{v,Pi/2,2*Pi}];图2.14例2.10 画出参数曲面]2,001.0[],4,0[)5/2/ln(tan cos sin sin sin cos ∈∈⎪⎩⎪⎨⎧++===v u u v v z vu y v u x π的图形.输入命令ParametricPlot3D[{Cos[u]*Sin[v],Sin[u]Sin[v],Cos[v]+Log[Tan[v/2]+u/5]}, {u,0,4*Pi},{v,0.001,2}];则输出所求图形(图2.15).曲面相交例2.11 (教材 例2.8) 作出球面22222=++z y x 和柱面1)1(22=+-y x 相交的图形. 输入g1=ParametricPlot3D[{2 Sin[u]*Cos[v],2 Sin[u]*Sin[v],2 Cos[u]},{u,0,Pi},{v,0,2 Pi},DisplayFunction->Identity];g2=ParametricPlot3D[{2Cos[u]^2,Sin[2u],v},{u,-Pi/2,Pi/2},{v,-3,3},DisplayFunction->Identity];Show[g1,g2,DisplayFunction->$DisplayFunction]则输出所求图形(图2.16)例2.12 作出锥面222z y x =+和柱面1)1(22=+-y x 相交的图形. 输入g3=ParametricPlot3D[{r*Cos[t],r*Sin[t],r}, {r,-3,3},{t,0,2 Pi},DisplayFunction->Identity];Show[g2,g3,DisplayFunction->$DisplayFunction]输出为图2.17.图2.17例2.13 画出以平面曲线x y cos =为准线, 母线平等Z 轴的柱面的图形. 写出这一曲面的参数方程为⎪⎩⎪⎨⎧=∈-∈==s z R s t t y t x ],,[,cos ππ 取参数s 的范围为[0, 8]. 输入命令ParametricPlot3D[{t,Cos[t],s},{t,-Pi,Pi},{s,0,8}]则输出所求图形(图2.18).例2.14 (教材 例2.9) 作出曲面x y x y x z =+--=2222,1及xOy 面所围成的立体图形. 输入g1=ParametricPlot3D[{r*Cos[t], r*Sin[t],r^2},{t,0,2*Pi},{r,0,1},PlotPoints->30]; g2=ParametricPlot3D[{Cos[t]*Sin[r],Sin[t]Sin[r],Cos[r]+1},{t,0,2*Pi},{r,0,Pi/2},PlotPoints->30];Show[g1,g2]则输出所求图形(图图2.19例2.15 (教材 例2.10) 作出螺旋线t z t y t x 2,sin 10,cos 10===(R t ∈)在xOz 面上的正投影曲线的图形.所给螺旋线在xOz面上的投影曲线的参数方程为10==.,cosx2ztt输入ParametricPlot[{2t,10Cos[t]},{t,-2Pi,2Pi}];则输出所求图形(图图2.20注:将表示曲线的方程组, 消去其中一个变量, 即得到曲线在相应于这一变量方向上的正投影曲线的方程, 不考虑曲线所在平面, 它就是投影柱面方程; 对于参数方程, 只要注意将方程中并不存在的那个变元看成第二参数而添加第三个方程即可.例2.16 (教材例2.11) 作出默比乌斯带(单侧曲面)的图形.输入Clear[r,x,y,z];r[t_,v_]:=2+0.5*v*Cos[t/2];x[t_,v_]:=r[t,v]*Cos[t]y[t_,v_]:=r[t,v]*Sin[t]z[t_,v_]:=0.5*v*Sin[t/2];ParametricPlot3D[{x[t,v],y[t,v],z[t,v]},{t,0,2 Pi},{v,-1,1},PlotPoints->{40,4},Ticks->False]则输出所求图形(图空间曲线例2.17 (教材 例2.12) 作出空间曲线)60(2,sin ,cos π≤≤===t t z t t y t t x 的图形. 输入ParametricPlot3D[{t*Cos[t],t*Sin[t],2*t,RGBColor[1.0,0,0.5]},{t,0,6 Pi}]则输出所求图形(图图2.22例2.18 绘制参数曲线 ⎪⎩⎪⎨⎧===2/cos 2sin t z t y t x 的图形.输入命令ParametricPlot3D[{Sin[t],2Cos[t],t.2},{t,0,12}];则输出所求图形(图2.23).例2.19 绘制参数曲线 ⎪⎪⎩⎪⎪⎨⎧=+==t z t y t x arctan 211cos 2的图形.输入命令ParametricPlot3D[{Cos[t]^2,1/(1+2*t),ArcTan[t]},{t,0,8}]; 则输出所求图形(图2.24).动画制作例2.20 平面正弦曲线的运动. 输入Table[Plot[Sin[x+t*Pi],{x,0,6 Pi}],{t,0,2,1/8}]则作出了16幅具有不同相位的正弦曲线(输出图形略). 双击屏幕上某一幅画, 则可形成动画. 下面是动画的最后一幅图(图2.25).例2.21 (教材 例2.13) 作模拟水波纹运动的动画. 输入调用软件包命令<<Graphics\Animation.m执行后再输入MoviePlot3D[Sin[Sqrt[x^2+y^2]+t*2*Pi],{x,-8 Pi,8 Pi},{y,-8 Pi,8 Pi},{t,1,0},PlotPoints->50,AspectRatio->0.5,ViewPoint->{0.911,-1.682,2.791},Frames->12]则输出12幅具有不同相位的水面图形, 双击屏幕上任意一幅图, 均可观察动画效果. 下图是第一幅图(图2.26).图2.26例2.22 (教材 例2.14) 用动画演示由曲线],0[,sin π∈=z z y 绕z 轴旋转产生旋转曲面的过程.该曲线绕z 轴旋转所得旋转曲面的方程为,sin 222z y x =+ 其参数方程为])2,0[],,0[(,,sin sin ,cos sin ππ∈∈===u z z z u z y u z x输入For[i=1,i<=30,i++,ParametricPlot3D[{Sin[z]*Cos[u],Sin[z]*Sin[u],z},{z,0,Pi},{u,0,2*Pi*i/30},AspectRatio->1,AxesLabel->{"X","Y","Z"}]];则输出连续变化的30幅图形. 双击屏幕上任意一幅图, 均可观察动画效果. 下面是生成旋转曲面的过程中的第23幅图(图2.27).图2.27例2.23 将一张薄膜贴在1,0,1,0====y y x x 的方框上, 薄膜振动的函数取为)cos()sin()sin()cos 1)(cos 1(16),,(224141222t n m y m x n m n n m t y x u m n ππππππ+⋅-+=∑∑==其中t 为参数, 作出图形随t 的变动而引起薄膜振动的动画.初始位置是).0,,(y x u 通过t 的不同值得到多幅画面, 然后将这些图形连续地一张张显示出来, 即可达到运动的动画效果. 输入命令<<Graphics 'Animation '; Clear[x,y,t,m,n];u[x_,y_,t_]:=Sum[16*(1+Cos[n*Pi])*(1-Cos[m*Pi])*Sin[n*Pi*x]*Sin[m*Pi*y]*Cos[Sqrt[m^2+n^2]*Pi*t] /(m^2*n^2*Pi*2),{m,1,4},{n,1,4}]Animate[Plot3D[u[x,y,t],{x,0,1},{y,0,1}, PlotRange->{-8,8}],{t,0,1.75,0.25}];图2.28附录Ⅰ 大学数学实验指导书项目三 多元函数微积分实验1 多元函数微分学(基础实验)实验目的 掌握利用Mathematica 计算多元函数偏导数和全微分的方法, 掌握计算二元 函数极值和条件极值的方法. 理解和掌握曲面的切平面的作法. 通过作图和观察, 理解二元 函数的性质、方向导数、梯度和等高线的概念.基本命令1.求偏导数的命令D命令D 既可以用于求一元函数的导数, 也可以用于求多元函数的偏导数. 例如: 求),,(z y x f 对x 的偏导数, 则输入D[f[x,y,z],x] 求),,(z y x f 对y 的偏导数, 则输入D[f[x,y,z],y]求),,(z y x f 对x 的二阶偏导数, 则输入D[f[x,y,z],{x,2}] 求),,(z y x f 对y x ,的混合偏导数, 则输入D[f[x,y,z],x,y] …………2.求全微分的命令Dt该命令只用于求二元函数),(y x f 的全微分时, 其基本格式为Dt[f[x,y]]其输出的表达式中含有Dt[x],Dt[y], 它们分别表示自变量的微分d x ,d y . 若函数),(y x f 的表 达式中还含有其它用字符表示的常数, 例如a, 则Dt[f[x,y]]的输出中还会有Dt[a], 若采用选 项Constants->{a}, 就可以得到正确结果, 即只要输入Dt[f[x,y],Constants->{a}]3.在Oxy 平面上作二元函数),(y x f 的等高线的命令ContourPlot 命令的基本格式为ContourPlot[f[x,y],{x,x1,x2},{y,y1,y2}]例如,输入ContourPlot[x^2-y^2,{x,-2,2},{y,-2,2}]则输出函数22y x z -=的等高线图(图1.1). 该命令的选项比较多(详细的内容参见光盘中的实验案例库). 如选项Contours->15表示作15条等高线, 选项Contours->{0}表示只作函数值为0的等高线.实验举例求多元函数的偏导数与全微分例1.1 (教材 例1.1) 设),(cos )sin(2xy xy z +=求.,,,222yx zx z y z x z ∂∂∂∂∂∂∂∂∂输入Clear[z];z=Sin[x*y]+Cos[x*y]^2; D[z,x] D[z,y] D[z,{x,2}] D[z,x,y]则输出所求结果.y Cos x y2y Cos x y Sin x yx Cos x y 2x Cos x y Sin x y2y 2Cos x y 2y 2Sin x y 2y 2Sin x y2Cos x y 2x y Cos x y 2x y Sin x y 2Cos x y Sin x y2x y Sin x y2例1.2 设,)1(y xy z +=求yzx z ∂∂∂∂,和全微分dz.输入Clear[z];z=(1+x*y)^y;D[z,x] D[z,y]则有输出⎪⎪⎭⎫ ⎝⎛++++++-]1[1)1()1(12xy Log xy xy xy xy y y y再输入Dt[z]则得到输出⎪⎪⎭⎫⎝⎛+++++]1[][1])[][()1(xy Log y Dt xy y xDt x yDt y xy y 例1.3 (教材 例1.2) 设,)(y xy a z +=其中a 是常数, 求dz.输入Clear[z,a];z=(a+x*y)^y;wf=Dt[z,Constants->{a}]//Simplify则输出结果:(a+xy)-1+y (y 2Dt[x,Constants->{a}]+Dt[y,Constants->{a}](xy+(a+xy)Log[a+xy]))其中Dt[x,Constants->{a}]就是d x , Dt[y,Constants->{a}]就是d y . 可以用代换命令“/.”把它们 换掉. 输入wf/.{Dt[x,Constants->{a}]->dx,Dt[y,Constants->{a}]->dy}输出为(a+xy)-1+y (dxy 2+dy(xy+(a+xy)Log[a+xy]))例1.4 (教材 例1.3) 设v u e y v u e x u u cos ,sin -=+=,求.,,,yv x v y u x u ∂∂∂∂∂∂∂∂ 输入eq1=D[x==E^u+u*Sin[v],x,NonConstants->{u,v}](*第一个方程两边对x 求导数, 把u,v 看成x,y 的函数*) eq2=D[y==E^u-u*Cos[v],x,NonConstants->{u,v}](*第二个方程两边对x 求导数, 把u,v 看成x,y 的函数*) Solve[{eq1,eq2},{D[u,x,NonConstants->{u,v}],D[v,x,NonConstants->{u,v}]}]//Simplify(*解求导以后由eq1,eq2组成的方程组*)则输出}}][][1(][}],{tan ,,[,][][1][}],{tan ,,[{{v Sin E v Cos E u v Cos E v u ts NonCons x v D v Sin E v Cos E v Sin v u ts NonCons x u D u u u u u -+-->->-+->->-其中D[u,x,NonConstants->{u,v}]表示u 对x 的偏导数, 而D[v,x,NonCosnstants->{u,v}]表示v 对x 的偏导数. 类似地可求得u ,v 对y 的偏导数.微分学的几何应用例1.5 求出曲面222y x z +=在点(1,1)处的切平面、法线方程, 并画出图形.解(1) 画出曲面的图形. 曲面的参数方程为⎪⎩⎪⎨⎧=∈∈==2]2,0[],2,0[,cos 2/sin rz r u u r y u f x π 输入命令Clear[f];f[x_,y_]=2x^2+y^2;p1=Plot3D[f[x,y],{x,-2,2},{y,-2,2}];g1=ParametricPlot3D[{r*Sin[u]/Sqrt[2.],r*Cos[u],r^2}, {u,0,2*Pi},{r,0,2}] 则输出相应图形(图1.2).(2) 画出切平面的图形. 输入命令a=D[f[x,y],x]/.{x->1,y->1}; b=D[f[x,y],y]/.{x->1,y->1}; p[x_,y_]=f[1,1]+a(x-1)+b(y-1);g2=Plot3D[p[x,y],{x,-2,2},{y,-2,2}];则输出切平面方程为,012=-+y x 及相应图形(图1.3).(3) 画出法线的图形. 输入命令ly[x_]=1+b(x-1)/a;lz[x_]=f[1,1]-(x-1)/a;g3=ParametricPlot3D[{x,ly[x],lz[x]},{x,-2,2}]; Show[p1,g2,g3,AspectRatio->Automatic,ViewPoint->{-2.530,-1.025,2.000}];则输出相应图形(图1.4).例1.6 (教材 例1.4) 求曲面14),(22++=y x y x k 在点⎪⎭⎫⎝⎛2164,21,41处的切平面方程, 并把曲面和它的切平面作在同一图形里.输入Clear[k,z];k[x_,y_]=4/(x^2+y^2+1); (*定义函数k(x,y)*)kx=D[k[x,y],x]/.{x->1/4,y->1/2};(*求函数k(x,y)对x 的偏导数, 并代入在指定点的值*) ky=D[k[x,y],y]/.{x->1/4,y->1/2};(*求函数k(x,y)对y 的偏导数, 并代入在指定的值*) z=kx*(x-1/4)+ky*(y-1/2)+k[1/4,1/2]; (*定义在指定点的切平面函数*)再输入qm=Plot3D[k[x,y],{x,-2,2},{y,-2,2},PlotRange->{0,4}, BoxRatios->{1,1,1},PlotPoints->30, DisplayFunction->Identity]; qpm=Plot3D[z,{x,-2,2},{y,-2,2}, DisplayFunction->Identity];Show[qm,qpm,DisplayFunction->$DisplayFunction]则输出所求曲面与切平面的图形(图1.5).多元函数的极值例1.7 (教材 例1.5) 求x y x y x y x f 933),(2233-++-=的极值. 输入Clear[f];f[x_,y_]=x^3-y^3+3x^2+3y^2-9x; fx=D[f[x,y],x] fy=D[f[x,y],y]critpts=Solve[{fx==0,fy==0}]则分别输出所求偏导数和驻点:2236369y y x x -++-{{x->-3,y->0},{x->-3,y->2},{x->1,y->0},{x->1,y->2}}再输入求二阶偏导数和定义判别式的命令fxx=D[f[x,y],{x,2}]; fyy=D[f[x,y],{y,2}]; fxy=D[f[x,y],x,y]; disc=fxx*fyy-fxy^2输出为判别式函数2xy yy xx f f f -的形式:(6+6x)(6-6y)再输入data={x,y,fxx,disc,f[x,y]}/.critpts;TableForm[data,TableHeadings->{None,{ "x ", "y ", "fxx ", "disc ", "f "}}]最后我们得到了四个驻点处的判别式与xx f 的值并以表格形式列出.X y fxx disc f -3 0 -12 -72 27 -3 2 -12 72 31 1 0 12 72 -51 2 12 -72 -1易见,当2,3=-=y x 时,12-=xx f 判别式disc=72, 函数有极大值31; 当0,1==y x 时,12=xx f 判别式disc=72, 函数有极小值-5;当0,3=-=y x 和2,1==y x 时, 判别式disc=-72, 函数在这些点没有极值. 最后,把函数的等高线和四个极值点用图形表示出来,输入d2={x,y}/.critpts;g4=ListPlot[d2,PlotStyle->PointSize[0.02],DisplayFunction->Identity]; g5=ContourPlot[f[x,y],{x,-5,3},{y,-3,5},Contours->40,PlotPoints->60,ContourShading->False,Frame->False,Axes->Automatic,AxesOrigin->{0,0},DisplayFunction->Identity];Show[g4,g5,DisplayFunction->$DisplayFunction]则输出图1.6.从上图可见, 在两个极值点附近, 函数的等高线为封闭的. 在非极值点附近, 等高线不 封闭. 这也是从图形上判断极值点的方法.注:在项目一的实验4中,我们曾用命令FindMinimum 来求一元函数的极值, 实际上,也可 以用它求多元函数的极值, 不过输入的初值要在极值点的附近. 对本例,可以输入以下命令FindMinimum[f[x,y],{x,-1},{y,1}]则输出{-5.,{x->1.,y->-2.36603×10-8}}从中看到在0,1==y x 的附近函数),(y x f 有极小值-5, 但y 的精度不够好.例1.8 求函数22y x z +=在条件0122=-+++y x y x 下的极值. 输入Clear[f,g,la]; f[x_,y_]=x^2+y^2;g[x_,y_]=x^2+y^2+x+y-1; la[x_,y_,r_]=f[x,y]+r*g[x,y]; extpts=Solve[{D[la[x,y,r],x]==0,D[la[x,y,r],y]==0,D[la[x,y,r],r]==0}]得到输出⎭⎬⎫⎩⎨⎧⎭⎬⎫⎩⎨⎧+->-+->-+->-⎩⎨⎧⎭⎬⎫⎩⎨⎧-->--->--->-)31(21),31(21),33(31,)31(21),31(21),33(31y x r y x r再输入f[x,y]/.extpts//Simplify得到两个可能是条件极值的函数值}.32,32{-+但是否真的取到条件极值呢? 可利用等高线作图来判断.输入dian={x,y}/.Table[extpts[[s,j]],{s,1,2},{j,2,3}] g1=ListPlot[dian,PlotStyle->PointSize[0.03],DisplayFunction->Identity]cp1=ContourPlot[f[x,y],{x,-2,2},{y,-2,2},Contours->20,PlotPoints->60,ContourShading->False,Frame->False,Axes-> Automatic,AxesOrigin->{0,0},DisplayFunction->Identity]; cp2=ContourPlot[g[x,y],{x,-2,2},{y,-2,2},PlotPoints->60,Contours->{0},ContourShading-> False,Frame->False,Axes->Automatic,ContourStyle->Dashing[{0.01}],AxesOrigin->{0,0},DisplayFunction->Identity]; Show[g1,cp1,cp2,AspectRatio->1,DisplayFunction->$DisplayFunction]输出为⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧+-+-⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧----)31(21,2321,)31(21,2321 及图1.7. 从图可见,在极值可疑点,2321,2321⎪⎪⎭⎫ ⎝⎛----⎪⎪⎭⎫ ⎝⎛+-+-2321,2321 处, 函数),(y x f z =的等高线与曲线0),(=y x g (虚线)相切. 函数),(y x f z =的等高线是一系列同心圆, 由里向外, 函数值在增大, 在)31(21),31(21--=--=y x 的附近观察, 可以得出),(y x f z =取条件极大的结论. 在),31(21+-=x )31(21+-=y 的附近观察, 可以得出),(y x f z =取条件极小的结论.梯度场例1.9 画出函数222),,(y x z z y x f --=的梯度向量. 解 输入命令<<Graphics`ContourPlot3D` <<Graphics`PlotField3D` <<Calculus`VectorAnalysis`SetCoordinates[Cartesian[x,y,z]];f=z^2-x^2-y^2;cp3d=ContourPlot3D[f,{x,-1.1,1.1},{y,-1.1,1.1},{z,-2,2},Contours->{1.0},Axes->Tr ue,AxesLabel->{"x","y","z"}];vecplot3d=PlotGradientField3D[f,{x,-1.1,1.1},{y,-1.1,1.1},{z,-2,2},PlotPoints->3,Ve ctorHeads->True];Show[vecplot3d, cp3d];则输出相应图形(图1.8)例1.10 在同一坐标面上作出⎪⎪⎭⎫⎝⎛++=2211),(y x x y x u 和 ,11),(22⎪⎪⎭⎫⎝⎛+-=y x y y x v 的等高线图(0>x ), 并给出它们之间的关系.解 输入命令<<Calculus`VectorAnalysis` <<Graphics`PlotField`SetCoordinates[Cartesian[x,y,z]];check[u_,v_]:={Grad[u][[1]]-Grad[v][[2]],Grad[v][[1]]+Grad[u][[2]]} u=x(1+1/(x^2+y^2));v=y(1-1/(x^2+y^2)); check[u,v]//Simplifyugradplot=PlotGradientField[u,{x,-2,2},{y,-2,2},DisplayFunction->Identity];uplot=ContourPlot[u,{x,-2,2},{y,-2,2},ContourStyle->GrayLevel[0],ContourShading->False,DisplayFunction->Identity,Contours->40,PlotPoints->40]; g1=Show[uplot,ugradplot,DisplayFunction->$DisplayFunction];vgradplot=PlotGradientField[v,{x,-2,2},{y,-2,2},DisplayFunction->Identity];vplot=ContourPlot[v,{x,-2,2},{y,-2,2},ContourStyle->GrayLevel[0.7],ContourShading->False,DisplayFunction->Identity,Contours->40,PlotPoints->40]; g2=Show[vplot,vgradplot,DisplayFunction->$DisplayFunction]; g3=Show[uplot,vplot,DisplayFunction->$DisplayFunction];g4=Show[ugradplot,vgradplot,DisplayFunction->$DisplayFunction];则输出相应图形(图1.9),其中(a) ),(y x u 的梯度与等高线图;(b) ),(y x v 的梯度与等高线图; (c) ),(y x u 与),(y x v 的等高线图; (d) ),(y x u 与),(y x v 的梯度图.图1.9从上述图中可以看出它们的等高线为一族正交曲线. 事实上, 有,,2222x v y x x y u y v y x x x u ∂∂-=+=∂∂∂∂=+=∂∂ 且,0=∇⋅∇v u 它们满足拉普拉斯方程022222222=∂∂+∂∂=∂∂+∂∂y vx v y u x u 例1.11 (教材 例1.6) 设,),()(22y x xe y x f +-=作出),(y x f 的图形和等高线, 再作出它的梯度向量gradf 的图形. 把上述等高线和梯度向量的图形叠加在一起, 观察它们之间的关系.输入调用作向量场图形的软件包命令<<Graphics\PlotField.m再输入Clear[f];f[x_,y_]=x*Exp[-x^2-y^2];dgx=ContourPlot[f[x,y],{x,-2,2},{y,-2,2},PlotPoints->60, Contours->25,ContourShading->False,Frame->False,Axes->Automatic,AxesOrigin->{0,0}] td=PlotGradientField[f[x,y],{x,-2,2},{y,-2,2},Frame->False] Show[dgx,td]输出为图1.10. 从图可以看到Oxy 平面上过每一点的等高线和梯度向量是垂直的, 且梯度的 方向是指向函数值增大的方向图1.10例1.12 求出函数244),(y xy x y x f +-=的极值, 并画出函数),(y x f 的等高线、驻点以及),(y x f -的梯度向量的图形.输入命令<<Graphics`PlotField`f=x^4-4*x*y+y^2;FindMinimum[f,{x,1},{y,1}]conplot=ContourPlot[f,{x,-2,2},{y,-3,3},ContourShading->False,PlotPoints->100,Contours->{-4,-2,0,2,4,10,20}];fieldplot=PlotGradientField[-f,{x,-2,2},{y,-3,3},ScaleFunction->(Tanh[#/5]&)];critptplot=ListPlot[{{-Sqrt[2],-2*Sqrt[2]},{0,0},{Sqrt[2],2*Sqrt[2]}},PlotStyle->{PointSize [0.03]}];Show[conplot,fieldplot,critptplot];则得到),(y x f 的最小值.4)82843.2,41421.1(-=f 以及函数的图形(图1.11).实验习题 1.设,xy e z =求.dz2.设),,(y xy f z =求.,,22222y x zy z x z ∂∂∂∂∂∂∂ 3.设),sin (cos ),(228/)(22y x e y x g y x+=+-求.,,2yx z y z x z ∂∂∂∂∂∂∂ 4.试用例1.5的方法求265433051830120),(xy x x x x y x f +++--=的极值. 5.求324y x z +=在01422=-+y x 条件下的极值.6.作出函数42210/)2(),(y x e y x f +-=的等高线和梯度线的图形, 并观察梯度线与等高线的 关系.实验2 多元函数积分学(基础实验)实验目的掌握用Mathematica 计算二重积分与三重积分的方法; 深入理解曲线积分、曲面积分的 概念和计算方法. 提高应用重积分和曲线、曲面积分解决各种问题的能力.基本命令1. 计算重积分的命令lntegrate 和NIntegrate 例如,计算dydx xy x ⎰⎰102, 输入Integrate[x*y^2,{x,0,1},{y,0,x}]则输出 151又如,计算dydx xy )sin(10102⎰⎰的近似值, 输入NIntegrate[Sin[x*y^2],{x,0,1},{y,0,1}] 则输出 0.160839注: Integrate 命令先对后边的变量积分.计算三重积分时,命令Integrate 的使用格式与计算二重积分时类似. 由此可见, 利用 Mathematica 计算重积分, 关键是确定各个积分变量的积分限. 2. 柱坐标系中作三维图形的命令CylindricalPlot3D使用命令Cylindricalplot3D, 首先要调出作图软件包. 输入 <<Graphics`ParametricPlot3D` 执行成功后便可继续下面的工作.使用命令Cylindricalplot3D 时,一定要把z 表示成r ,θ的函数. 例如,在直角坐标系中方 程22y x z +=是一旋转抛物面, 在柱坐标系中它的方程为2r z =. 因此,输入 CylindricalPlot3D[r^2,{r,0,2},{t,0,2Pi}] 则在柱坐标系中作出了该旋转抛物面的图形.3. 球面坐标系中作三维图形命令SphericalPlot3D使用命令SphericalPlot3D, 首先要调出作图软件包. 输入 <<Graphics`ParametricPlot3D` 执行成功后便可继续下面的工作.命令SphericalPlot3D 的基本格式为SphericalPlot3D[r[],θϕ, {}],,{},,,2121θθθϕϕϕ其中r[],θϕ是曲面的球面坐标方程, 使用时一定要把球面坐标中的r 表示成ϕ、θ的函数. 例如,在球面坐标系中作出球面,22222=++z y x 输入Sphericalplot3D[2,{u,0,pi},|v,0,2,pi|,plotpoints->40]则在球面坐标系中作出了该球面的图形. 4. 向量的内积用“.”表示两个向量的内积. 例如,输入 vecl={al,bl,cl} vec2={a2,b2,c2} 则定义了两个三维向量, 再输入 vec1. vec2 则得到它们的内积a1a2+b1b2+c1c2实验举例计算重积分例2.1 (教材 例2.1) 计算,2dxdy xyD⎰⎰ 其中D 为由,,2y x y x ==+ 2=y 所围成的有界区域.先作出区域D 的草图, 易直接确定积分限,且应先对x 积分, 因此, 输入 Integrate[x*y^2,{y,1,2},{x,2-y,Sqrt[y]}] 则输出所求二重积分的计算结果.120193例2.2 (教材 例2.2) 计算,)(22dxdy e Dy x⎰⎰+- 其中D 为.122≤+y x如果用直角坐标计算, 输入Clear[f,r];f[x,y]=Exp [-(x^2+y^2)];Integrate[f[x,y],{x,-1,1},{y,-Sqrt[1-x^2],Sqrt[1-x^2]}]则输出为dx x 1Erf e 211x 2⎥⎦⎤⎢⎣⎡-π⎰--其中Erf 是误差函数. 显然积分遇到了困难.如果改用极坐标来计算, 也可用手工确定积分限. 输入Integrate[(f[x,y]/.{x->r*Cos[t],y->r*Sin[t]})*r,{t,0,2 Pi},{r,0,1}] 则输出所求二重积分的计算结果eπ-π 如果输入NIntegrate[(f[x,y]/.{x->r*Cos[t],y->r*Sin[t]})*r,{t,0,2 Pi},{r,0,1}] 则输出积分的近似值1.98587例 2.3 (教材 例 2.3) 计算dxdydz z y x)(22++⎰⎰⎰Ω, 其中Ω由曲面222y x z --=与22y x z +=围成.先作出区域Ω的图形. 输入g1=ParametricPlot3D[{Sqrt[2]*Sin[fi]*Cos[th],Sqrt[2]*Sin[fi]*Sin[th], Sqrt[2]*Cos[fi]},{fi,0,Pi/4},{th,0,2Pi}] g2=ParametricPlot3D[{z*Cos[t],z*Sin[t],z},{z,0,1},{t,0,2Pi}] Show[g1,g2,ViewPoint->{1.3,-2.4,1.0}]则分别输出三个图形(图2.1(a), (b), (c)).考察上述图形, 可用手工确定积分限. 如果用直角坐标计算, 输入 g[x_,y_,z_]=x^2+y^2+z;Integrate[g[x,y,z],{x,-1,1},{y,-Sqrt[1-x^2], Sqrt[1-x^2]},{z,Sqrt[x^2+y^2],Sqrt[2-x^2-y^2]}] 执行后计算时间很长, 且未得到明确结果.现在改用柱面坐标和球面坐标来计算. 如果用柱坐标计算,输入Integrate[(g[x,y,z]/.{x->r*Cos[s],y->r*Sin[s]})*r, {r,0,1},{s,0,2Pi},{z,r,Sqrt[2-r^2]}]则输出π⎪⎪⎭⎫⎝⎛+-15281252 如果用球面坐标计算,输入Integrate[(g[x,y,z]/.{x->r*Sin[fi]*Cos[t],y->r*Sin[fi]*Sin[t],z->r*Cos[fi]})*r^2*Sin[fi],{s,0,2Pi},{fi,0,Pi/4},{r,0,Sqrt[2]}]则输出π⎪⎪⎭⎫ ⎝⎛+-321662551这与柱面坐标的结果相同.重积分的应用例2.4 求由曲面()y x y x f --=1,与()222,y x y x g --=所围成的空间区域Ω的体积.输入Clear[f,g];f[x_,y_]=1-x -y;g[x_,y_]=2-x^2-y^2;Plot3D[f[x,y],{x,-1,2},{y,-1,2}] Plot3D[g[x,y],{x,-1,2},{y,-1,2}] Show[%,%%]一共输出三个图形,首先观察到Ω的形状. 为了确定积分限, 要把两曲面的交线投影到Oxy 平面上输入 jx=Solve[f[x,y]==g[x,y],y] 得到输出 ⎭⎬⎫⎩⎨⎧⎭⎬⎫⎩⎨⎧⎪⎭⎫ ⎝⎛-++→⎭⎬⎫⎩⎨⎧⎪⎭⎫ ⎝⎛-+-→22445121,445121x x y x x y为了取出这两条曲线方程, 输入 y1=jx[[1,1,2]] y2=jx[[2,1,2]] 输出为⎪⎭⎫ ⎝⎛-+-2445121x x⎪⎭⎫ ⎝⎛-++2445121x x再输入tu1=Plot[y1,{x,-2,3},PlotStyle->{Dashing[{0.02}]},DisplayFunction->Identity];tu2=Plot[y2,{x,-2,3},DisplayFunction->Identity]; Show[tu1,tu2,AspectRatio->1, DisplayFunction-> $DisplayFunction]输出为图2.2, 由此可见,y 是下半圆(虚线),y 是上半圆,因此投影区域是一个圆.设21y y =的解为1x 与2x ,则21,x x 为x 的积分限. 输入 xvals=Solve[y1==y2,x]输出为 ()()⎭⎬⎫⎩⎨⎧⎭⎬⎫⎩⎨⎧+→⎭⎬⎫⎩⎨⎧-→6121,6121x x 为了取出21,x x , 输入x1=xvals[[1,1,2]]x2=xvals[[2,1,2]]输出为()6121- ()6121+。

数学建模之软件篇Mathematica使用介绍

数学建模之软件篇Mathematica使用介绍

第一章 数学软件Mathematica简介
6.%在Mathematica中代表什么含义
几乎所有的计算都可能用到前面已经计算好的结果,这时 Mathematica提供了一种简单的调用方式:
第一章 数学软件Mathematica简介
7.如何计算结果的近似值
在实际应用中,我们通常需要的是一个精确度很高的数值结果, 而不是一个绝对准确但表示非常复杂的结果,比如Sin[2/3]或者一个 一元四次方程的解。但如果参与运算的量都是精确的,则Mathematica 按精确值的方式输出。我们常用N函数把结果转换为数值结果。
表称为List,是由大括号“{ }”括起来的若干元素,元素间用逗号分 隔。其直接形式为:表名={元素1,元素2,…}。所以Mathematica中的表 其实就是我们通常所用的集合。它可以用来表示集合、矩阵、数组、向 量、数列等一些我们在计算机中常用的结构。 (1)参数表 在后面的学习中,我们经常会在Mathematica的内部函数的参数中看见 大括号,这就是参数表。下面我们列出常用参数表的含义:
取值范围可以是:Intergers,Rationals,Real,Complexes(即整数,有 理数,实数,复数)。
例:
第二章 初等数学篇
7.Mathematica中常用的多项式操作函数
在Mathematica中,你可以对多项式(包括一元和多元多项式)直接 进行加、减、乘、除、乘方等运算,此外系统还提供了丰富的函数以满足 用户对多项式操作的需要。 下面给出多项式的常用操作函数:
第二章 初等数学篇
3.Mathematica中的表指什么
(5)表的运算
第二章 初等数学篇
4.如何求解一元n次方程
解一元多项式方程主要的函数是Solve,该函数的目标是尽量找出方程 的精确解。Mathematica总可以解出四阶及以下的多项式方程,对于三次或 四次方程,结果可能相当复杂。在解四次以上的多项式方程时, Mathematica碰到数学理论上的障碍(即一般的四次以上的多项式方程不能 根式求解)而可能给不出精确解,但总可以给出数值解,并且对某些高次 方程Solve是可以给出精确结果的.

mathematica中数据拟合算符的用法

mathematica中数据拟合算符的用法

mathematica中数据拟合算符的用法在数据处理中常常设法用一个函数按照某种法则去描述一组数据,这就是数据拟合。

上面介绍的最小二乘法就是一种最常用的数据拟合方法。

mathematica中最基本的数据拟合算符是fit[ ] ,语法为fit[数据,拟合函数的基函数列表,变量]线性函数拟合的基函数为1,x ,n阶多项式拟合的基函数是1,x,x2,…xn。

例一册书的成本费y与印刷的册数x有关,统计数据如下:xi(千册) 1 2 3 4 5 6 7 8 9 10yi(元)10.15 5.52 4.08 2.85 2.11 1.62 1.41 1.30 1.21 1.15试用y=a+ 去拟合上述数据。

mathematica程序及运行结果如下:data={10.15,5.52,4.08,2.85,2.11,1.62,1.41,1.30,1.21,1.15};fit[data,{1,1/x},x]四、实验内容与要求1 画出实验问题的数据图,并粗略估计这些数据与什么类型的函数比较吻合?2 取经验公式为线性函数y=ax+b 按照最小二乘法的原理用mathematica编程解实验问题。

3 取经验公式为y=ax+b +c sin[ x]+d cos[ x] ,用mathematica中算符fit[]来求解实验问题,并与内容2的精度比较,对比实际情况,你能得出什么?五、操作提示12 拟合程序及运行结果如下:预测程序及运行结果如下:3 程序及运行结果如下:计算两种经验公式的精度可以看出第二种较好,这与客流量呈季节被动变动的实际情况吻合。

怎样用mathematica拟合二元函数?数据拟合由一组已知数据(xk,yk)(k=1,2,…,n),求函数的近似解析式y=f(x),就是数据拟合问题,当然函数还可以是多元的。

Mathematica提供了进行数据拟合的函数:Fit[data,funs,vars] 对数据data用最小二乘法求函数表funs中各函数的一个线性组合作为所求的近似解析式,其中vars是自变量或自变量的表。

Mathematica使用简介

Mathematica使用简介
a1
a1 x2
6.
2 x+y → →
x2
a1 2x y
作用:例如对x求微分,得如下结果:
如果希望知道D的用法,怎么办? HELP 查看帮助命令
二、绘图命令
Plot[f,{x,xmin,xmax}] 从xmin到xmax绘制绘制f(x)的函数图 Plot[{f1,f2,f3,…},{x, xmin,xmax}] 同时绘制多个函数图
x cos t 例,单位圆的参数形式为 y sin t
则画圆操作如下: ParametricPlot[{Cos[t],Sin[t]},{t,-Pi,Pi}]
(ii)三维参数作图
ParametricPlot3D[参数形式函数,{自变量1,下限,上限}, {自变量2,下限,上 限},,选项]
数学表达式的二维格式输入
Expression input Edit菜单 a1 2 例:输入数学表 x 2x y 达式:
步骤 1. 2. 3. 4. 5. 按键顺序 x (ctrl+6) 2 → + a (ctrl+-) 1 (ctrl +/) (ctrl+2) 显示结果
x
x
x2
2
x2 a 1
2) 如果希望多个图形左右或上下排成一长图而 重叠,则可以用GraphicsArray 命令 Show[GraphicsArray[{g1, g2, …}]] 将图形横向并排 Show[GraphicsArray[{ {g1}, {g2}, …}]] 将图形纵向排列 Show[GraphicsArray[{ {g1, g2, …}, …}]] 将图形以二维矩阵的形式排列
5.
图形的合并与排列

数学建模常用软件Mathematica介绍

数学建模常用软件Mathematica介绍
x2 , x 1 f x 2 x, x 1
可以键入f[x_]:=If[x<=1,x^2,2-x] 或 f[x_]:=Which[x<=1,x^2,x>1,2-x]
类似可以定义多元函数。 例如
目录
上页
下页
返回
结束
3. 用Mathematica画函数的图象
3.1 基本一元函数作图
目录
上页
下页
返回
结束
1.4 查询与帮助
在对某个函数的具体用法感到不确定时,可在工 作区输入查询命令?函数名,如果想查询的更精确 一些,可使用命令??函数名。另外,Help菜单中 提供了大量的帮助信息,读者也可以通过Help菜单 来了解和学习Mathematica的更多功能和用法。
目录
上页
下页
返回
结束
目录 上页 下页 返回 结束
1. Mathematica入门
1.1 Mathematica的启动 正确安装Mathematica软件,在开始菜单里或者 桌面上找到Mathematica,双击便会出现下面的窗口, 表示Mathematica已经启动。
目录
上页
下页
返回
结束
1.2 Mathematica的工作界面 空白区域为Notebook窗口(工作区),其上方为主 菜单,右方为基本输入模板。
1.5 Mathematica文件的保存
Mathematica中所做的工作,在“File”菜单中点 取“Save As…”,弹出对话框 ,和大多数软件一 样,在文件名处键入你所要保存文件的文件名, 并选择好你打算保存文件的存储位置,回车即完成 文件的保存。保存的文件以“.nb”(Notebook的缩 写) 为后缀。是系统默认的Mathematica语言程序文件。

Mathematical用法 大全 实用版

Mathematical用法 大全 实用版
11.求和:In[1]:=NSum[Sin[n]/n^3,{n,1,Infinity}](求级数 的和)
12.求极小值:In[1]:=FindMinimum[Sin[x]*Cos[x],{x,0.5}](求函数在0.5附近的极小值);
In[2]:=FindMinimum[Sin[x*y]*Exp[x^2],{x,0.2}, {y,0.3}](求多元函数极小值)
(* 这是一个例题 每行后按回车键 用半角标点符号*)
Print["请回答3个题目"]
For[i=1,i<=3,i=i+1,
a=Random[Integer,{1,100}];
b=Random[Integer,{1,100}];
In[4]:=%2+4,Out[4]= 12;
In[5]:=1/3-1/4,Out[5]= ;In[6]:=N[%],Out[6]= 0.0833333;
In[7]:=N[%5+12,10],Out[7]= 12.08333333(注意字母的大小写)
3.变量赋值:变量=表达式,“x=.”或Clear[x] 表示清除对x的赋值。
Mathematica for Windows用法
一、Mathematica的主要功能
Mathematica是美国Wolfram公司开发的一个功能强大的计算机数学系统,提供了范围广泛的数学计算功能,主要包括三个方面:符号演算、数值计算、图形。例如:多项式的四则运算、展开、因式分解,有理式的各种计算,有理方程、超越方程的解,向量和矩阵的各种计算,求极限、导数、极值、不定积分、定积分、幂级数展开式,求解微分方程,作一元、二元函数的图形等等。
8.幂级数展开:In[1]:=Series[Exp[x],{x,0,4}](在x=0处展开到x的四次幂)

Matlab与Mathematica在非线性拟合中的应用比较

Matlab与Mathematica在非线性拟合中的应用比较
数 据 拟 舍 ;M tb a eai 内建 函 数 al ;M t m t a h c t = n 1 = aa 】
( 02 , 0} 0 5 6 } O7 , 5} { . 5 3 ,{ . 8 ,{ .5 7 , { , 2 , { ., 2} 2 7 ,{ ., 8} 18 ) 1 8 ,{ , 7} 25 6 , 5 { , 8) 35 5 ,{ , 1 , { ., 0) 3 6 ,{ ., 8) 4 5 ) 4 5 5 , f , 1 ,f , 8 , { , 5) { , 8 , 5 4 } 6 3 ) 73 , 82 } { , 5} { 0 1 ,{ 1 1 , 9 2 , 1 , 8) 1 , 5} { 2 l , ( 3 1 , { 4 7} l , 2} 1 , 0) 1 , ,
时 间 (JH ,I ,
p = i Po d t] g Ls ll a t t a 就 可以输 出的带坐标 的散点 图。 当数 据 需手 动输 入 时 ,Mah maia te t 可 c 以 随 时 将 录 入 错 误 的 数 据 加 以 修 正 ,而 在 M alb 令 窗 口中 ,如 果 需 要修 正 数 据 , t 命 a 就 必 须 调 出 已输 入 过 的 数 据 再 加 以 修 改 , 查 找起 来 不  ̄ Mah maia 便 。作 图时 N t e tc 方 Maa 使用绘 图命令po tb l l t= ( ,Y 口 ) t , ,而 Mah mai 用Ls lt aa,两 种软件 绘 图 t e t a i P o[ t ] c t d 操 作都很 方便 。 其次 ,利 用软 件的 内建 函数对 此数据 进 行 非线性拟 合 。做 出比较 。 用Mal 的 内 建函数 对参 数求 解 ,可调 tb a 用 最小二乘拟 合 函 ̄l cret ,先 定义非 s uvf() q i 线性 函数t . 文件 : i i m n fnt n u co Y= f (,t i ua ) n Y = ( }x (a1 t *x (a ) ) a ) p一 (}) ep一 ( ) 3e ) 一 2 t 这 里a1 o,a ) p,a ) () L ( 为 为 2 ( 代表A,即 3 为y A e = ( Le ) - 。 在 命令窗 口中运 行以下 命令 : >> t= [ .5 .,0 7 ,1 .,2 0 2 ,O 5 .5 ,15 ,

Mathematics中数据处理插值拟合和编程基础

Mathematics中数据处理插值拟合和编程基础

{{x0,f0},{x1,f1},…,{xn,fn}} (平面点的坐标) {f1,…,fn} (点的纵坐标,第i个点的横坐标为i) {{x0,{f0,df0}},{x1,{f1,df1}},…,{xn,{fn,dfn}}} (点的函数 值及一阶导数值) {{x0,y0,z0},{x1,y1,z1},…,{xn,yn,zn}} (三维空间点列)
m=i^3 ;Module[{i=b},i+m] m=i^3 ;Block[{i=b},i+m]
二、条件控制结构
逻辑表达式和逻辑运算符
关系运算符:= = != > >= 逻辑运算符: ! && || 意义: 非 与 或 < <=
逻辑表达式的值
真、假、非真非假
If语句的结构
设有一组实验观测数据(xi,yi),i=0,1,…n, 如何揭示自变量x与因变量y 之间的关系? 寻找近似的函数关系表达式y=f(x) 常用的方法:插值与拟合
一、插值
给定n+1个插值点(xi,yi), i=0,1,2,…,n, 构造次数不超过n的多 项式p(x), 使p(xi)=yi, 则称p(x)为插值多项式。 构造插值对象的函数: Interpolation[data,InterpolationOrder—>n] 功能: 对数据data进行插值运算,并可设置插值多项式的次数n, 默认 值为3。 注: 生成一个InterpolatingFunction[插值范围,<>]目标,不显 示所构造的函数。 所得目标为近似函数 数据data的表示形式
程序设计
一、过程的基本构成
过程是用分号隔开的表达式序列,也称为复合表达式. 复合表达式的值是该表达式序列最后一个表达式的值. 全局变量与局部变量 局部变量的说明: Module[{局部变量表},表达式] Block[{局部变量表},表达式] 注: 变量表中只列变量名,可赋初值,变量间用逗号隔开. Module与Block函数中的表达式常常是复合表达式. Module与Block函数的函数值即为表达式的值. 例: wc[n_]:= Module[{i, f}, b = Table[x^i, {i, 1, n}]; f[x_] = Fit[data, b, x]; Sum[(data[[i, 2]] - f[data[[i, 1]]])^2, {i, 1, Length[data]}]]

mathematica 拟合曲线

mathematica 拟合曲线

mathematica 拟合曲线Mathematica拟合曲线Mathematica是一款功能强大的数学软件,它具备拟合曲线的功能,可以帮助我们分析和处理曲线数据。

在本文中,我们将介绍如何使用Mathematica进行曲线拟合。

1. 数据准备在进行曲线拟合之前,首先需要准备一组数据。

这组数据应该包含自变量和因变量的取值。

假设我们有以下数据:自变量 x: 1, 2, 3, 4, 5因变量 y: 4, 7, 10, 13, 162. 构建数学模型在进行曲线拟合之前,我们需要选择一个数学模型来描述数据之间的关系。

在Mathematica中,可以使用各种数学函数来构建模型,包括线性函数、多项式函数、指数函数等。

假设我们选择了一个二次多项式函数来模拟数据,可以表示为:y = a*x^2 + b*x + c其中a、b、c是待确定的参数。

3. 曲线拟合在Mathematica中,可以使用FindFit函数进行曲线拟合。

语法如下:fit = FindFit[data, model, {a, b, c}, x]其中data是待拟合的数据,model是选择的数学模型,{a, b, c}是待确定的参数,x是自变量。

对于我们的数据,可以使用以下代码进行曲线拟合:data = {{1, 4}, {2, 7}, {3, 10}, {4, 13}, {5, 16}};model = a*x^2 + b*x + c;fit = FindFit[data, model, {a, b, c}, x]Mathematica将通过最小二乘法来拟合曲线,并得出参数的估计值。

4. 可视化结果完成曲线拟合后,可以使用Plot函数将实际数据和拟合曲线进行可视化。

可以使用以下代码:Show[ListPlot[data, PlotStyle -> Red], Plot[model /. fit, {x, 0, 6}]]其中ListPlot绘制实际数据的散点图,Plot绘制拟合曲线。

MATHMATICA在曲线拟合中的应用

MATHMATICA在曲线拟合中的应用

MATHMATICA 在曲线拟合中的应用 问题:曲线拟合是函数逼近的重要方法之一,它是求近似函数的一种方法,在实际生活中有着广泛的应用.以经济增长模型为例,如果简单地依靠人工计算,工作量繁多而且容易出错,而M athan atica 软件以其强大的函数功能加上语言结构简便易懂,在解决此类问题时有其独到的一面.文以某市10年的GDP 统计数据为例,说明如何利用Mathematica 软件来拟合经济增长模型的方法,得到投资合度与GDP 的关系,统计数据如表1所示.表1某市10年间GDP 与投资额度数据表思路:投资额度和GDP 的关系可以用一个多项式去拟合,在一定范围内多项式次数越大,拟合越精确,但是拟合模型更复杂,本文建立一个6次的多项式去拟合投资额度和GDP 的关系。

拟合表达式形如:通过Mathematica 编程求出a~g 系数就可以Mathematica 编程data = {{6, 4.6}, {8, 4.8}, {10, 4.6}, {12, 4.9}, {14, 5}, {16,23456()f x a bx cx dx ex fx gx =++++++5.4}, {18, 5.1}, {20, 5.5}, {22, 5.6}, {24, 6}};fitfunction = Fit[data, {1, x, x^2, x^3, x^4, x^5, x^6}, x]Show[ListPlot[data, PlotStyle -> Red], Plot[fitfunction, {x, 6, 24}]]运行结果:−29.465454545499384+17.014829836853913x−3.3451759906810676x2+0.3325997960378318x3−0.017684294871824838x4+0.0004795673076931552x5−0.000005208333333342855x6 GDP截图如下:结论GDP与投资额度的拟合关系是一个六次多项式函数,函数表达式如下:f x=−29.465454545499384+17.014829836853913x−3.3451759906810676x2+0.3325997960378318x3−0.017684294871824838x4+0.0004795673076931552x5−0.000005208333333342855x6拟合精度比较高,GDP随投资额度的增长波动上升。

Mathematica第6章 插值与拟合

Mathematica第6章 插值与拟合
演示6.5.nb
第6章 插值、拟合、数学规划
6.1 一元 插值 6.1.1插值函数中数据输入方式: data1={{x1,y1},{x2,y2},…,{xn,yn}} data2={y1,y2,y3,…} data3={{xБайду номын сангаас,{y1,dy1}},{x2,{y2,dy2}},…,} data4={{x1,y1,z1},{x2,y2,z2},…} data5=Table[fi,{I,imin,imax}] 6.1.2 整区间上的插值 InterpolatingPolynomial[data,x]
6.3 曲线拟合
给定一组数据,Mathematica可按最小二乘法的原 理对这组数据进行线性拟合或n次多项式等曲线拟 合,调用函数格式: 函数 Fit[data,funs,vars] 意义 用变量为vars的函数 funs拟合一组数据 线性拟合,拟合函数形式 为a+bx 二次曲线拟合,拟合函数 形式为a+bx+cx2 n阶多项式拟合
Fit[{f1,f2,…},{1,x},x]
Fit[{f1,f2,…},{1,x,x^2},x] Fit[data,Table[x^i,{i,0,n}],x]
练习
已知函数为2e-x 1、求x从0到10的函数表(为近似值)。 2、求第一题所得数据的线性拟合。 3、求第一题所得数据的二次线性拟合。 4、把两次拟合的图形与原图形进行比较。
6.5.2无约束非线性规划
函数 意义
FindMinimum[f,{x,x0}] 从点x=x0开始,求函数f局 部最小值 FindMinimum[f,{x,x0,x 1}] FindMinimum[f,{x,x0}, {y,y0},…] FindMinimum[f,{x,x0, xmin,xmax},{y,y0,ymin ,ymax},…] 以x0,x1作为x的开始两个 值,求局部最小值 求多自变量函数的极小值 (xmin,xmax),(ymin,ymax)局 部极小点的上下界估计值

mathematica通过数据进行曲线拟合 导出公式

mathematica通过数据进行曲线拟合 导出公式

mathematica通过数据进行曲线拟合导出公式Mathematica是一种功能强大的数学计算软件,可以通过数据进行曲线拟合,并输出拟合公式。

要在Mathematica中进行曲线拟合,需要先导入数据。

可以使用`Import`命令导入数据文件,或直接使用`List`命令输入数据。

例如,假设要拟合的数据为一个二维列表,其中`x`为自变量,`y`为因变量,可以使用以下命令导入数据:```data = {{x1, y1}, {x2, y2}, ...};```然后,可以使用`FindFit`命令进行曲线拟合。

`FindFit`命令需要指定拟合的函数形式和拟合参数的初始值。

例如,可以使用以下命令进行线性拟合:```fit = FindFit[data, a*x + b, {a, b}, x];```其中,`data`为输入数据,`a`和`b`为拟合参数,`x`为自变量。

拟合结果将存储在`fit`中。

要导出曲线拟合的公式,可以使用`Normal`命令。

例如,可以使用以下命令导出线性拟合的公式:```fitFunc = Normal[fit];```其中,`fitFunc`即为拟合的线性函数。

准确回答你的问题,曲线拟合的准确性取决于拟合函数的选择和数据的合理性。

可以通过调整拟合函数的形式和参数的初始值,以及增加拟合参数的数量,来提高拟合的准确性。

此外,还可以对数据进行预处理,例如去噪、平滑等,以获得更准确的拟合结果。

拓展的话,Mathematica不仅可以进行简单的曲线拟合,还可以进行更复杂的拟合任务,如非线性拟合、多项式拟合、曲面拟合等。

可以利用Mathematica提供的丰富的拟合函数和性能强大的计算能力,在科学研究、工程分析等领域中广泛应用。

数学软件Mathematica的应用

数学软件Mathematica的应用

数学软件Mathematica的应用一、数学软件Mathematica简介★Mathematica是由美国Wolfram公司研究开发的一款著名的数学软件;★Mathematica能够完成符号运算、数学图形的绘制等,功能非常强大;★Mathematica能够做精确计算;★Mathematica的界面操作非常友好;★Mathematica是数学建模常用的数学软件之一。

二、利用模板进行微积分运算File(文件)→Palettes(模板)→BasicInput(基本输入)File(文件)→Palettes(模板)→BasicCalculations(基本计算)三、Mathematica中一些常用的函数(1(2(3((5(6(8)数值分析函数在Mathematica 中,一个逻辑表达式的值有三个:真(True )、假(False )和“非真非假”。

条件控制函数If(1) If 语句的结构与一般的程序设计语言中的If 的结构类似。

它有三种情况:If[逻辑表达式,表达式1]当逻辑表达式的值为真时则计算表达式1,表达式1的值就是整个If 结构的值;If[逻辑表达式,表达式1,表达式2]当逻辑表达式的值为真时则计算表达式1,为假时则计算表达式2; If[逻辑表达式,表达式1,表达式2,表达式3]当逻辑表达式的值为真时则计算表达式1,为假时则计算表达式2,其它情况则计算表达式3。

循环控制语句Mathematica 中有3种描述循环的语句,它们是Do,While 和For 语句。

下面是其一般形式:For[初值,条件,修正,循环体] While[条件,循环体] Do[循环体,{循环围}]四、结合图形进行分析1.作出函数xx f y 1sin )(==在区间]1,1[-上的图像,观察当0→x 时函数的变化情况;作出函数xx x f y 1sin)(==在区间]1,1[-上的图像,观察当0→x 时函数的变化情况;2.作出双曲抛物面xy z =的图形; 3.作weierstracs 函数)13cos(21)(1x x f n n nπ∑∞==(处处连续但处处不可导)的图像;4.x ∈(-5,5), y ∈(-5,5)的所有根;五、验证与探索1.x sin 的泰勒级数2.x sin 的无穷乘积猜想六、算法与程序1.分形图(迭代)2.将矩阵化为行最简形(步骤)七、实际问题的Mathematica 求解1.椭圆弧长的计算问题计算椭圆βα≤≤⎩⎨⎧==t t b y ta x ,sin cos 的弧长及近似值。

mathematica通过数据进行曲线拟合 导出公式

mathematica通过数据进行曲线拟合 导出公式

在Mathematica中,你可以使用内置的Fit函数进行曲线拟合。

以下是一个基本的例子:mathematica复制代码
data = {{0, 0}, {1, 1}, {2, 4}, {3, 9}, {4, 16}, {5, 25}};
model = a*x^2 + b;
fit = Fit[data, model, x, "ThroughOrigin"];
{aValue, bValue} = coeff /. First@FitResult /. fit
Export["fitResults.txt", "a = "<> ToString[aValue] <> ", b = "<> ToString[bValue]]
在这个例子中,我们首先定义了一些数据点,然后定义了一个模型函数model,它是一个二次函数。

然后我们使用Fit函数对数据进行拟合,并指定x为自变量,model为因变量。

"ThroughOrigin"选项表示模型函数将通过原点。

最后,我们提取拟合结果的系数a和b,并导出到名为"fitResults.txt"的文件中。

这只是一个基本示例。

在实践中,你可能需要对数据进行更多的处理,比如缺失数据的处理,异常值的处理等等。

Mathematica的Fit函数提供了许多选项,可以让你对拟合过程进行更精细的控制。

Mathematica的综合、作图与拟合功能

Mathematica的综合、作图与拟合功能

第1章 Mathematica 的 综合、作图与拟合功能Mathematica 软件系统俗称是Mathematica 数学专用软件包,是一个功能强大的计算机软件系统,其主要功能是(1)数学符号运算:几乎所有我们能够见到的数学运算它都能计算,并且它能根据使用者的需要给出符号结果与数值结果。

例如,运算 3121 的结果可以是 65,也可以是0.833333;(2)强大的作图功能:可以数据作图,也可以参数作图或函数作图,还可以自定义作图;(3)带有丰富的子程序软件包,方便各种专业人士的使用。

Mathematica 软件系统是由美国的 Wolfram Research 公司1986年开始开发的,现今市面上已有Mathematica 软件系统出售。

应用Mathematica 软件系统的几点说明:(1) Mathematica 每次执行一个工作块(Cell )中的程序与命令。

执行命令时,首先激活此命令所在工作块右边的蓝色标志线(或者将光标放在此工作块程序之中的任何位置上),然后按击键盘右下方数字区的小Enter 健(或者Shift + Enter ),即可执行指定工作块中的程序和命令。

(2) 点击工具栏中的“help ”功能,可以查询任何一条命令的功用、要求、使用范围、格式等等。

(3) Mathematica 中有许多符号已被软件包内部专用,因此,使用者在编程序时禁止使用C 、D 、E 、I 、N 、M 、Pi 等。

(4) 若在Mathematica 的程序后面打分号“;” ,则机器正常运算,但不显示运算结果。

(5) 若在Mathematica 的程序最后面加 //Timing ,则机器不但显示运算结果,而且显示运算时间。

(6) 若多次调用同一个字母,例如x ,最好在调用后使用清空命令 Clear[x] 。

(7) 依次点击 File ,Palettes ,BasicInput 就可出现一个基本输入模板,将会大大方便使用者输入数学符号和公式。

mathematica实验报告6(线性代数,插值,拟合)

mathematica实验报告6(线性代数,插值,拟合)
v.u
结果:{{15,13,22},{18,16,26}}
(2)。命令:Det[u]
结果:{{15,13,22},{18,16,26}}
(3)。命令:Inverse[u]结果:w={{1,2,0},{2,1,0},{0,0,2}}
三命令:w={{1,2,0},{2,1,0},{0,0,2}}
Eigensystem[w]
四、程序、命令与结果
一.(1)命令:IdentityMatrix[3] %//MatrixForm
结果:
(2)命令:Table[If[i>j,0,2],{i,1,3},{j,1,4}] //TableForm
结果:
二.(1)命令:v={{4,5,6},{5,6,7}}
u={{1,2,0},{1,1,2},{1,0,2}}
新疆财经大学《数学软件》实验报告
实验6线性代数、插值与拟合
班级专业:姓名:学号:日期:成绩:
一、实验目的
1.掌握线性代数中的各种变换及运算;
2.掌握函数的插值与拟合方法;
二、实验准备
命令:MatrixForm、Table、IdentityMatrix、DiagonalMatrix、Det、Transpose、Inverse、Eigenvalue、Eigenvectors
3)利用所求得的P5(x)计算P5(2.3),P5(4.5)。
6.对数据表Tb1:
1)在[0,6]上分别求2,4,6次拟合多项式P2(x),P4(x),P6(x);
2)依次画出y2=P2(x),y4=P4(x),y6=P6(x)的图形c2,c4,c6;
3)将曲线c2,c4,c6连同曲线c0: 组合在同一坐标系下。
PseudoInverse、SingularValues、RowReduce、LinearSolve、NullSpace、Interpolation、Fit等命令

Mathematica软件进行拟合

Mathematica软件进行拟合

实验九数据的曲线拟合一、实验目的与要求学会利用Mathematica软件对已知数据进行拟合处理,并针对拟合结果的图形显示分析拟合函数的优劣二、实验的基本知识熟知一些曲线及其方程三、实验的具体内容例1现有一组实测数据试用某种函数(如一元二次函数)对它进行曲线拟合解输入数据表L={{0,0.3},{0.2,0.45},{0.3,0.47},{0.52,0.50},{0.64,0.38},{0.7,0.33},{1.0,0.24}}由于假设用一元二次函数拟合,因而经验函数表为{1 , x , x^2}键入f=Fit[L,{1, x , x^2},x]为观察拟合情况,我们在一个图上画出数据点和拟合函数,键入ListPlot[L,PlotStyle→{RGBColor[0,1,0],PointSize[0.04]}]Plot[f,{x , -0.2 , 1.2}]Show[%,%%]或键入fp= ListPlot[L,PlotStyle→{RGBColor[0,1,0],PointSize[0.04]}]gp= Plot[f,{x , -0.2 , 1.2}]Show[fp,gp]运行可得拟合函数为0.33129+0.596026x-0.71812x2,并且从图形中可以观察拟合的结果,若散点图与曲线拟合不够理想,可以考虑用更高次的多项式或其它函数进行拟合。

例2 在某化学反应里,由实验得到生物的浓度与时间的关系如下,求浓度与时间关系的拟合曲线t(分) 1 2 3 4 5 6 7 8y 4 6.4 8.0 8.4 9.28 9.5 9.7 9.86t(分)9 10 11 12 13 14 15 16y 10.0 10.2 10.32 10.42 10.5 10.55 10.58 10.6解为确定拟合函数的类型,可先在直角坐标系中作出散点图,键入t1={{1,4},{2,6.4,{3,8.0}},{,{5,9.28},{6,9.5},{7,9.7},{8,9.86},{9,10.0},{10,10.2},{11,10.32},{12,10.42},{13,10.5},{14,10.55},{15,10.58},{16,10.6}}t2=ListPlot[t1,PlotStyle→{RGBColor[0,1,0],PointSize[0.04]}]若用四次多项式进行拟合,则键入t3=Fit[t1,Table[x^I,{I,0,4}],x]t4=Plot[t3,{x,0,17},PlotStyle→{RGBColor[1,0,0]}]Show[t2,t4]运行后,可得拟合函数的表达式以及散点图与拟合函数图,从图中可见二者的吻合情况是否满意。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验九数据的曲线拟合
一、实验目的与要求
学会利用Mathematica软件对已知数据进行拟合处理,并针对拟合结果的图形显示分析拟合函数的优劣
二、实验的基本知识
熟知一些曲线及其方程
三、实验的具体内容
例1现有一组实测数据
试用某种函数(如一元二次函数)对它进行曲线拟合
解输入数据表
L={{0,0.3},{0.2,0.45},{0.3,0.47},{0.52,0.50},{0.64,0.38},{0.7,0.33},{1.0,0.24}}
由于假设用一元二次函数拟合,因而经验函数表为{1 , x , x^2}
键入f=Fit[L,{1, x , x^2},x]
为观察拟合情况,我们在一个图上画出数据点和拟合函数,键入
ListPlot[L,PlotStyle→{RGBColor[0,1,0],PointSize[0.04]}]
Plot[f,{x , -0.2 , 1.2}]
Show[%,%%]
或键入fp= ListPlot[L,PlotStyle→{RGBColor[0,1,0],PointSize[0.04]}]
gp= Plot[f,{x , -0.2 , 1.2}]
Show[fp,gp]
运行可得拟合函数为0.33129+0.596026x-0.71812x2,并且从图形中可以观察拟合的结果,若散点图与曲线拟合不够理想,可以考虑用更高次的多项式或其它函数进行拟合。

例2 在某化学反应里,由实验得到生物的浓度与时间的关系如下,求浓度与时间关系的拟合曲线
t(分) 1 2 3 4 5 6 7 8
y 4 6.4 8.0 8.4 9.28 9.5 9.7 9.86
t(分)9 10 11 12 13 14 15 16
y 10.0 10.2 10.32 10.42 10.5 10.55 10.58 10.6
解为确定拟合函数的类型,可先在直角坐标系中作出散点图,键入
t1={{1,4},{2,6.4,{3,8.0}},{4.8.4},{5,9.28},{6,9.5},{7,9.7},{8,9.86},{9,10.0},{10,10.2},
{11,10.32},{12,10.42},{13,10.5},{14,10.55},{15,10.58},{16,10.6}}
t2=ListPlot[t1,PlotStyle→{RGBColor[0,1,0],PointSize[0.04]}]
若用四次多项式进行拟合,则键入
t3=Fit[t1,Table[x^I,{I,0,4}],x]
t4=Plot[t3,{x,0,17},PlotStyle→{RGBColor[1,0,0]}]
Show[t2,t4]
运行后,可得拟合函数的表达式以及散点图与拟合函数图,从图中可见二者的吻合情况是否满意。

此例中,亦可用对数函数进行拟合,为此键入
t5=Fit[t1,{log[x],1},x]
t6=Plot[t5,{x,0,17},PlotStyle {RGBColor[1,0,0]}] Show[t2,t6]
运行后可得拟合函数为 4.99913+2.22758 Log[x],从散点图与拟合函数图亦可看到二者的吻合情况。

用Mathematica 进行数据的曲线拟合,一般步骤如下: (1) 根据实验数据作出散点图
(2) 由散点图的情形选择拟合函数的类型
(3) 用Mathematica 求拟合函数,其命令格式为
Fit[数据表,经验函数表,变量名称]
(4) 将散点图与拟合函数图进行比较,看二者吻合情况是否满意,若不满意,可重
新选择拟合函数。

习题九
1、 已知一组实验数据如下,求它的拟合曲线的方程(可用二次多项式进行拟合)
2、 在某化学反应里,根据实验所得生物的浓度与时间的关系如下表,求浓度与时间的拟合
曲线方程(函数类型自定)
时间(t 分) 1 2 3 4 5 6 7 8 浓度(3
10-⨯y ) 4 6.4 8 8.8 9.22 9.5 9.7 9.86 时间(t 分) 9 10 11 12 13 14 15 16 浓度(310-⨯y ) 10 10.2 10.32 10.42 10.50 10.55 10.58 10.6。

相关文档
最新文档