Mathematica课件math6.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Mathematica课件math6

* 第六章 使用 Mathematica 编程 Mathematica 为用户提供了大量的数学函数,这些函数使用起来非常方便。除此之外,用户还可以自己定义函数,编制自己的程序。用Mathematica编程的语法与C语言十分相似,因此编程容易,可读性强,调试简单,调用方便。只是在Mathematica中,程序控制语句都是以函数的形式出现的。实际上,编程就是定义自己的 函数,利用自己编写的程序和函数完成更多、更复杂的功能。 §6.1 程序流程及程序控制函数 1.顺序结构 顺序结构是一种最简单、最常用的结构.在Mathematica 中顺序结构就是复合表达式.在一个表达式后写一个分号“;”,然后再接着写另一个表达式,就构成了复合表达式. Matnematica按顺序计算各表达式,但只显示最后一个结果。如果最后一个表达式后面也写分号,系统会自动在后面添加一个Null表达式,输出结果就是Null表达式本身。由于Mathematica中的表达式是广义的表达式,除了数学中定义的表达式之外,数字,表,变量,函数,图形,命令,语句等都是Mathematica表达式,因此, Mathematica的一个复合表达式可以起到通常计算机编程语言中过程的作用. 例1. In[3]:={x=t-3;y=x+5;z=x+y} Out[3]={-1+2 t} 例2. In[4]:={x=t-3;y=x+5;z=x+y;} Out[4]={Null} 2.循环结构 循环结构是程序设计一种常用的结构,Mathematica中有许多函数可以实现程序的循环结构,它们各有特点,下表列出了其中最常用的几个: 得到函数FoldList[ ]的最后一个元素 Fold[f,x,{a,b,c,…}] 生成集合{x,f[x,a],f[f[x,a],b],…} FoldList[f,x,{a,b,c,…}] 同上,产生由每次迭代结果组成的集合 NestList[f,expr,n] 对表达式expr运用函数f共n次 Nest[f,expr,n] 重复计算表达式expr n次 Do[expr,{n}] 重复计算expr, i从k到n,步长为d Do[expr,{i,k,n,d}] 重复计算表达式expr,i从1到n,步长为1 Do[expr,{i,n}] 函数的功能 函数名称及使用格式i 只要test为True时就重复计算body While[test,body] 以start为起始重复计算body 和incr,直至test 为False止 For[start,test,incr,body] 下面分别举例说明它们的用法: 例1:重复操作函数Do[ ]的用法: In[1]:=Do[Print[i^2],{i,3}] 1 4 9 In[2]:=Do[Print[*],{3}] * * * In[3]:=Do[Print[i^2 x],{i,2,6,2}] 4 x 16 x 36 x 注意,这里如果不用Print[ ]函数,则屏幕上不会显示Do[ ]函数的运算结果. In[4]:=t=x;Do[t=1/(1+k t),{k,4}];t Out[4]= In[5]:=X=. 例2.用于函数迭代的函数Nest[ ]和Fold[ ] In[6]:=Nest[h,x,3] Out[6]=h[h[h[x]]] 而nestList[ ]则产生一个集合,包含了整个迭代过程: In[7]:=NestList[h,a,3] Out[7]={a,h[a],h[h[a]],h[h[h[a]]]} 下面给出的是求方程f[x]=0的根的Newton法的迭代函数 In[8]:=newton[x_]:=N[x-f[x]/f[x],20] In[9]:=f[x_]:=Exp[-x]-2x In[10]:=NestList[newton,0,6] Out[10]={0,0.3333333333333333333,0.3516893315554153418,0.3517337109929426302, 0.3517337112491958260,0.351733711249195826,0.351733711249195826} Nest[ ]函数用于一元函数的迭代,而Fold[ ]函数则用于二元函数的迭代: In[11]:=Fold[f,x,{a,b,c}] Out[11]=f[f[f[x,a],b],c] In[12]:=FoldList[f,x,{a,b,c}] Out[12]={x,f[x,a],f[f[x,a],b],f[f[f[x,a],b],c]} 注意,在Fold[ ]函数中,每次迭代时,上一次的运算结果只赋给二元函数f的第一个变量,并依次把集合{a,b,c,…}中的元素赋给第二个变量.下面再举一例,它

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档