samking630 发表于 2006-3-1 17:59

简单的加减运算mathematica竟不会算

简单的加减运算mathematica竟不会算简单的加减运算mathematica竟不会算 2*(5 + 2 √3) + 3 + 2 √3 mathematica竟不会算 mathematica不会拆括号

madio 发表于 2006-3-1 22:44

<p>它不把括号外面的系数2乘进去,而且一般的也不这样做,我估计程序设计者是有一些计算方面的考虑的!他们不会看不到这样的问题!</p>

iwaa 发表于 2008-4-6 11:20

<p>请在后面加: //Simplify</p><p>很笨的,不会自动化简</p>

views63 发表于 2008-4-18 14:39

不自动化简是出于为了保证正确.

zkyhhx 发表于 2008-5-7 01:35

的确如此

kofeffect 发表于 2008-5-7 13:25

madio说的有理<br/><br/>想要简化,加上//Simplify 确实OK!<br/>

fouvy 发表于 2009-5-9 02:32

2*(5 + 2 √3) + 3 + 2 √3 //N
这不就OK
不太清楚为什么要这样.
可能是因为√3不是有理数,所以没有求出数值解.

trvoldemort 发表于 2009-5-23 20:46

本帖最后由 trvoldemort 于 2009-5-23 21:00 编辑

Plus、Times有一个Attribute是NumericFunction,意思是当所有参数为Number时整个表达式自动Evaluate成Number,这才是“输入自动化简”的本质。

大家来看,平时我们输入:
1+2*(1+1)
=> Plus]]
=> Plus]
=> Plus
=> 5

注意到每一步化简都很顺利
但是:

1+2*(1+Sqrt)
=> Plus]]]

因为NumberQ] = False,而无论如何Plus]不能变成一个Number,自动化简停止。

这种化简是很机械化的, 必须从里向外,没有全局意识,当然了,简单的式子太多了,什么(1 - a) (1 + a)+a^2等等,如果都能自动化简,那还要Simplify干嘛用啊。毕竟涉及到符号运算,用机器语言描述不是那么简单。

peamy 发表于 2009-8-10 11:41

这不是mathematica的错,这样的结果难道不是一个准确的结果吗?

三差 发表于 2009-9-27 16:38

出于对程序计算的考虑
页: [1]
查看完整版本: 简单的加减运算mathematica竟不会算