楼主的MATLAB版本应该是2008b之后的吧?
从2008b开始,MTALAB的符号运算核心由Maple改到了MuPad,根据大多数人的看法,Maple远远强于MuPad,所以,如果符号运算用的比较多,最好还是用2008a之前的版本.
就楼主的这个问题而言,我在6.5、2007b和2013a上分别做了测试,前两个的结果没问题:
>> syms x
>> g2 =((2*x + 1)^3/x^3)^(1/3)
g2 =
((2*x+1)^3/x^3)^(1/3)
>> g3=simple(g2)
g3 =
(2*x+1)/x
>> g4=simple(g3)
g4 =
2+1/x上面之所以调用两次simple,是因为simple函数尝试多种代数化简方法并且从中得到最精简的那个表达式,但是有些情况下,真正最精简的式子常常是要通过两种变换才能得到的.例如,上面的两个simple,第一个是通过radsimp方法,第二个是通过collect、expand等其他方法.
但在2013a(Mupad内核)上就存在问题:
>> syms x
>> g2 =((2*x + 1)^3/x^3)^(1/3)
g2 =
((2*x + 1)^3/x^3)^(1/3)
>> g3=simple(g2)
g3 =
((2*x + 1)^3/x^3)^(1/3)
谢谢您。能否详细对比下maple和mupad的区别?另外,既然maple要强于mupad,高级版本为何舍弃maple二用mupad?matlab的高级版本相对于旧版本,在哪些方面有革命性的创新呢?