




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Mathematica编程,8.1全局变量、局部变量、过程8.1.1全局变量,在Mathematica中键入的各种命令或在Mathematica的程序语句中,变量被赋值后,必须用Mathematica清除变量的命令才能使其还原为符号的变量,称为全局变量。察看某变量是否为全局变量,可以键入命令:?变量名Global变量名说明该变量是全局变量,否则,就不是全局变量。例如:要知道变量w是否为全局变量,可以键入:?w键入执行命令后,显示结果Globalww=2说明w是全局变量,且有数值2。,8.1.2局部变量,在Mathematica的命令或程序中出现的任何合法的变量名符号,如果该变量名所代表的变量没有被赋值,则它就作为数学算式中的符号参与数学的公式推导和运算;如果该变量被赋值了,则用该变量所赋的值参与对应的数学公式推导和运算。因此,当用户在做符号运算时使用的符号含有被赋了值的变量名,则就会出现察觉不到的错误。为克服这种错误,可以在使用Mathematica的命令之前,先用Clear变量1,变量2,将要使用的所有变量名做清除处理,就可以避免上述错误。不同于全局变量,称变量的赋值效果只在某一模块内有效的变量为局部变量。,Mathematica中Module模块的命令为:Module变量表,表达式例如:在Mathematica键入In4:=u=5;In5:=s=Moduleu,v=1,u=1;v=u+v+3Out5=5In6:=Printu,v,sOut6=5v5,在Mathematica中使用局部变量很简单,只要把涉及到的局部变量用大括弧括起来,放在Module模块命令的变量表位置,并把相应的语句写成语句序列放在Module模块命令的表达式位置即可。例如:Mathematica中有如下命令In7:=s=Sinx;In8:=u=Cosx;In9:=Ds*u,xOut9=Cosx2-Sinx2命令中的变量s,u的值将会影响随后的命令,如果写成In10:=Modules,u,x,s=Sinx;u=Cosx;Ds*u,xOut10=Cosx$12-Sinx$12此时命令中的变量s,u就是局部变量,它们的值将不会影响随后的命令。,8.1.3过程,在Mathematica中,一个用分号隔开的表达式序列称为一个复合表达式,它也称为一个过程。例如:In11:=s=1;u=s+3;u*uOut11=16Mathematica的过程可以作为Module模块命令的表达式,如果不关心局部变量问题,可以把一个过程用小括号括起来构成一个整体,这样可以用由小括号括起来的过程来定义一个函数。例如:已知有n个元素的一个数表x=a1,a2,an,定义一个计算此类数表最大数与最小数平方差的函数,用过程来定义可以写为:In12:=gx_:=(m=Maxx;n=Minx;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.1If语句If语句的一般形式为:If条件,语句或语句列具体形式有命令形式1:If条件,语句1功能:如果条件成立,则执行对应的语句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,如果小于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_:=Ifx5,Break,k,1,10126,8.3.2For语句,命令形式:Forstat,test,incr,body功能:以stat为初值,重复计算incr和body直到test为False终止。这里start为初始值,test为条件,incr为循环变量修正式,body为循环体,通常由incr项控制test的变化。注意:上述命令形式中的start可以是由复合表达式提供的多个初值,如果循环体生成Break语句,则退出For循环;如果循环体生成Continue语句,则由incr的增量进入For语句的下一次循环。,例11指出语句Fori=1;t=x,i*i10不满足条件i*i10,故退出For循环。,8.3.3While语句,命令形式:Whiletest,body功能:当test为True时,计算body,重复对test的判断和body的计算,直到test不为True时终止。这里test为条件,body为循环体,通常由body控制test值的变化。如果test不为True,则循环体不做任何工作注意:上述命令中,如果循环体生成Break语句,则退出While循环。,例12:用割线法求解方程x3-2x2+7x+4=0的根,要求误差|xk-xk-1|10(-12),x2=x1-(x1-x0)*fx1/(fx1-fx0);x0=x1;x1=x2In29:=Nx1,12Out29=-0.487120155928,例13编制20以内整数加法自测程序解:In30:=Fori=1,i=10,i+,t=RandomInteger,0,10;s=RandomInteger,0,10;Printt,+,s,=;y=Input;Whiley!=t+s,Printt,+,s,=,y,Wong!Tryagain!;Printt,+,s,=;y=Input;Printt,+,s,=,y,Good执行结果为3+0=3+0=3Good7+3=12Wrong!Ttryagain!7+3=10Good,例14韦达(VieTa)在1593年首次给出了如下关于圆周率的关系式(韦达公式)试用韦达公式来写出计算圆周率近似值的Mathematica命令。解:利用Mathematica自定义函数命令可以输入Mathematica命令为:In31:=vietak_:=Moduleu,u=NProductCosPi/2(n+1),n,1,k,20;Return2/uIn32:=Tablen,v=vietan,NPi,20-v,n,1,10,2Out32=1,3.0614674589207181738,0.0801251946690750646,3,3.1365484905459392638,0.0050441630438539746,5,3.1412772509327728681,0.0003154026570203704,7,3.1415729403670913841,0.0000197132227018543,9,3.141591421511199974,1.23207859326410-6,8.3.4迭代语句,在数值计算中,经常遇到要进行迭代计算,即利用迭代格式:xk+1=(xk),已知x0来求出迭代序列x1,x2,这里迭代函数为已知函数,Mathematica有如下几个命令处理这类问题:命令形式1:Nest迭代函数,迭代初值x0,迭代次数n功能:根据迭代初值x0及迭代格式:xk+1=(xk),计算出xn,并将此值作为Nest语句的值。命令形式2:NestList迭代函数,迭代初值x0,迭代次数n功能:根据迭代初值x0及迭代格式:xk+1=(xk),计算出x1,x2,xn,并将x0,x1,x2,xn作为NestList语句的值。,例15根据迭代格式:xk+1=lg(xk+2),及迭代初值x0=1.0,(1)计算出x7,(2)显示x0,x1,x2,x7(3)显示lg(x+2)的1,2次
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新疆农业大学《钢琴(即兴伴奏)(二)》2023-2024学年第二学期期末试卷
- 廊坊职业技术学院《即兴伴奏编配》2023-2024学年第二学期期末试卷
- 湖南信息学院《中国音乐鉴赏》2023-2024学年第二学期期末试卷
- 教科版高中物理必修第三册第一章静电场综合微评(一)课件
- 中国金融机具项目可行性研究报告
- 2025年即时配送企业配送路径优化与成本控制策略对比研究报告
- 2025年互联网医疗平台在线问诊医生激励机制与绩效考核报告
- 高中英语课时作业(译林版选修第四册)单元测试卷(二)
- 2025年互联网医疗平台在线问诊患者满意度分析报告
- 2025年互联网医疗平台在线问诊服务与患者医疗数据安全风险管理报告
- 烤烟房买卖合同范文
- 儿童钻石画课件
- 【MOOC】气候变化与人类社会-南京信息工程大学 中国大学慕课MOOC答案
- 河南省第二届职业技能大赛网络安全(世赛)项目技术工作文件
- 《点动控制线路》课件
- DB43T 244.4-2017 建设项目涉及国家安全的系统规范 第4部分:入侵报警系统规范
- 国开(浙江)2024年秋《中国建筑史(本)》形考作业1-4答案
- 2024年高等教育教育类自考-02113医学心理学考试近5年真题附答案
- 中国2030年能源电力行业发展规划研究及2060年展望
- DB34∕T 4499-2023 智慧手术室建设指南
- 初中生物【100道】经典易错题(含答案)
评论
0/150
提交评论