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

*To*: mathgroup at smc.vnet.net*Subject*: [mg67059] Re: Two questions (1) Sollve and (2) Precision*From*: dh <dh at metrohm.ch>*Date*: Thu, 8 Jun 2006 04:53:50 -0400 (EDT)*References*: <e666j8$nbj$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

Hi Bharat, see below. Daniel Bharat Bhole wrote: > Would appreciate if someone can point out why Mathematica is not giving the > expected output in the followng two cases. > > (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}]* Note that Equal is written by == not = what is Set. > > *Out: {}* > > However, the solution exists and is given by x = 205117922, y = 83739041 > > 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 ]* Note that SetPrecision increases the precision of a given number by filling in missing digits by zero. Note also, that the arguments of SetPrecision are evaluated before handed down to the function.Therefore, the loss of precision happend before SetPrecision even sees the number. To prevent this, you must either apply SetPrecision directly to 123456789123.0 or specify the number with more digits: e.g. 123456789123.000000000000000 > > *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. > >