数学研发论坛

 找回密码
 欢迎注册
查看: 2989|回复: 17

[讨论] 关于根式的化简

[复制链接]
发表于 2012-12-13 18:51:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?欢迎注册

x
下面几个式子是能够进一步简化的,不过用Mathematica好像不能直接化简,大家怎么看?

1/(1 + Sqrt[2] - Sqrt[3])
Sqrt[5 - 2*Sqrt[6]]
Sqrt[4 + Sqrt[15]]
((2 + 3^(1/2))*(5 - 2^(1 + 1/2)*3^(1/2))*(4 + 15^(1/2))* (10 + 2^(1 + 1/2)*3^(1/2) + 2^(1 + 1/2)*5^(1/2) + 2*15^(1/2)))^(1/2)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-12-13 20:11:56 | 显示全部楼层
下面几个式子是能够进一步简化的,不过用Mathematica好像不能直接化简,大家怎么看?

1/(1 + Sqrt[2] - Sqrt[3])
Sqrt[5 - 2*Sqrt[6]]
Sqrt[4 + Sqrt[15]]
((2 + 3^(1/2))*(5 - 2^(1 + 1/2)*3^(1/2))*(4 + 15^ ...
chyanog 发表于 2012-12-13 18:51

你在夏官营吗?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-12-13 20:12:56 | 显示全部楼层
软件永远是死的,软件只是工具,不能过度依靠软件,这是我个人的看法.
人是活的,只有人才有思想,软件只不过是程序而已,仅此而已
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-12-13 20:15:35 | 显示全部楼层
别对软件有太高的期待,软件毕竟是死的,你可以把运算式子拆分开来,然后用软件化简,一部分一部分地化简,
这样也许能达到你要求的目的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-12-13 22:41:33 | 显示全部楼层
1# chyanog
这里有一个问题需要先明确一下.
就是如何量化 一个数学表达式的复杂程度.
=============
在Mathematica里面,化简用的是Simplify,FullSimplify .
其对复杂度的默认的量化参数就是一个表达式的LeafCount.
With the default setting ComplexityFunction->Automatic, forms are ranked primarily according to their LeafCount, with corrections to treat integers with more digits as more complex.

=============
如果LeaFcount 不能达到理想的效果,那我们用户只能自己实现ComplexityFunction了.
比如,我们按照表达式输入的字符个数的多少来衡量表达式的复杂度,可以这样:
  1. f[e_] := StringLength[ToString[InputForm[e]]]
  2. Simplify[Abs[x], x < 0, ComplexityFunction -> f]
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-12-13 22:47:49 | 显示全部楼层
我猜想 chyanog 是想开平方, 比如第一个期望得到的"最简的" 答案是   1/4 (2 + Sqrt[2] + Sqrt[6])
这个问题比较开放.
我们可以一起讨论一下,如何设计函数,以表达式作为输入,
使得 f( 1/4 (2 + Sqrt[2] + Sqrt[6]) )   <  f (1/(1 + Sqrt[2] - Sqrt[3]) )
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-12-13 22:53:19 | 显示全部楼层
我试了一下Depth, 发现效果很不错
  1. FullSimplify[Sqrt[5 - 2 Sqrt[6]], ComplexityFunction -> Depth]
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-12-13 23:11:37 | 显示全部楼层
我试了一下Depth, 发现效果很不错FullSimplify[Sqrt[5 - 2 Sqrt[6]], ComplexityFunction -> Depth]
wayne 发表于 2012-12-13 22:53

这个比较特别点,用FunctionExpand也是可以的,但是另外那几个不行了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-12-14 11:15:39 | 显示全部楼层
8# chyanog
嗯,FullSimplify 其实用的就是 FunctionExpand.
只是 FullSimplify 具有更高的可定制性. 可以使用用户自定制的复杂规则来化简.
可有兴趣探讨一下#6的问题?
就是找到一个化简规则, 能展开多重根号, 适用于你前面给的所有情况?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-12-14 11:37:14 | 显示全部楼层
9# wayne
感觉不好找,Sqrt[4 + 2 Sqrt[3]]可以化简的,但是Sqrt[2 + Sqrt[3]]就不行
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2019-11-12 17:24 , Processed in 0.061704 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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