cam_1980 发表于 2009-3-15 19:46

simple函数的问题

我用simple函数对一个表达式进行化简的时候,里面有很多形式的化简结果,最后给出来的是其中最短的那个,但是我现在希望能返回其中combine的那个表达式,请问应该如何得到。其实本来可以对combine的那个式子直接复制即可,但现在那个combine的式子超长最后都显示Text exceeds maximum line length of 25,000 characters for Command Window display,所以还是无法复制。请高手指点。

cam_1980 发表于 2009-3-15 21:11

回复 楼主 cam_1980 的帖子

没人遇到过同样的问题吗?

friendchj 发表于 2009-3-17 17:29

没找到好方法,帮你顶一下
combine方式好像没有单独的命令实现它
另外,对于sin(x)^n和cos(x)^n,可以自己根据公式编程实现combine的形式

friendchj 发表于 2009-3-17 17:53

查看了simple的源代码,发现combine似乎和maple有关,help一下maple,试了试,居然可以提取combine了,O(∩_∩)O哈哈~。
如:
syms x
v = cos(x)^3;
maple traceoff
r=maple('combine',v);
~~~~~~~~~~~~~~~~~~~~~~~~
>> r

r =

1/4*cos(3*x)+3/4*cos(x)

cam_1980 发表于 2009-3-17 22:05

回复 地板 friendchj 的帖子

非常感谢,我去试试看。

cam_1980 发表于 2009-3-17 22:22

回复 地板 friendchj 的帖子

原本以为返回combine形式就可以把一个复杂的三角函数的表达式表示成
yy=a1cos(w)+a2cos(2*w)+a3cos(3*w)+...................
的形式,但是结果却不是这样的,比如如下的表达式:
y=(a1+a2*cos(w)+a3*cos(4*w)+a4*cos(98*w))^7
经过如下变换:
y=maple('combine',y);
返回值不是yy的形式,该怎么办呢?

friendchj 发表于 2009-3-18 08:55

对得到的y再用一次y=maple('combine',y);,得到的是类似yy的形式,但不是按照cos(n*x)中n的增加排列的。

cam_1980 发表于 2009-3-18 11:16

回复 7楼 friendchj 的帖子

好的,多谢friendchj的指点。
页: [1]
查看完整版本: simple函数的问题