Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2009

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

Search the Archive

Re: Linear Interpolation problems

  • To: mathgroup at smc.vnet.net
  • Subject: [mg102371] Re: Linear Interpolation problems
  • From: Valeri Astanoff <astanoff at gmail.com>
  • Date: Fri, 7 Aug 2009 05:29:35 -0400 (EDT)
  • References: <h5ebm0$1u1$1@smc.vnet.net>

On 6 ao=FBt, 12:35, kosal lee <leeko... at yahoo.com> wrote:
> Hello,
>
> I am new to Mathematica. Please help me with linear interpolation problems. Thank you for your help.
>
> First, suppose I have two real values
>
> year               earnings
> x = 3              f(x) =   20
> x= 10             f(x) =   50
>
> I want to have the interpolated values of f(4), f(5), to f(9) which is between actual values of f(3) and f(10). How can I do that with Mathematica?
>
> Second, suppose I have an excel spreadsheet having those above values for multiples firms as of the following
>
> firm      f(3)       f(10)
> A          20        50
> B          30        55
> C          60        25
>
> I want to have the values of f(4) till f(9) as above and are stored in excel spreadsheet as of the following:
>
> firm      f(3)     f(4)    f(5)  ...    (f9)     f(10)
> A          20                         50
> B          30                         55
> C          60                         25  
>
> Best Regards,
> Kosal

Good day,

Here is an example of what you could do :

In[1]:= data = Import["data.xls"] // First

Out[1]= {{"Firm", 3., 4., 5., 6., 7., 8., 9.},
{"a", 20., 0., 0., 0., 0., 0., 25.},
{"b", 30., 0., 0., 0., 0., 0., 55.},
{"c", 60., 0., 0., 0., 0., 0., 25.}}

In[2]:= inter = Table[If[i == 1 || j == 1, data[[i, j]],
   InterpolatingPolynomial[{{data[[1, 2]], data[[i, 2]]},
     {data[[1, -1]], data[[i, -1]]}}, data[[1, j]]]],
  {i, 1, Length[data]}, {j, 1, Length[data[[1]]]}]

Out[2]= {{"Firm", 3., 4., 5., 6., 7., 8., 9.},
{"a", 20., 20.8333,   21.6667, 22.5, 23.3333, 24.1667, 25.},
{"b", 30., 34.1667, 38.3333,   42.5, 46.6667, 50.8333, 55.},
{"c", 60., 54.1667, 48.3333, 42.5,   36.6667, 30.8333, 25.}}

In[3]:= Export["inter.xls", inter]

Out[3]= "inter.xls"

--
V.Astanoff


  • Prev by Date: Re:Re: Re: publicon
  • Next by Date: Radio buttons panel
  • Previous by thread: Re: Linear Interpolation problems
  • Next by thread: Re: Linear Interpolation problems