Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2006
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

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: [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.

> 

> 



  • Prev by Date: RE: Plot Sequencies of Complex Functions
  • Next by Date: Re: Two questions (1) Sollve and (2) Precision
  • Previous by thread: RE: Two questions (1) Sollve and (2) Precision
  • Next by thread: Re: Two questions (1) Sollve and (2) Precision