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