MathGroup Archive 2006

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

Search the Archive

Re: Two questions (1) Sollve and (2) Precision

  • To: mathgroup at smc.vnet.net
  • Subject: [mg67058] Re: Two questions (1) Sollve and (2) Precision
  • From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
  • Date: Thu, 8 Jun 2006 04:53:43 -0400 (EDT)
  • Organization: The Open University, Milton Keynes, UK
  • References: <e666j8$nbj$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Bharat Bhole wrote:
> Would appreciate if someone can point out why Mathematica is not giving the
> expected output in the followng two cases.

Here is what I get with Mathematica

In[3]:=
$Version

Out[3]=
5.2 for Microsoft Windows (June 20, 2005)

> (1) I was trying to solve the follwing two linear equations using 'Solve'.
> 
> 
> *In: Solve[{64919121*x-159018721*y=8A1,41869520.5*x-102558961*y=8A0},{x,y}]*
> 
> *Out: {}*
> 
In[1]:=
Solve[{64919121*x - 159018721*y == 8*A1,
    4.18695205*^7*x - 102558961*y == 8*A0}, {x, y}]

Out[1]=
                   9                8
{{x -> -1.27215 10  A0 + 8.20472 10  A1,

                    8                8
    y -> -5.19353 10  A0 + 3.34956 10  A1}}


> However, the solution exists and is given by  x = 205117922, y = 83739041

It is meaningless to speak about "The" solution if you do not tell what 
values A0 and A1 have been assigned:

In[2]:=
Solve[{64919121*x - 159018721*y == 8*A1,
     4.18695205*^7*x - 102558961*y == 8*A0} /.
    {x -> 205117922, y -> 83739041}, {A0, A1}]

Out[2]=
{{A1 -> 0.125, A0 -> 0.}}

> Why is Mathematica unable to solve this simple linear equation? Am I doing
> something wrong?
> 
> 
> 
> (2) I suppose that the default precision for numerical calculations is
> MachinePrecision which is less than 16. If I increase the precision, should
> I not get more accurate results? The example below seems to contradict that.
> 
> (i) Exact Calculation
> 
> *In[1]: 123456789123 * 123456789123*
> 
> *Out[1]: 15241578780560891109129*
> 
> (ii) Numerical Calculation with Default Precision
> 
> *In[2]: 123456789123 * 123456789123.0*
> 
> *Out[2]: 1.52416 =D7 10^22*
> 
> (iii) Numerical Calcuation with a higher precision.
> 
> *In[3]:SetPrecision[ 123456789123 * 123456789123.0 , 50 ]*
> 
> *Out[3]: 1.5241578780560891838464000000000000000000000000000 x 10^22*
> 
> Now if I calculate Out[1]-Out[2], I get zero.
> 
> But if I calculate Out[1]-Out[3], I get  -729335.000000000000000000000000000
> .
> 
> This seems to suggest that calculation 2 is more accurate even though it has
> smaller precision. Where am I making a mistake?
> 
> Thanks very much for your help.
> 
> 

What version of Mathematica do you use? Work fine for me:

In[4]:=
123456789123*123456789123

Out[4]=
15241578780560891109129

In[5]:=
123456789123*123456789123.0

Out[5]=
           22
1.52416 10

In[6]:=
%%-%

Out[6]=
0.

In[7]:=
SetPrecision[123456789123*123456789123.0,50]

Out[7]=
1.5241578780560891838464000000000000000000000000000

     22
   10

In[8]:=
%%%-%

Out[8]=
0.

In[9]:=
$Version

Out[9]=
5.2 for Microsoft Windows (June 20, 2005)

Regards,
Jean-Marc


  • Prev by Date: Re: Two questions (1) Sollve and (2) Precision
  • Next by Date: rules for using functions as basis vectors
  • Previous by thread: Re: Two questions (1) Sollve and (2) Precision
  • Next by thread: Re: Two questions (1) Sollve and (2) Precision