|
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自家人了),最后还是想垄断符号和数值计算两个领域。但显然远没有那么容易。呵呵,做大了就想垄断了。 |
|