Mathematica编程语句与例题.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:27 大小:1.9MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Mathematica编程语句与例题.ppt

Mathematica编程语句与例题.ppt

预览

免费试读已结束,剩余 17 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Mathematica编程8.1全局变量、局部变量、过程8.1.1全局变量8.1.2局部变量Mathematica中Module模块的命令为:Module[{变量表},表达式]例如:在Mathematica键入In[4]:=u=5;In[5]:=s=Module[{u,v=1},u=1;v=u+v+3]Out[5]=5In[6]:=Print[u,"",v,"",s]Out[6]=5v5在Mathematica中使用局部变量很简单,只要把涉及到的局部变量用大括弧{}括起来,放在Module模块命令的{变量表}位置,并把相应的语句写成语句序列放在Module模块命令的表达式位置即可。例如:Mathematica中有如下命令In[7]:=s=Sin[x];In[8]:=u=Cos[x];In[9]:=D[s*u,x]Out[9]=Cos[x]2-Sin[x]2命令中的变量s,u的值将会影响随后的命令,如果写成In[10]:=Module[{s,u,x},s=Sin[x];u=Cos[x];D[s*u,x]]Out[10]=Cos[x$1]2-Sin[x$1]2此时命令中的变量s,u就是局部变量,它们的值将不会影响随后的命令。8.1.3过程8.2条件控制语句例1:用Mathematica命令描述下面问题:先产生一个函数[0,1]内的随机实数,再判断该随机数是否小于0.5,如果小于0.5,则将此随机数显示出来,否则显示”*”。解:Mathematica命令为:In[1]:=If[(p=Random[])<0.5,p,"*"]Out[1]=0.202857In[2]:=If[(p=Random[])<0.5,p,"*"]Out[2]=*例2:写出分段函数的Mathematica自定义函数形式,并画出其在[3,3]上的图形解:因此Mathematica命令为:In[3]:=f[x_]:=If[x<1,x+Sin[x],x*Cos[x]](或f[x_]:=If[x<1,x+Sin[x],x*Cos[x],"err"])In[4]:=Plot[f[x],{x,-3,3}]例3定义一个函数描述下面问题:任给一个函数y(x),如果y(x)的一阶导数为零,则输出符号###,否则,输出y(x)+5解:Mathematica命令为:In[5]:=f[y_,x_]:=Module[{s},s=D[y,x];If[s==0,Return["###"]];s=s+5;Return[s]]In[6]:=f[3,x]Out[6]=###In[7]:=f[Tan[x],x]Out[7]=5+Sec2[x]8.2.2Which语句例4:写出一元二次方程ax2+bx+c=0判别根的类型的Mathematica自定义函数形式。解:一元二次方程根的判别式为=b2-4ac,当>0时方程有两个实根;当<0时方程有两个复根;当=0时方程有两个实重根,它有多于两种的选择,故可以用Which语句表示。Mathematica命令为In[8]:=g[a_,b_,c_]:=(w=b^2-4*a*c;Which[w>0,"tworealroots",w<0,"twocomplexroots",w==0,"duplicateroots"])In[9]:=g[0,1,2]Out[9]=tworealrootsIn[10]:=g[3,1,2]Out[10]=twocomplexrootsIn[11]:=g[3,0,0]Out[11]=duplicateroots例5任给向量x=(x1,x2,…,xn),定义一个可以计算如下三中向量范数的函数:解:In[12]:=norm[x_,p_]:=Which[p==1,Sum[Abs[x][[i]],{i,1,Length[x]}],p==2,Sqrt[Sum[Abs[x][[i]]^2,{i,1,Length[x]}]],True,Max[Abs[x]]]In[13]:=x={3,-4,0};In[14]:=norm[x,1]Out[14]=7In[15]:=norm[x,2]Out[15]=5In[16]:=norm[x,0]Out[16]=4例6:写出分段函数的Mathematica自定义函数形式,并画出其在[0,60]上的图形。解:因此Mathematica命令为:In[17]:=f[x_]:=Which[x<=0,0,x<=10,10+2x,x<=20,30,x<=40,30-(x-20)/2,x<=50,20,x<=60,20-(x-50)*2,x>60,0]In[18]:=Plot[f[x],