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