Re: Getting crude approximation to a function
- To: mathgroup at smc.vnet.net
- Subject: [mg58855] Re: Getting crude approximation to a function
- From: Peter Pein <petsie at dordos.net>
- Date: Thu, 21 Jul 2005 03:08:01 -0400 (EDT)
- References: <dbkkpu$s6a$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Mukhtar Bekkali schrieb: > Assume I have a function f[x], x is some variable, given below (my real > function is much more complex). I would like to obtain its crude > approximation. I used command Series, first order expansion. The > resulting function has coefficients that have high precision. I do not > need that since my expansion is very crude anyway. I need coefficients > that are rational number approximations to these coefficients. How do I > obtain this? It seems to me that command Chop takes care of > coefficients that are not product with variable x but cannot handle > coefficients that are not standalone. For instance, in this example > > \!\(\(\(Normal[ > Series[0.71 p\ > x + \(1\/3\) > x\^2 - 4, {x, 1, 1}]] // Expand\) // Chop\) // > Rationalize\) > > I would like to obtain output of the form (-13/10)+(29/10)x. > Mathematica gives me (-13/10)+2.8972x instead, where it keeps > 2.8971974507154195` in the memory. I need this because I use > InequalitySolve package and it refuses to function unless all numbers > are rational. > > Mukhtar Bekkali > Hi Mukhtar, I don't find the definition of p, so I have to guess: In[1]:= p = N[Expand[Pi*(1 + 34/(25*x))]]; In[2]:= appr = Expand[Normal[ Series[(p/Sqrt[2])*x + (1/3)*x^2 - 4, {x, 1, 1}]]] Out[2]= -1.3121729353856435 + 2.8881081357458496*x If you prefer the 10 in the denominator, try In[3]:= appr /. a_Real :> Round[10*a]/10 Out[3]= -(13/10) + (29*x)/10 If you just want /any/ approximation, then In[4]:= Rationalize[appr, 0.0125] Out[4]= -(13/10) + (26*x)/9 does the job too. -- Peter Pein Berlin http://people.freenet.de/Peter_Berlin/