Re: Re: Two questions (1) Sollve and (2) Precision
- To: mathgroup at smc.vnet.net
- Subject: [mg67081] Re: [mg67072] Re: Two questions (1) Sollve and (2) Precision
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Fri, 9 Jun 2006 01:06:49 -0400 (EDT)
- Reply-to: hanlonr at cox.net
- Sender: owner-wri-mathgroup at wolfram.com
He also needs to force exact methods by rationalizing the coefficients. eqns={64919121*x-159018721*y==8A1, 41869520.5*x-102558961*y==8A0}//Rationalize; soln=Solve[eqns,{x,y}]//Flatten {x -> -16*(159018721*A0 - 102558961*A1), y -> -8*(129838242*A0 - 83739041*A1)} soln/.{A0->0,A1->1/8} {x -> 205117922, y -> 83739041} Bob Hanlon ---- ben <benjamin.friedrich at gmail.com> wrote: > Hi Bharat, > > (1) > > Try == instead of = in your equations. > > (2) > > Numerical results are usually printed with only a few digits, > not with full accuracy. > > Bye > Ben > > Bharat Bhole schrieb: > > > 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}]* > > > > *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 ]* > > > > *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. > -- Bob Hanlon hanlonr at cox.net