MathGroup Archive 2006

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

Search the Archive

numerical derivatives at very high x-values: precision problem

  • To: mathgroup at smc.vnet.net
  • Subject: [mg64021] numerical derivatives at very high x-values: precision problem
  • From: "Nadir Kaplan" <nadir.kaplan at pclabs.gen.tr>
  • Date: Fri, 27 Jan 2006 05:13:45 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Hi,

When calculating partial numerical derivatives, namely the formula [f(x+h,
y)-f(x-h, y) ] / (2h), at very high x values, let's say x~10^12 , I should
choose h=(10^a)*|x| where x should be <-16 in order to get accurate results.
We know that the MachineEpsilon is approx. 2.2*10^(-16) , but I think I
should somehow use a number less than that for h, otherwise the answers are
not satisfiying. How will I do this in order to get high precision (or
accuracy) ? I added SetPrecision command everywhere, but it seems it didn't
work out well, besides it looks dumb (or not? I'm new at Mathematica ). 

 

Any help will be appreciated...

 

The values are f.e. (from a set of recursion relations) :

----------------------------------------------------------------------------

J[40]= 1.12970494019605678505771742460*10^12

mu[40]= 3.38911605114868836337349826143*10^12

V[40]= -8.47278910237611083984375000000*10^11

T1[40]= 5.64852470100879638671875000000*10^11

 

The function to be partial-differentiated:

------------------------------------------------------------

lngamma1[J_, mu_, V_, t1_]:=

  Module[{mu2, U1, U2, Umax}, mu2=SetPrecision[mu/(2*d), 30];

                  U1=SetPrecision[0, 30];

                  U2=SetPrecision[1.5*mu2+func1[0.5*mu2, t1], 30];

                  Umax= Max[U1, U2];

 
SetPrecision[Umax+Log[Exp[U1-Umax]+2*Exp[U2-Umax]*func2[0.5*mu2, t1]], 30]

                ]

 

The derivative formula:

----------------------------------------------------------------

derivt1[func_, J_, mu_, V_, t1_]:= 

  Module[  {h}, h=SetPrecision[10^-15*Abs[t1],30] ; 

    SetPrecision[(func[J, mu, V, t1+h]-func[J, mu, V, t1-h])/(2*h), 30]

    ]

 


  • Prev by Date: Problems with Show Command and Surfaces of Revolution
  • Next by Date: Problems with Show Command and Surfaces of Revolution
  • Previous by thread: Problems with Show Command and Surfaces of Revolution
  • Next by thread: Re: numerical derivatives at very high x-values: precision problem