MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Uniform design

  • To: mathgroup at smc.vnet.net
  • Subject: [mg48220] Re: Uniform design
  • From: ab_def at prontomail.com (Maxim)
  • Date: Tue, 18 May 2004 04:16:51 -0400 (EDT)
  • References: <c7nnc7$dm5$1@smc.vnet.net> <200405130408.AAA26737@smc.vnet.net> <c81has$4rj$1@smc.vnet.net> <200405150756.DAA00995@smc.vnet.net> <c89pfb$t0e$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote in message news:<c89pfb$t0e$1 at smc.vnet.net>...
> On 15 May 2004, at 16:56, Maxim wrote:
> 
> > Andrzej Kozlowski <akoz at mimuw.edu.pl> wrote in message 
> > news:<c81has$4rj$1 at smc.vnet.net>...
> >> On 13 May 2004, at 13:08, Maxim wrote:
> >>
> >>> Also, it's strange that Solve accepts intervals (Mathematica Help for
> >>> Interval even gives such an example), but doesn't really support 
> >>> them:
> >>>
> >>> In[7]:=
> >>> Solve[1/(x - 1) == Interval[{-1, 1}]]
> >>>
> >>> Out[7]=
> >>> {{x -> Interval[{-Infinity, Infinity}]}}
> >>>
> >>> Not much point in treating this equation as Solve[1/(x-1)==a,x] and
> >>> giving incorrect result.
> >>>
> >> I agree that it seems strange that this sort of thing was included in
> >> the help browser, without additional comment,  for it can certainly
> >> only be misleading. Interval arithmetic is strange and does not obey
> >> usual rules:
> >>
> >> 1 + 1/Interval[{-1, 1}]
> >>
> >> Interval[{-Infinity, 0}, {2, Infinity}]
> >>
> >> and
> >>
> >> (1 + Interval[{-1, 1}])/Interval[{-1, 1}]
> >>
> >> Interval[{-Infinity, Infinity}]
> >>
> >> This means that the answer returned by Solve will depend on how you
> >> choose to write your equation:
> >>
> >>
> >> Solve[1/(x - 1) == Interval[{-1, 1}]]
> >>
> >>
> >> {{x -> Interval[{-Infinity, Infinity}]}}
> >>
> >>
> >> Solve[x - 1 == 1/Interval[{-1, 1}]]
> >>
> >> {{x -> Interval[{-Infinity, 0}, {2, Infinity}]}}
> >>
> >>
> >> (What is actually weird is that
> >>
> >>
> >> Solve[1/(x - 1) == Interval[{-1, 1}], x]
> >>
> >> {}
> >>
> >> while
> >>
> >>
> >> Solve[x - 1 == 1/Interval[{-1, 1}], x]
> >>
> >> {{x -> Interval[{-Infinity, 0}, {2, Infinity}]}})
> >>
> >>
> >> Whether the original answer should be considered wrong or only
> >> excessively "pessimistic" depends on the context. The usual context in
> >> which  interval arithmetic is used is for error estimation, where it 
> >> is
> >> most important that it should  not return an interval smaller than the
> >> correct one and at least in this case it does not.
> >>
> >>
> >>
> >> Andrzej Kozlowski
> >> Chiba, Japan
> >> http://www.mimuw.edu.pl/~akoz/
> >
> > The only problem with that kind of explanation is that it's made with 
> > hindsight.
> >
> > In[1]:=
> > Solve[1/(x - 1) == Interval[{-1, 0}]]
> >
> > Out[1]=
> > {{x -> -1}}
> >
> > What happened to "pessimistic interval" here?
> >
> > Maxim Rytin
> > m.r at prontomail.com
> >
> >
> 
> The obvious problem is not with my hindsight but with your knowledge of 
> mathematics and in particular of interval arithmetic. The answer 
> Mathematica should have given here is:
> 
> 
> Solve[1/(x - 1) == z, x] /. z -> Interval[{-1, 0}]
> 
> Out[8]=
> {{x -> Interval[{-Infinity, 0}]}}
> 
>   This is almost certainly just a bug.
> 
> Andrzej Kozlowski
> 
> 
> Andrzej Kozlowski
> Chiba, Japan
> http://www.mimuw.edu.pl/~akoz/

At first you claimed that Solve[f[x]==interval] did give something
useful: an interval containing the 'exact' solution (I'll call such
interval an extended solution). Now you say that we have to use
something different, namely Solve[f[x]==a,x]/.a->interval.

It's interesting to consider in which cases we do get an extended
solution (speaking informally, this will happen because if we have
something like a+1/a and a is an interval, then the two occurences of
a are treated as being independent, so some operations will perhaps
'unnecessarily' extend the range, but they will not narrow the range).

But to say that this way we always get an extended solution is
incorrect, simply because some operations cannot be automatically
extended to real intervals:

Solve[x^3 - x - 1 == Interval[{-1, 1}]]
Solve[x^3 - x - 1 == a, x] /. a -> Interval[{-1, 1}]

Neither of these attempts will give us an extended solution, because
we'll encounter complex functions of intervals.

Another interesting question is what should be considered the exact
solution. If we're assuming we have one independent variable x, then
we're solving inequality -1<x^3-x-1<1; if we're looking for
Interval[{a,b}] such that

Interval[{a,b}]^3-Interval[{a,b}]-1==Interval[{-1,1}],

then we need the real solution to {a^3-b-1==-1,b^3-a-1==1}.

Maxim Rytin
m.r at prontomail.com


  • Prev by Date: Re: Precision of output
  • Next by Date: Re: Re: FindRoot cannot find obvious solution
  • Previous by thread: Re: Re: Uniform design
  • Next by thread: Re: Uniform design