MathGroup Archive 2009

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

Search the Archive

Re: Re: Refine, assumptions, domains

  • To: mathgroup at smc.vnet.net
  • Subject: [mg101756] Re: [mg101715] Re: Refine, assumptions, domains
  • From: Andrzej Kozlowski <akozlowski at gmail.com>
  • Date: Thu, 16 Jul 2009 08:18:47 -0400 (EDT)
  • References: <h3hjkc$1ue$1@smc.vnet.net> <h3hqqr$5l3$1@smc.vnet.net> <200907151108.HAA16411@smc.vnet.net> <454715FB-1A82-4D01-ACE9-E700A96FCADD@mimuw.edu.pl> <4A5E684A.7090608@cs.berkeley.edu> <55CFD0EA-0001-4BAA-9414-40A1BF9DCE17@gmail.com> <4A2F4A8A-C0F4-4E3B-81B9-70BAA470BD34@gmail.com> <4A5E76FB.3010903@cs.berkeley.edu>

Mathematica's approximate numbers are intervals actually. They are  
used exactly for root isolation so that Mathematica knows exactly how  
many roots there are in a given bounded subset of C. These are  
symbolically validated numerical methods so there is no need to feel  
uneasy. Also, an analytic function can't have an infinite number of  
roots in a compact interval. Actually, root isolation for  
transcendental equations is not particularly difficult. I have  
implemented in Mathematica one method which works for arbitrary C_2  
(not necessarily analytic)  maps from R^n to R^n (for arbitrary n)  
which do not have multiple roots in a rectangle in R^n. This method is  
implemented in my demonstrations:

http://demonstrations.wolfram.com/SolvingSystemsOfTranscendentalEquations/

and

http://demonstrations.wolfram.com/SemenovsAlgorithmForSolvingSystemsOfNonlinearEquations/

The method can't deal with multiple roots but neither can Mathematica,  
I think. Of course Mathematica's built-in algorithm is much faster.

On the question of moderated ("censored") vs. unmoderated lists/ 
newsgroups we have entirely opposite views. I never (on principle)  
participate in any unmoderated ones. Besides, all the serious  
mathematical groups I know of are moderated in a way similar to the  
MathGroup.

Andrzej Kozlowski


On 15 Jul 2009, at 17:40, Richard Fateman wrote:

> I was unaware of this feature  (I am using version 6.0; I will see  
> if my department has version 7).
>
> Representing intervals by numbers with uncertainty, rather than by  
> Intervals makes me queasy.
> The easy part of finding roots of transcendental equations is, I  
> think, computing them to high precision.
> I think the hard part is figuring out how many roots there are and  
> what to do if there are too many (maybe infinite number).
>
> RJF
>
>
>
> Andrzej Kozlowski wrote:
>> More precisely, Reduce was greatly expanded in version 5 and could  
>> give complete solutions to trigonometric equations. Version 7 can  
>> do much more and find roots in the complex plane of any analytic  
>> functions. For example:
>>
>> x == Root[{E^#1 - Sin[#1] & ,
>>         
>> -9.4248586537754136567567778432489211323797029251636558910832`20.\
>> 3008606\
>>     01073058}] || x == Root[{E^#1 - Sin[#1] & ,
>>         
>> -6.281314366210795486987123240583963390549132286186244538368`20.\
>> 29036662\
>>     9310228}] || x == Root[{E^#1 - Sin[#1] & ,
>>         
>> -3.1830630119333635919397448876301537357136339778662659227848`20.\
>> 2961913\
>>     3152797}]
>>
>> Note that these are exact solutions, the approximate numbers you  
>> see are only isolating approximations. The solutions themselves can  
>> now be computed to arbitrary precision:
>>
>> N[First[%], 100]
>> x ==  
>> -9.424858653775413656756771883285883444399179101807799929806950013147702 
>> \
>>
>>      
>> 28492314961406843365451610069656121800751803514807455672278388074 
>> `100.
>>
>> This will work also in the complex plane, try:
>>
>> Reduce[Exp[x] == Sin[x] && Abs[x] < 10, x]
>>
>>
>> Andrzej Kozlowski
>>
>> On 15 Jul 2009, at 16:58, Andrzej Kozlowski wrote:
>>
>>>
>>> On 15 Jul 2009, at 16:37, Richard Fateman wrote:
>>>
>>>> That works, too.
>>>>
>>>> Last time I tried using Reduce it worked only for polynomials, so  
>>>> I stopped using it.
>>>> Thanks.
>>>
>>> Yes, that was the case before version 5, I think.
>>>
>>> Andrzej Kozlowski
>>>
>>>
>>>
>>>
>>>> Andrzej Kozlowski wrote:
>>>>> ...
>>>>> It may be just me but I can't understand what you are trying to  
>>>>> do at all. If you just want:
>>>>>
>>>>>> a way of finding the solutions of any equation,
>>>>>> say Sin[x]==0 that lie in a particular range
>>>>>
>>>>> then what's wrong with:
>>>>>
>>>>> x /. {ToRules[Reduce[Sin[x] == 0 && 0 < x < 10, x]]}
>>>>>
>>>>> {Pi, 2*Pi, 3*Pi}
>>>>>
>>>> FindInstance also works..
>>>>
>>>> RJF
>>>>
>>>
>>
>



  • Prev by Date: Re: Determine if a parameter is a function
  • Next by Date: Re: Re: Refine, assumptions, domains
  • Previous by thread: Re: Re: Refine, assumptions, domains
  • Next by thread: Re: Re: Refine, assumptions, domains