       Re: Re: Re: Folding Deltas, and evaluation scheme of Mathematica

• To: mathgroup at smc.vnet.net
• Subject: [mg57007] Re: [mg56976] Re: [mg56906] Re: [mg56876] Folding Deltas, and evaluation scheme of Mathematica
• From: Daniel Lichtblau <danl at wolfram.com>
• Date: Thu, 12 May 2005 02:33:10 -0400 (EDT)
• References: <200505110925.FAA24123@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```zhengji.li at t3gt.com wrote:
> I can not agree with you.
>
> Integrate[1/x, {x, 1, Infinity}] is Infinity,
> and Integrate[1/x, {x, Infinity, 1}] = - Integrate[1/x, {x, 1,
Infinity}] =
> - Infinity.
> These are true.
>
> But before evaluate Integrate[1/x, {x, 1, Infinity}] - Integrate[1/x, {x,
> Infinity, 1}]
> = Infinity - Infinity, the following rules can be applied:
>
> (* this comes from the definition of definite integral*)
> Integrate[exp_, {x_, a_, b_}] := - Integrate[exp, {x, b, a}] /; a > b;
> Subtract[exp_, exp_] = 0;

These rules apply when values in question are finite. In other cases you
have what are generally referred to as "indeterminate forms". Often one
can obtain a desired value as a principal value integral, wherein the
singular part is cancelled by introducing a dependency into a pair of
limits.

> Sadly, Mathematica will not apply the second rule at first and it will do
> the definite integral at first.
>
> In my opinion, if Mathematica apply the rule "Subtract[exp_, exp_] = 0"
> before evaluate
> exp will free you from applying limit wrappers to improper integrals.
>
> More generally, for some functions, such as Subtract, Plus, Times, Power,
> before evaluate their parameters
> some rule should be applied if possible. for example:
>
> Plus[exp_, exp_] := 2 a; Times[0, exp_] := 0;
>
> This is just what "human beings" do when simplify expression. :)

Much of this is already done in Mathematica evaluation of Plus and
Times. An attempt is made to not do such things when an indeterminate
form is present, because in such cases these "simplifications" are plain
wrong.

There is a good deal of folklore and some published literature in the
computer algebra community on how these can be incorrect, along with
(often conflicting) opinions on how and when to avoid such simplifications.

>

>                       gauerkk at uregina.c

>                       a                        To:       Zhengji Li
<zhengji.li at gmail.com>
>                                                cc:

>                       05, 11, 2005             Subject: [mg57007] [mg56976]
Re: [mg56906] Re: [mg56876] Folding Deltas

>                       04:29 AM

>

>
> Recently reading the mathgroup postings, I saw you post below a
> generalization which seems to be false.
>
> Quoting Zhengji Li <zhengji.li at gmail.com>:
>
>
>>..............
>>But, Integrate[Anything, {t, a, b}] + Integrate[Anything, {t, b, a}]
>>=
>>0, so you will get the result.
>
>
> set Anything -> 1/x, a -> 1, b -> Infinity. My understanding is that
> Infinity-Infinity does not evaluate without a warning message, and
> instead does not vanish, as you indicate (compare to the other
> standard improper integral used for calculating the volume of the Horn
> of Gabriel, Anything -> 1/x^2, where this time, the differences are
> equal and finite (and also zero), although the intgrals are improper,
> as below - in the original question).
>
> Of course, instead choosing b -> k (a fixed finite real), others as
> above, and running Limit[Integrate[Anything, {t, a, b}] + Integrate
> [Anything, {t, b, a}], k -> Infinity] instead should return zero (for
> most evaluatable functions, excluding Cantor and DiracDelta functions
> which leap around on a semi-infinite box).

As posed (if I follow correctly) this may well be an indeterminate form.

There are lurking issues of language semantics that cannot and should
not be ignored. For a linear operator Op, we have on the one hand
Op[a+b] and on the other hand Op[a]+Op[b]. The standard Mathematica
semantics for the first says to add a and b before applying Op, and for
the second we allpy to each separately and then add the results. I would
guess this is the interpretation used by most programs. It is, to me,
the one that makes the most sense.

I will also mention that there is a certain amount of voodoo behind the
scenes. Some integrals are evaluated by splitting sums, but in cases
when singularities cancel this can be difficult to do correctly.

> I personally always try to apply a limit wrapper to any improper
> integral which I may have to evaluate in version 3, and first operate
> symbolically on my limit in question, followed by, only if necessary,
> the numerical evaluation. I wonder if they'd fixed in v 5 yet the
> capability of calculating limits from multiple directions. My guess is
> probably not, based on a reply to one of the archives messages, circa
> [...]

I'm not sure exactly what is the issue here. At points where a function
is not analytic, limits are dependent on path of approach. If one wants
limit values along rays from different directions one can certainly do
that in Mathematica.

Daniel Lichtblau
Wolfram Research

```

• Prev by Date: Re: Representation and Simulation of Dynamic Systems
• Next by Date: Re: Converting result to ASCII-art
• Previous by thread: Re: Re: Folding Deltas, and evaluation scheme of Mathematica
• Next by thread: Output to a file