8Mathematica编程与例题d

8Mathematica编程与例题d

ID:41037073

大小:113.50 KB

页数:13页

时间:2019-08-14

8Mathematica编程与例题d_第1页
8Mathematica编程与例题d_第2页
8Mathematica编程与例题d_第3页
8Mathematica编程与例题d_第4页
8Mathematica编程与例题d_第5页
资源描述:

《8Mathematica编程与例题d》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第八章Mathematica编程语句与例题8.1全局变量、局部变量、过程8.1.1全局变量我们知道,变量是在命令或程序执行中其值可以发生变化的,在任何计算机语言中程序中,变量作用是非常重要的。一个变量在没有被赋值之前,对应的变量名只是数学意义中的符号,一旦被赋值,对应的变量名就是被赋值的内容。利用变量可以方便地进行计算和保存中间的计算结果。例如:在Mathematica的Notebook中键入In[1]:=x*x–x+1Out[1]=1-x-x2(*这里x没有被赋值,故它只是一个符号,输入变为一个数学式子In[2]:=x=2+2(*变量x存放了计算结果4Out[2]=4I

2、n[3]:=x*x–x+1(*这里x已经有值4,计算机自动用4代替x参与计算Out[3]=13如果要想使变量还原为一个符号,使用清除变量命令即可。这种在Mathematica中键入的各种命令或在Mathematica的程序语句中,变量被赋值后,必须用Mathematica清除变量的命令才能使其还原为符号的变量,称为全局变量。上面例子中的变量x就是一个全局变量。察看某变量是否为全局变量,可以键入命令:?变量名如果显示结果出现Global`变量名…说明该变量是全局变量,否则,就不是全局变量。例如要知道变量w是否为全局变量,可以键入:?w键入执行命令后,显示结果Global`w

3、w=2说明w是全局变量,且有数值2。如果用户自己定义了函数,Mathematica会把自定义的函数名作为全局变量,此时,如果键入命令:?自定义函数名可以看到全局变量的说明和该自定义的函数的定义信息。8.1.2局部变量由于Mathematica中的变量名还可以用作代数中的数学符号,在Mathematica的命令或程序中出现的任何合法的变量名符号,如果该变量名所代表的变量没有被赋值,则它就作为数学算式中的符号参与数学的公式推导和运算;如果该变量被赋值了,则用该变量所赋的值参与对应的数学公式推导和运算。因此,当用户在做符号运算时使用的符号含有被赋了值的变量名,则就会出现察觉不到

4、的错误。为克服这种错误,可以在使用Mathematica的命令之前,先用Clear[变量1,变量2,…]将要使用的所有变量名做清除处理,就可以避免上述错误。不过,如果使用Mathematica提供的”Module”模块结构,可使Module模块内的一些变量在被赋值后,110既使不作变量清除的处理,也不影响在Module模块之外同名变量,即:变量的赋值效果只在Module模块内有效。不同于全局变量,称变量的赋值效果只在某一模块内有效的变量为局部变量。局部变量有利于程序的模块化结构和数据封装,而且离开Module模块后,自动释放这些变量在计算机内存的空间。一个好的程序员应该尽

5、量使用局部变量。Mathematica中Module模块的命令为:Module[{变量表},表达式]这里变量表中出现的每个变量都是局部变量,它们之间用逗号分隔,而且可以用赋值语句给其赋初值,这些变量只在该Module模块命令中的表达式有效,表达式可以是用分号隔开的表达式序列,且以最后一个表达式的值作为该Module模块命令的值。例如:在Mathematica键入In[4]:=u=5;In[5]:=s=Module[{u,v=1},u=1;v=u+v+3](*Module中的u,v是局部变量,且v赋值1,完成的计算是u=1和v=u+v+3,并将v的值赋给sOut[5]=5(

6、*显示Module模块命令的值。In[6]:=Print[u,"",v,"",s](*显示变量u,v,s的值Out[6]=5v5(*说明Module模块命令中的u,v与命令外的u,v不同在Mathematica中使用局部变量很简单,只要把涉及到的局部变量用大括弧{}括起来,放在Module模块命令的{变量表}位置,并把相应的语句写成语句序列放在Module模块命令的表达式位置即可。例如:Mathematica中有如下命令In[7]:=s=Sin[x];In[8]:=u=Cos[x];In[9]:=D[s*u,x]Out[9]=Cos2[x]-Sin2[x]命令中的变量s,

7、u的值将会影响随后的命令,如果写成In[10]:=Module[{s,u,x},s=Sin[x];u=Cos[x];D[s*u,x]]Out[10]=Cos2[x$1]-Sin2[x$1](*x$1表示是局部变量此时命令中的变量s,u就是局部变量,它们的值将不会影响随后的命令。8.1.3过程在Mathematica中,一个用分号隔开的表达式序列称为一个复合表达式,它也称为一个过程。由于Mathematica中的表达式是广义的表达式,除了数学中定义的表达式之外,数字、表、变量、函数、图形、命令、语句等都是Mathematica表

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。