? 其他控制
Return[expr] 从函数返回,返回值为expr Return[ ] 返回值Null Break[ ] 结束最近的一重循环
Continue[ ] 停止本次循环,进行下一次循环 Goto[tag] 无条件转向Label[Tag]处 Label[tag] 设置一个断点
Check[expr,failexpr] 计算expr,如果有出错信息产生,则返回failexpr的值 Check[expr,failexpr,s1::t1,s2::t2,...]当特定信息产生时则返回failexpr CheckAbort[expr,failexpr]当产生abort信息时放回failexpr Interrupt[ ] 中断运行 Abort[ ] 中断运行
TimeConstrained[expr,t] 计算expr,当耗时超过t秒时终止
MemoryConstrained[expr,b]计算expr,当耗用内存超过b字节时终止运算 交互式控制
Print[expr1,expr2,...] 顺次输出expri的值 examp: Print[ \
Input[ ] 产生一个输入对话框,返回所输入任意表达式 Input[\同上,prompt为对话框的提示 Pause[n] 运行暂停n秒
————————————————————————————————————— 十六、函数编程
(*函数编程是Mathematica中很有特色也是最灵活的一部分,它充分体现了 *)
(*Mathematica的“一切都是表达式”的特点,如果你想使你的Mathematica程 *) (*序快于高级语言,建议你把本部分搞通*) 纯函数
Function[body]或body& 一个纯函数,建立了一组对应法则,作用到后面的表达式上 Function[x, body] 单自变量纯函数
Function[{x1,x2,...},body]多自变量纯函数 #,#n 纯函数的第一、第n个自变量 ## 纯函数的所有自变量的序列
examp: ^& [2,3] 返回第一个参数的第二个参数次方 映射
Map[f,expr]或f/@expr 将f分别作用到expr第一层的每一个元上得到的列表 Map[f,expr,level] 将f分别作用到expr第level层的每一个元上 Apply[f,expr]或f@@expr 将expr的“头”换为f Apply[f,expr,level] 将expr第level层的“头”换为f
MapAll[f,expr]或f//@expr把f作用到expr的每一层的每一个元上 MapAt[f,expr,n] 把f作用到expr的第n个元上
MapAt[f,expr,{i,j,...}] 把f作用到expr[[{i,j,...}]]元上 MapIndexed[f,expr] 类似MapAll,但都附加其映射元素的位置列表 Scan[f, expr] 按顺序分别将f作用于expr的每一个元 Scan[f,expr,levelspec] 同上,仅作用第level层的元素 复合映射
Nest[f,expr,n] 返回n重复合函数f[f[...f[expr]...]]
NestList[f,expr,n] 返回0重到n重复合函数的列表{expr,f[expr],f[f[expr]]..} FixedPoint[f, expr] 将f复合作用于expr直到结果不再改变,即找到其不定点 FixedPoint[f, expr, n] 最多复合n次,如果不收敛则停止 FixedPointList[f, expr] 返回各次复合的结果列表 FoldList[f,x,{a,b,..}] 返回{x,f[x,a],f[f[x,a],b],..} Fold[f, x, list] 返回FoldList[f,x,{a,b,..}]的最后一个元
ComposeList[{f1,f2,..},x]返回{x,f1[x],f2[f1[x]],..}的复合函数列表 Distribute[f[x1,x2,..]] f对加法的分配率 Distribute[expr, g] 对g的分配率 Identity[expr] expr的全等变换
Composition[f1,f2,..] 组成复合纯函数f1[f2[..fn[ ]..] Operate[p,f[x,y]] 返回p[f][x, y] Through[p[f1,f2][x]] 返回p[f1[x],f2[x]]
Compile[{x1,x2,..},expr]编译一个函数,编译后运行速度可以大大加快 Compile[{{x1,t1},{x2,t2}..},expr] 同上,可以制定函数参数类型
————————————————————————————————————— 十七、替换规则
lhs->rhs 建立了一个规则,把lhs换为rhs,并求rhs的值 lhs:>rhs 同上,只是不立即求rhs的值,知道使用该规则时才求值 Replace[expr,rules] 把一组规则应用到expr上,只作用一次
expr /. rules 同上
expr //.rules 将规则rules不断作用到expr上,直到无法作用为止
Dispatch[{lhs1->rhs1,lhs2->rhs2,...}]综合各个规则,产生一组优化的规则组
>************************************************************************<
Mathematica的常见问题
>************************************************************************<
=================================== 1).Mathematica 可以定义变量为实数么?
1. 在Simplify/FullSimplify可以使用\\[Element],如 Simplify[Re[a+b*I],a\\[Element]Reals]
2. 可以使用ComplexExpand[]来展开表达式,默认:符号均为实数: Unprotect[Abs];
Abs[x_] := Sqrt[Re[x]^2 + Im[x]^2]; ComplexExpand[Abs[a + b*I], a] 3. 使用/:,对符号关联相应的转换规则 x /: Im[x] = 0; x /: Re[x] = x; y /: Im[y] = 0;
y /: Re[y] = y; Re[x+y*I]
=================================== 2).Mathematica中如何中断运算?
Alt+. 直接终止当前执行的运算 Alt+, 询问是否终止或者继续
如果不能终止,用菜单Kernel\\Quit Kernal\\Local来退出当前运算
=================================== 3).请高手推荐Mathematica参考书
我迄今为止看到的最好的一本就是Mathematica自己带的帮助里面的The Mathematica Book,内容全面,循序渐近,非常容易学习使用。其他所见到的一些中文书籍基本上都是直接翻译帮助的内容,没有什么 新意。
=================================== 4).请问在Mathematica中如何画极坐标图?
<< Graphics`Graphics` PolarPlot[] PolarListPlot[]
===================================
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Mathematica常用函数(5)在线全文阅读。
相关推荐: