资源描述:
《Mathematica数学实验[4]与软件使用基础》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数学实验陈德勤电话:13980227656E-MAIL:dq.chen-66@163.comMatlab及其应用1数学实验第四讲Mathematica编程与应用四川理工学院信计系编程、调试软件操作实验介绍综合应用实验介绍实验报告写法>>>>Matlab及其应用2Math的编程Math可以有两种常用的工作方式:一种是直接交互的指令行操作方式;另一种是批处理方式。为了更好的利用Math,需要掌握基本的程序设计技巧。Math可以把很多命令放在自己定义的函数里,也可以自己编写更加复杂的程序,下面着重介绍函数的定义和编写程序的几个
2、结构。Matlab及其应用31、自定义函数定义函数使用的符号是:=定义符号的是函数名和方括号里说明的自变量,右边是函数的定义表达式,说明函数值应当如何从函数自变量的值计算出来。用户应特别注意在定义式左边方括号里自变量名后面的_(下划线符号),在系统里这个符号叫做空白。自变量名后面的空白符号是必须的,它应该紧跟在自变量名的后面,中间不能有空格。如定义函数f(x,y),并求f(2,6)的值:fas[x_,y_]:=x^2+yfas[2,6]Matlab及其应用42、程序结构和控制顺序结构在Math中的顺序结构就是复合表达式,
3、也就是“;”操作符。在一个表达式的后面写一个分号“;”,然后接着写另外一个表达式,这就构成了一个复合表达式。如:x=3;x=x+2;x循环结构Math中有很多的函数或者说是命令支持循环结构,首先给出几个常用的函数,如下表:Matlab及其应用5用于循环的一些基本函数函数及其表达式函数功能说明Do[expr,{I,imax}]重复计算表达式,步长为1Do[expr,{I,imin,imax,di}]重复计算表达式,步长为diDo[expr,{n}]计算表达式共n次While[test,body]只要检测为真,就反复执行bo
4、dyFor[Start,test,incr,body]以Start为起始值,重复计算body和incr,直到检测为假Nest[expr,n]对于表达式运用f共n次FixedPoint[f,expr]以表达式为开始,重复运用f,一直到结果不再变化为止Matlab及其应用6FixedPoint[f,expr,SameTest->comp]如果把条件Comp运用于两次连续的结果真的话,就结束如:输出i^2,i从1到5Do[Print[i^2],{i,5}]Do[Plot[Sin[nx],{x,0,2*Pi}],{n,1,3,0
5、.25}]Matlab及其应用7Do[expr,{i,imin,imax,istep}]计算expr,i从imin到imax步长istep;imin=1,istep=1可省Do[Plot[Sin[n*x],{x,0,2*Pi}],{n,1,3,0.25}]Clear[t];t=x;Do[t=1/(1+t),{4}];t循环n次Do[expr,{n}],计算表达式共n次Clear[t];t=x;Do[t=1/(1+t),{4}];tClear[t];t=x;Do[t=(t-i)/(t-j),{i,4},{j,i-1}];t
6、多重循环Do[expr,{i...},{j...}...](前外后内)Matlab及其应用8Math中经常用到的条件和分支结构的函数如下:函数及其表达式函数功能说明Lhs:=Rhs/:text当text为True的时候,使用定义If[test,then,else,unknow]当text为True时,执行then,否则执行else,不清楚的执行unknowWhich[test1,value1,test2,value2,…]依次计算testi的值,返回第一个为Ture的testi对应的valueiSwitch[expr,f
7、orm1,value1,form2,…]先计算expr的值,然后依次与formi比较,返回第一个匹配的formi对应的valuei,如果没有与之匹配的就返回Null3、条件和分支结构Matlab及其应用9Switch[expr,form1,value1,form2,…,def]先计算expr的值,然后依次与formi比较,返回第一个匹配的formi对应的valuei,如果没有与之匹配的就返回def程序流程的控制在正常情况下,系统对于表达式的求值总是按照规定的顺序和方式进行的。无论对于一般的表达式,还是对于复合表达式,使用
8、前面的结构就够了。但是有的时候,人们要打断这种正常的顺序,以方便程序设计。为此,该系统提供了一些特殊的程序流程控制结构。后面给出了几个常用的流程控制函数。Matlab及其应用10用于流程控制的函数:函数及其表达式函数功能说明Break[]退出最近的一个循环Continue[]转入当前循环的下一步Return[expr