| 1 | ||
|
Editor: 127.0.0.1
Time: 2007/11/15 20:31:17 GMT-8 |
||
| Note: transferred from axiom-developer | ||
changed: - Simplification of Expressions Suppose we compute \begin{axiom} integrate(exp(-x**2/2)/sqrt(2*%pi),x=%minusInfinity..%plusInfinity) \end{axiom} *And now I wonder why common factors are not cancelled and why not the result "1" is produced.* In general (unlike some other computer math systems) Axiom automatically performs only a very small number of basic simplifications. This is not one of them, so we need to provide some help. In particular we need to tell Axiom how to expand square roots. (Since $\sqrt{\ }$ is a multi-valued function this rule is true only in a restricted sense for a particular choice of branches. Consider $a=-1, b=-1$.) \begin{axiom} expandSqrt := rule sqrt(a*b)==sqrt(a)*sqrt(b) \end{axiom} Next, notice that the output of the integration operation has a complicated type structure. This would interfere with the simplification, so we first simplify the type before we apply the rule. \begin{axiom} (%% 1)::Expression Integer expandSqrt % \end{axiom}
Suppose we compute
integrate(exp(-x**2/2)/sqrt(2*%pi),x=%minusInfinity..%plusInfinity)
| (1) |
And now I wonder why common factors are not cancelled and why not the result "1" is produced.
In general (unlike some other computer math systems) Axiom automatically
performs only a very small number of basic simplifications. This is not
one of them, so we need to provide some help. In particular we need to
tell Axiom how to expand square roots. (Since
is a multi-valued
function this rule is true only in a restricted sense for a particular
choice of branches. Consider
.)
expandSqrt := rule sqrt(a*b)==sqrt(a)*sqrt(b)
| (2) |
Next, notice that the output of the integration operation has a complicated type structure. This would interfere with the simplification, so we first simplify the type before we apply the rule.
(%% 1)::Expression Integer
| (3) |
expandSqrt %
| (4) |