集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1184|回复: 0

如何在Matlab2010a中使用Maple内核的符号工具箱

[复制链接]
zhiweiqiang33 发表于 2012-9-6 09:19:15 | 显示全部楼层 |阅读模式
http://video.matlabsky.com/viewthread.php?tid=6061

MathWorks自从2008年10开始,在Matlab的新版本(Matlab2008a,即7.6之后)中使用MuPAD内核替换原来的Maple符号计算内核!

至于为什么?我们很容易想到MathWorks和MapleSoft两大公司的利益冲突。

开始的时候虽然Matlab的符号工具箱不再提供Maple内核(默认为MuPAD),但是还是支持Maple内核滴,只要你安装的对应版本的Maple或者Maple Toolbox for Matlab,就可以使用

>>symengine
命令切换你习惯的符号计算引擎!比如我就比较喜欢Maple内核,至于切换符号计算引擎的具体步骤,建议您参考下面的帖子:

如何设置选择Matlab的符号计算引擎,Maple或MuPAD


可是,令人沮丧的是,MATLAB2010a爆出冷门——Matlab2010a不再支持maple引擎。



以我个人的使用经历和体会来说,MuPAD和Maple内核压根不是一个级别的,很多东西在Maple上可以轻松的得到结果,可是在MuPAD内核却很让人失望!并且Maple计算速度明显优于MuPAD,下面举一个例子说明

在基于MuPAD内核的Matlab2010上运行

>> evalin(symengine,'diff(sin(x),x$n)')


ans =


diff(sin(x), x $ n)
在基于Maple内核的Matlab2008a上(最后一个使用Maple内核的Matlab)

>> maple('diff(sin(x),x$n)')


ans =


sin(x+1/2*n*pi)
是不是感慨万分呀,很为MathWorks感到惋惜!

还好天无绝人之路,其实对于热衷于Maple内核的MATLABer来说,我们还是再次重新看到了希望!

这就是安装Maple Toolbox for Matlab 13,不过由于Matlab没法直接支持Maple引擎,因此我们还需要做其他相关配置工作,具体参见下面的教程!

============================================

以下内容由论坛会员zwither原创,再次表示感谢。本人仅仅重新整理方便大家了解和学习,原帖参见http://www.matlabsky.com/redirec ... 84528&fromuid=1


第一步:下载Maple Toolbox for Matlab 13, (12好像不行,我没有尝试过)在verycd 上面有,有32位,64位的,windows linux SunOS的,各取所需,是带有license 文件的。放心使用。

第二步:安装Maple Toobox for Matlab 13,安装到你的 ~\MATLAB\2010a 下 ("~"指Matlab程序安装根目录,比如 "C:\Program Files")。

第三步:拷贝crack/MapleToolboxForMatlab.dat 到 ~\Maple 13\toolbox\MapleToolboxForMatlab\license ("~"指程序安装根目录,比如 "C:\Program Files")。

第四部:运行matlab2010a,cmd窗口执行`toolbox_version`。

>> toolbox_version


toolbox_version =


maple
上面说明maple工具箱安装成功,但是不经设置的话matlab仍然使用内置的MuPAD!

注意:即便是toolbox_version=maple,并不是说你现在的符号运算都是使用maple内核,其实现在的使用还是matlab默认的MuPad。不信的话可以试试执行:

>> maple('sin(x)')


??? Error using ==> maple at 54


The MAPLE command is not available.


>> syms x


>> int('atan(x)/x^(3/2)',0,1)


ans =


- pi/2 + 2^(1/2)*atan(2^(1/2)*(1/2 - i/2))*(i + 1) + 2^(1/2)*atan(2^(1/2)*(i/2 + 1/2))*(1 - i)
注意这个结果是和maple内核得到的是不一样的,一会我们设置好了大家可以看到!

现在我们开始设置最关键的一个东西,也是让maple内核工作的关键!

在命令提示行里面输入(当然也可以从File菜单的set Path...选项直接操作)

>>pathtool
这是会弹出一个对话框,下拉到最后,选中最后两个(他们是和maple相关的)。

然后点击左边的”Move to Top“(移动到顶端)按钮,然后选择保存。

exit退出matlab,现在设置好了。

重新启动matlab,现在可以用maple内核了,试试:

>> maple('sin(x)')


ans =


                                 sin(x)


>> syms x;


>> int('atan(x)/x^(3/2)',0,1)


ans =


                  1/2       1/2       1/2             1/2


      - 1/2 pi + 2 log(2 + 2 ) - 1/2 2 log(2) + 1/2 2 pi
注意:如果你安装有Maple 13,可以在Maple计算那个积分试试,保证和上面使用Maple Toolbox for Matlab 13计算具有相同的结果,而不是MuPAD上面得到的那个结果。大家可以用这个式子来试验是否安装好了。

Maple内核得到的结果明显精简许多,虽然两个的数值解是一样的。

如果你有matlab2008b,也就是matlab第一次引入mupad(5.1版)作为其符号引擎的那个版本,你会发现下面的结果:

>> int('arctan(x)/x^(3/2)',0,1)


Warning: Explicit integral could not be found.
找不到解。可见MuPad能力是没有Maple强的,虽然2010a的MuPad升级到了5.4能够求解这个问题了,但是结果还是不够精简。

而在matlab2010a中通过键入symengine来设置引擎已经被mathwork和谐掉了,想必是想抛开maple自己单做(mathwork收购了mupad,所以mupad现在是mathwork自家人了),最后还是想垄断符号和数值计算两个领域。但显然远没有那么容易。呵呵,做大了就想垄断了。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-4-23 15:00 , Processed in 0.058095 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表