|
|
last edited 6 years ago by test1 |
1 2 3 4 | ||
Editor: test1
Time: 2018/01/02 15:00:12 GMT+0 |
||
Note: |
added:
More generally, most powerful simplifications are done by 'normalize', but currently
'normalize' performs only minimal transformations on roots. Also, variant of
'normalize' is run on the input to the integrator, but not on the output.
For best result we should normalize output (but that is tricky, because we
want to preserve structure of the input in the output).
Suppose we compute
(1) -> 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) FriCAS 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 FriCAS 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) |
More generally, most powerful simplifications are done by normalize
, but currently
normalize
performs only minimal transformations on roots. Also, variant of
normalize
is run on the input to the integrator, but not on the output.
For best result we should normalize output (but that is tricky, because we
want to preserve structure of the input in the output).