- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[1.4.1Mathematica程序设计简介
1.4.1 Mathematica程序设计简介
(王积社)
1.4.1.1 Mathematica程序设计功能
1.4.1.1.1 模块
模块,相当于C语言的子程序.即是把能够实现一定的功能的一系列表达式语句“集成”在一块,称之为一个模块,从而使Mathematica程序能更有效地工作,也使程序结构更加清晰.
另外,使用模块,也可更好地控制变量的属性.一般情况下,Mathematica假设所有变量都为全局变量.实际上这样做可能会使程序不具有通用性,也可能在调用程序时陷入混乱状态.于是就需要局部变量的功能,这需要用模块来控制.
Mathematica的模块工作很简单,在模块中可定义它的局部变量,局部变量有唯一的名字,互不冲突,可有效地保护模块内外的每个变量的作用范围.
常用模块函数有:Module与Block,其格式见下表:
Module[{x,y,...},body] 具有局部变量x,y…的模块 Module[{x=x0,y=y0,…},body] 具有初始值的局部变量的模块 Block[{x,y,... },body] 运用局部值x,y, …计算body Block[{x=x0,y=y0,…},body] 给x,y,..赋初始值 Body为执行体,包含合法的Mathematica语句,多个语句之间用“;”间隔,最后一个值为此模块的值.
分析下面的例子,注意区分Module与Block的功能.
输入: t=10;
Module[{t},t=8;Print[t]]
Print[t]
结果如右图:
可见模块中的t为局部变量,它独立于全局变量t(尽管模块内部有语句“t=8”且其Print[t]输出8,但是模块外的Print[t]仍输出10).
再看Block例子,输入:
y=x^2+1
Block[{x=1},Print[y]]
计算结果如右图:
可见在模块Block中用局部变量x的值计算了全局变量y的值,于是如果希望把模块中局部变量作为全局变量使用时,可以用Block[]函数.然而在Module中却不能,见右图结果:
总之,Module[vars,body]在执行时要检查模块体body,把其中出现变量vats都看作是局部的;而Block[vats,body]并不查看模块体body的形式,而在整个计算Body的过程中,只管使用vars的局部值.
强调:在程序设计时,应该使程序中的各个部分尽可能地独立,以使程序易读、易改、易维护,主要方法是设置具有一定作用域的变量,这就需要模块的功能.
1.4.1.1.2 逻辑运算
与: expr1 expr2 … exprn
计算expri,直到其中有一个为假为止.
或:|| exprl || expr2 || … || exprn
计算expri,直到其中有一个为真为止
1.4.1.1.3 一些特殊的赋值方式
i++ 变量i加1 i-- 变量i减1 ++i, 变量i先加1 --i 变量i先减1 i+=di i加d i-=di i减d x*=C x乘以c x/=c x除以c {x,y}={y,x} 交换x和y值 1.4.1.1.4条件结构
常用的条件结构函数有:
If[逻辑式,表达式1,表达式2,表达式3] 若逻辑式为真,则计算表达式1,
否则计算表达式2.
若逻辑表达式非真非假,就计算表达式3 If[逻辑式,表达式1,表达式2] 若逻辑式为真,则计算表达式1,
否则计算表达式2 If[逻辑表达式,表达式] 若逻辑式为真,则计算表达式,
否则此句值为空,相当于跳过此句. which[条件1,表达式1,…
条件n,表达式n] 顺次计算条件,计算对应的第一个为真的条件的表达式的值,若条件都为假,则整个结构的值为空 which[条件1,表达式1,…
条件n,表达式n,Ture,表达式] 顺次计算条件,计算对应的第一个为真的条件的表达式的值.若条件都为假,则计算最后的表达式 1.4.1.1.5 符号条件
在Mathemahca中,有一种可能的情况就是所给出的条件结果既不是真也不为假,请看右例:
下面给出处理符号条件的函数.因x=x,故Mathematica给出结果为真:
1.4.1.1.6 循环结构
1) Do循环.
Do[表达式 ,{i,max}] 循环计算表达式,步长为1,i从1增加到max Do[表达式 ,{i,min,max,d}] 循环计算表达式,步长为d,i从min增加到max Do[表达式 ,{ n }] 循环计算表达式n次 Do[表达式, {i...}, {j...}...]?? 多重循环(前面的外重循环) 只要条件为真,就重
文档评论(0)