wayne 发表于 2012-12-15 11:05:14

我们可以先实现这样的一种规则.
先检验 \sqrt(a+b \sqrt(c)) (其中a,b,c,x,y 均是整数), 是否可以表示成x+y \sqrt(c) ,如果可以,就做变换.

chyanog 发表于 2012-12-17 14:51:11

这几个Maple除了最后一个都能化简,mupad都能化简,
关于ComplexityFunction 的资料太少了
PS:
还有Mathematica9的Expand依旧很慢,下面这个都需要4分钟了,
Expand[(Sqrt + Sqrt + Sqrt + Sqrt + 1)^200]

chyanog 发表于 2013-1-25 18:15:35

这几个Maple除了最后一个都能化简,mupad都能化简,
关于ComplexityFunction 的资料太少了
PS:
还有Mathematica9的Expand依旧很慢,下面这个都需要4分钟了,
Expand[(Sqrt + Sqrt + Sqrt + Sqrt + 1) ...
chyanog 发表于 2012-12-17 14:51 http://bbs.emath.ac.cn/images/common/back.gif

关于Mathematica中带根式的表达式的展开计算很慢的问题(AAS不灵了),今天在stackexchange上得到一个不错的变通方法,expr = Sqrt + Sqrt + Sqrt + Sqrt + 1;
Nest &, 1, 200]这样和直接expand相比速度提升了千倍,和Maple的计算时间比较接近了。印象中mathematica中需要变通解决的例子都遇到好几个了(相应地,maple对这几个处理的就不错),这些变通的方法看起来并不难,却不是谁都能很快就想的到

chyanog 发表于 2013-2-25 19:47:26

几点新发现,还是不够通用,仅适用与部分情况
FullSimplify]]
FullSimplify]]
FullSimplify]]

FullSimplify],
ComplexityFunction -> (LeafCount &)]
(*Depth*)

rad = Sqrt];
roots = Roots, Extension -> Sqrt] == 0, x];
Roots, x]
(*靠猜测*)

Out:
Sqrt + x == Sqrt
x == Sqrt]
Sqrt + 2 x == Sqrt
1/2 (-Sqrt + Sqrt)
x == 1/2 (Sqrt + Sqrt)

chyanog 发表于 2013-2-25 19:50:02

还是觉得Mathematica根式表示比较另类,比如输入Sqrt/2,自动变成Sqrt,和同类软件都不一样

wayne 发表于 2013-2-27 09:34:36

15# chyanog
可能Mathematica的全局变量\$Post 是Simplify, 而表达式的Simplify由ComplexityFunction 的默认值决定, 即LeafCount决定的。
试一下输入Sin,如果返回时1的话,那么\$Post 是FullSimplify

chyanog 发表于 2013-2-27 16:52:22

16# wayne
不过Sqrt/2和Sqrt的LeafCout都是7啊

葡萄糖 发表于 2021-12-7 17:49:41

[原创] 多项双重根号化简
https://bbs.emath.ac.cn/thread-5051-1-1.html

wayne 发表于 2021-12-7 20:37:53

chyanog 发表于 2013-2-27 16:52
16# wayne
不过Sqrt/2和Sqrt的LeafCout都是7啊

是我的问题/ 现在有新的解释吗,:lol
页: 1 [2]
查看完整版本: 关于根式的化简