Mathematica编程语句与例题.ppt
《Mathematica编程语句与例题.ppt》由会员分享,可在线阅读,更多相关《Mathematica编程语句与例题.ppt(27页珍藏版)》请在三一办公上搜索。
1、Mathematica编程,8.1全局变量、局部变量、过程 全局变量,在Mathematica中键入的各种命令或在Mathematica的程序语句中,变量被赋值后,必须用Mathematica清除变量的命令才能使其还原为符号的变量,称为全局变量。察看某变量是否为全局变量,可以键入命令:?变量名Global变量名 说明该变量是全局变量,否则,就不是全局变量。例如:要知道变量w是否为全局变量,可以键入:?w键入执行命令后,显示结果 Globalw w=2 说明w是全局变量,且有数值2。,8.1.2 局部变量,在Mathematica的命令或程序中出现的任何合法的变量名符号,如果该变量名所代表的变量
2、没有被赋值,则它就作为数学算式中的符号参与数学的公式推导和运算;如果该变量被赋值了,则用该变量所赋的值参与对应的数学公式推导和运算。因此,当用户在做符号运算时使用的符号含有被赋了值的变量名,则就会出现察觉不到的错误。为克服这种错误,可以在使用Mathematica的命令之前,先用Clear 变量1,变量2,将要使用的所有变量名做清除处理,就可以避免上述错误。不同于全局变量,称变量的赋值效果只在某一模块内有效的变量为局部变量。,Mathematica 中Module模块的命令为:Module变量表,表达式 例如:在Mathematica键入 In4:=u=5;In5:=s=Moduleu,v=1
3、,u=1;v=u+v+3 Out5=5 In6:=Printu,v,s Out6=5 v 5,在Mathematica中使用局部变量很简单,只要把涉及到的局部变量用大括弧 括起来,放在Module模块命令的变量表位置,并把相应的语句写成语句序列放在Module模块命令的表达式位置即可。例如:Mathematica中有如下命令 In7:=s=Sinx;In8:=u=Cosx;In9:=Ds*u,x Out9=Cosx2-Sinx2命令中的变量s,u的值将会影响随后的命令,如果写成 In10:=Modules,u,x,s=Sinx;u=Cosx;Ds*u,x Out10=Cosx$12-Sin x
4、$12 此时命令中的变量s,u就是局部变量,它们的值将不会影响随后的命令。,8.1.3 过程,在Mathematica中,一个用分号隔开的表达式序列称为一个复合表达式,它也称为一个过程。例如:In11:=s=1;u=s+3;u*u Out11=16 Mathematica的过程可以作为Module模块命令的表达式,如果不关心局部变量问题,可以把一个过程用小括号括起来构成一个整体,这样可以用由小括号括起来的过程来定义一个函数。例如:已知有n个元素的一个数表x=a1,a2,an,定义一个计算此类数表最大数与最小数平方差的函数,用过程来定义可以写为:In12:=gx_:=(m=Maxx;n=Minx
5、;m*m-n*n)如果不用小括号括起来,而是写为 In13:=gx_:=m=Maxx;n=Minx;m*m-n*n则In13定义的gx实际上是Maxx,不是数表最大数与最小数平方差函数,应该注意过程加小括号与不加括号的区别。本例题还可以用模块来定义函数:In14:=gx_:=Modulem,n,m=Maxx;n=Minx;m*m-n*n,8.2条件控制语句,Mathematica涉及条件选择的语句有好几种,这里介绍常用的三种语句:if 语句,Which 语句,Switch 语句。8.2.1 If 语句If 语句的一般形式为:If 条件,语句或语句列具体形式有 命令形式1:If 条件,语句1 功
6、能:如果条件成立,则执行对应的语句1,并将语句执行结果作为If语句的值,如果条件不成立,不执行语句1。命令形式2:If 条件,语句1,语句2 功能:根据条件的成立与否确定执行哪一个语句,具体执行为:条件成立时,执行语句1,否则,执行语句2,并将语句执行结果作为If语句的值。命令形式3:If 条件,语句1,语句2,语句3 功能:根据条件的成立与否确定执行哪一个语句,具体执行为:条件成立时,执行语句1,条件不成立时,执行语句2,否则,执行语句3,并将语句执行结果作为If语句的值。,例1:用Mathematica命令描述下面问题:先产生一个函数0,1内的随机实数,再判断该随机数是否小于0.5,如果小
7、于0.5,则将此随机数显示出来,否则显示”*”。解:Mathematica 命令为:In1:=If(p=Random)0.5,p,*Out1=0.202857In2:=If(p=Random)0.5,p,*Out2=*例2:写出分段函数的Mathematica自定义函数形式,并画出其在3,3上的图形解:因此Mathematica 命令为:In3:=fx_:=Ifx1,x+Sinx,x*Cosx(或fx_:=Ifx1,x+Sinx,x*Cosx,err)In4:=Plotfx,x,-3,3,例3 定义一个函数描述下面问题:任给一个函数y(x),如果y(x)的一阶导数为零,则输出符号#,否则,输出
8、y(x)+5解:Mathematica 命令为:In5:=fy_,x_:=Modules,s=Dy,x;Ifs=0,Return#;s=s+5;ReturnsIn6:=f3,xOut6=#In7:=fTanx,xOut7=5+Sec2x,8.2.2 Which 语句,命令形式1:Which条件1,语句1,条件2,语句2,.,条件n,语句n功能:由条件1开始按顺序依次判断相应的条件是否成立,若第一个成立的条件为条件k,则执行对应的语句k。命令形式2:Which条件1,语句1,条件2,语句2,.,条件n,语句n,True,字符串功能:由条件1开始按顺序依次判断相应的条件是否成立,若第一个成立的条件
9、为条件k,则执行对应的语句k,若直到条件n都不成立时,则返回符号字符串。,例4:写出一元二次方程ax2+bx+c=0判别根的类型的Mathematica自定义函数形式。解:一元二次方程根的判别式为=b2-4ac,当0时方程有两个实根;当0,two real roots,w0,two complex roots,w=0,duplicate roots)In9:=g0,1,2Out9=two real rootsIn10:=g3,1,2Out10=two complex rootsIn11:=g3,0,0Out11=duplicate roots,例5 任给向量x=(x1,x2,xn),定义一个可
10、以计算如下三中向量范数的函数:解:In12:=normx_,p_:=Whichp=1,SumAbsxi,i,1,Lengthx,p=2,SqrtSumAbsxi2,i,1,Lengthx,True,MaxAbsx In13:=x=3,-4,0;In14:=normx,1 Out14=7 In15:=normx,2 Out15=5 In16:=normx,0 Out16=4,例6:写出分段函数的Mathematica自定义函数形式,并画出其在0,60上的图形。解:因此Mathematica 命令为:In17:=fx_:=Whichx60,0 In18:=Plotfx,x,0,60,8.2.3 S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mathematica 编程 语句 例题
链接地址:https://www.31ppt.com/p-6511650.html