论文关键词:MATLAB MuPAD notebook 符号运算
论文摘要:探讨了MATLAB2009a中符号运算引擎MuPAD的使用,并通过实例说明其用法,该工具箱在数学建模,科学研究,工程设计和教学等方面都有很好的实用价值。
1引言
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。
在MATLAB中运行符号运算时,需要记住不少的MATLAB符号命令及格式,如极限limit,积分int,合并简化符号式simple和simplify等等很多。
MuPAD是极佳数学及符号数值运算绘图软件,同时也作为MATLAB7.8的符号计算工具箱,是一具有人工智能的数学软件,非常适合科学家及工程师使用.更适合每一个人使用,使用的方法非常简单,只要输入方程式就立刻得到答案,可以求Symbolic 符号解,多项式之根,求非线性方程式之根,矩阵及向量Vector and Matrices运算,代数Algebra运算,求积分之值,求微分之值Calculus 微积分等。方程式可以处理复数计算. 完美的绘图功能,图型输入,输出,轻松无比的绘图,可以输入多个2-D函数或极坐标函数或3-D函数,选择所要绘图参数,就可以完成图形,以及图形的动画制作也是非常方便。数值计算结果并不是MATLAB命令行窗口所得的类似代码形式,而是规范数学格式。并拥有一内建的程序语言,帮助文档以及文本操作,文本操作在一定程度上可以取代word. 是一个超级的工程数学计算器.
而在用MuPAD工具箱时,可以直接在命令条(Command Bar)窗口选择,所看及所得,所想即可用,而且生成的代码,图形,结果可以直接复制黏贴到MATLAB *.m文档,word文档及与MATLAB无缝连接的word文档M-book中,可以当做代码生成器。而目前国内关于MuPAD的工具箱介绍得很少,上google搜索几乎没有,而万方数据库也不存在相关论文,本文纯属抛砖引玉。
2MuPAD使用详细
2.1在MATLAB下启用MuPAD
(1)通过MATLAB命令行输入:
mphandle = mupad打开空白notebook
mphandle = mupad(file)打开已经存在的notebook文档,可以形成与MATLAB主程序窗口的交互。
(2)通过MATLAB主程序左下角Start-Toolboxes-More-Symbolic Math-MuPAD启动。
图形界面如下图。
2.2Notebook-MuPAD略讲
2.2.1菜单栏选述
(1)该文档的后缀名为.mn,不可以通过更改后缀名使其转变为word文档,文档会损坏。可以选择file-export将文档输出为网页文件格式(*.html,*.htm),pdf文档格式(pdf),应用于Linux系统的notebook文档形式以及纯文本文件(.txt)和所有文件格式。其中只有网页文件格式和pdf可以保持完整数学表达式的形式。
(2)Insert选项可以选择插入内容,Caculation选项表示要计算的内容,一行一算,语法格式下文会讲述;Text Pargraph选项插入纯文本,不参与运算,相当于MATLAB代码中的注释。此外还可以加入图片,表格,文件链接等。
(3)Format选项可以实现文本编辑,类似于word中的文字功能。
(4)NoteBook选项功能运用于使用MuPAD内建的编程语言进行编程时的计算。
(5 )Help选项可以打开MuPAD独立帮助文档,文档内容包括MuPAD的介绍,使用语法以及其他目录内容,是学习MuPAD的很好途径。
2.2.2命令条选述
命令条窗口几乎包含所有可以使用的计算,General Math内是对于表达式的操作,如简化(simple),因式分解(factor),展开(expand)等,Plot command内是画图命令,MATLAB主程序中的图形命令在这儿都能找到。
2.2.3使用命令条
(1)选择Insert-Caculation,文本编辑栏出现输入单元显示中括号;
(2)选择Command Bar中相关命令,如,此时文本编辑窗口出现代码:
。
字体为红色,其中#及其后带部分即为可以替换的表达式,而关于命令的语法格式,例如diff,可以将鼠标位于diff上,右击第一项即可打开关于diff函数的help文档(help about ’diff‘)。
(3)将命令中的#及其以后内容转为为所要计算的表达式后,直接按回车键(enter),即可出现计算值,字体为蓝色。
(4)多行命令的计算:选择notebook-evualate all
(5)将符号表达式的值赋予一个值的语法格式 ,选择insert-caculation,在输入单元中输入f:=,后续步骤同(2)(3)(4)。
3应用实例:
1.求的导数
步骤如下:
(1) MATLAB命令行输入:mupad
(2) 从Command Bar中选择a:=b,出现#a:=#b
(3) 将#a改写为f,b改写为所求式子,该式子的写法同样,分式,根号等在Command Bar的a+b内,得到代 码:f:=(1+(x)^2)*(5-((1)/x^2));按下回车,结果为: (4) 在新的一行,选择Command Bar中的 ,出现diff(#f, #x),将#f替换为f,#x替换为x,则生成的代码为diff(f, x),按下回车,结果为
2. 分别对x,a求导
步骤如下:
(1) MATLAB命令行输入:mupad
(2) 从Command Bar中选择a:=b,出现#a:=#b
(3) 将#a改写为f,b改写为所求式子,该式子的写法同样,分式,根号等在Command Bar的a+b内,ln在内,得到代码:f:=1/(2*a)*(ln((sqrt(a^2+x^2))/(a+x))-a/(a+x)),按下回车得到结果:
(4) 求对于x的导数,在新的一行,选择Command Bar中的 ,出现diff(#f, #x),将#f替换为f,#x替换为x,则生成的代码为diff(f, x),按下回车,结果为
(5) 求对于a的导数,在新的一行,选择Command Bar中的,出现diff(#f, #x),将#f替换为f,#x替换为a,则生成的代码为diff(f, a),按下回车,结果为
3.求
(1)在MATLAB命令行输入MuPAD
(2)在Command Bar中选择 ——,出现代码numeric::int(#f, #x=#a..#b),替换相关#后内容,得到代码numeric::int(x/sqrt(5-4*x), x=-1..1),按下回车,得到结果。
4.以孙晓雅《MATLAB与Word 的无缝连接方法及其应用》中的概率论及数理统计的例题来应用MuPAD。
已知随机变量(x,y)的概率密度为:
( ),其中 都是常数,且 大于0。
下面使用MuPAD计算实现画图:
(1) MATLAB命令行输入:mupad
(2) 应用Commad Bar中的相关模块进行表达式输入,因为式子比较长,本文采用将小式子赋值给一个字母,然后将合并。等从中选择,应该注意的是常数e和 应该从 中选择,否则不具有常数意义。输入每个式子后会出现运算结果,可以在输入所有式子后并将参数赋值后选择Notebook选项的Evaluate All选项进行全局运算(参数定义数值顺序的前后关系不影响代码的正常执行)。
(3) 符号运算步骤及结果如下:
a:=(x-`μ1`)^2/`σ1`^2
b:=a-2*`ρ`*(x-`μ1`)*(y-`μ1`)/`σ1`/`σ2`
c:=b+(y-`μ2`)^2/`σ2`^2
d:=-1/(2*(1-`ρ`^2))*(c)
e:=1/(2*PI*`σ1`*`σ2`*(1 - `ρ`^2)^(1/2)) f:=e*exp(d) (4)将参数赋值: `σ1`:=2 `σ2`:=2 `μ1`:=0` μ2`:=0 `ρ`:=0.2 (4) 作图,选择Plot Command选项卡,选择合适图形,配合help和使用图形界面操作,可得如下图形: 选择Plot Command-Function Plots-3D Function修改相关参数。 plot(plot::Function3d(f, x=-6..6, y=-6..6)) 4小结 由上可见,使用MuPAD在编辑特殊符号以及进行符号运算的时候相比较MATLAB有无法比拟的优势,若再配合使用MATLAB与word无缝连接技术,熟练使用,可以真正意义上实现可以不掌握代码,就可以像使用草稿纸一样使用MATLAB强大的数学功能,使用该功能,使数学变得直观和有趣,适合大学高等数学的教学及用于数学建模。 参考文献: [1]MATLAB2009a help MuPAD文档 [2]MATLAB2009a MuPAD help 文档 [3]孙晓雅。MATLAB与Word 的无缝连接方法及其应用。电脑知识与技术(学术交流)2006 [4]曾建军等MATLAB 语言与数学建模[M]合肥:安徽大学出版社2005.10.P21-23.