Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2005
*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 2005

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

Search the Archive

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/


  • Prev by Date: Re: Re: Directed Graph from Adjacency Matrix
  • Next by Date: Gridlines in MultipleListPlot
  • Previous by thread: Re: Getting crude approximation to a function
  • Next by thread: Re: Getting crude approximation to a function