0Mathematica网页教程word版(共41) (30).doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.3 循环结构??????????????????????? ? ?? Mathematica程序的执行包括对一系列Mathematica表达式的计算。对简单程序, 表达式的计算可用分号“;”来隔开,然后一个接一个地进行计算。然而,有时你需要对同一表达式进行多次计算,即循环计算。 1 Do循环结构 简单地Do循环结构形式:  Do[expr,{i,imax}] 循环计算expr,以步长1,i从1增加到imax Do[expr,{i,imin,imax,di}] 循环计算expr,以步长di,i从imin增加到imax Do[expr,{n}] 循环计算expr n次 计算Print[i+i^2],i从1增加到3:   Do中的定义的循环方式与函数Table和Sum中的定义一样。在函数Do中,你同样能建立重循环。下面给出的i从1到4进行循环,而对于每个i,j又从1到i-1进行循环: 我们还可把一个过程放入Do函数中: 2 While与For结构 在Mathematica程序中,Do是以结构方式进行循环的,然而有时你需要生成非结构循环。此时,运用函数While和For是合适的。下面是While和For函数的循环结构形式: While[test,body] 只要test为真,就重复计算body For[start,test,incr,body] 以为start起始值,重复计算body和incr,直到test为假为止 当条件满足时,While循环一直进行,因此为了防止死循环,在While 中应包括命令能改变test的值。 下面给出For循环的例子,i++表示i的值加1(在本节的最后我们给出在编程时常会 用到的赋值方法): 下面再给出一个较复杂的For循环的例子,一旦I^2<lO不成立,就中止循环: Mathematica中的函数While和For循环总是在执行循环体前对循环条件进行测试。 一旦测试结果为假。就中止While和For循环。因此,循环体的计算总是在测试结果为真 的情况下进行的 3.一些特殊的赋值方式 一些赋值方式在循环结构中有时能带来一些方便。 i++ 变量i加1 i-- 变量i减1 ++i, 变量i先加1 --i 变量i先减1 i+=di i加di i-=di i减di x*=C x乘以C x/=c x除以c {x,y}={y,x} 交换x和y值 4 重复运用函数 我们除了可用Do、While、For等进行循环计算外,我们还可以运用函数进行编程。运用函数编程结构你能得出非常有效的程序。例如Nest[f,x,n]允许你对某一表达式重复运用函数f 给出重复运用函数的方式。 Nest[expr,n] 对表达式expr重复调用函数fn次 FixedPoint[y,expr] 对表达式expr重复调用函数fn次,直到结果不变为止 NestWhile[f,expr,test] 对表达式expr重复调用函数f,直到产生的结果为假时为止 下面对函数f迭代5次: 对纯函数进行迭代,你能得出与运用Do函数得出的结果一样: Nest函数允许你重复运用某函数。然而,有时你想在结果不再发生变化的情况下就中止对函数的使用,此时立刻使用函数FixPoint[f,x]。FixPoint函数重复运用某一函数直到结果不再发生变化: 8.3.5 流程控制 ??? 函数程序结构的流程控制一般来说比较简单,但是在应用While或For等循环时就比较复杂了,这是因为他们的流程控制依赖于表达式的值。而且在这样的循环中,流程的控 制并不依赖于循环体中表达式的值。有时你在编制Mathematica程序时,在该程序中,流程控制受某一过程或循环体执行结果的影响。这时,我们可用Ma~ematka提供的流程控制函数来控制流程。这些函数的 工作过程与C语言中的很相似。 常用的流程控制函数。 Break[] 退出本层的循环 Continue[] 转入当前循环的下一步 Return[expr] 退出函数中的所有过程及循环,并返回expr值 Goto[name] 转入当前过程中的元素Label[name] Throw[value] 返回expr值 当t>20时,Break[]就引起循环体的中断:   当k<3时,Continue[]继续执行循环:   下面给出Return的一个例子:   Return[]允许你退出一函数,并返回一个值。Mathematica可以进行局部返回,这可 允许你退出一列迭代函数。非局部返回在错误处理时是很有用的。下面给出的例子中如函数变量小于0则输出error~ ln[6]不产生error,且出示Catch的结果无效: 当变量小于0时输出error ?????????????

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档