Re: How to express a Product (special case) in Mathematica?
- To: mathgroup at smc.vnet.net
- Subject: [mg59117] Re: How to express a Product (special case) in Mathematica?
- From: Peter Pein <petsie at dordos.net>
- Date: Fri, 29 Jul 2005 00:41:58 -0400 (EDT)
- References: <dc9vqf$cr8$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
vdavidster at gmail.com schrieb: > If you're familiar with the Lagrange interpolation polynomial, you'll > know that the coefficient term, phi, is defined as follows: > > n > phi_j (t) = TT (t - t_i) > i=0 ----------- > i!=j (t_j - t_i) > > Or in LaTeX notation: > > \phi_j(t) = \prod^{n}_{\stackrel{i=0}{i \neq j}} \frac{(t - t_i)}{(t_j > - t_i)} > > Or in graphical form: > http://mathworld.wolfram.com/LagrangeInterpolatingPolynomial.html > > How do I do that in Mathematica? > How do I specify a product that skips a value in its iterator, i? (i.e. > i != j) > > Thanks! > > David > Well, delete t_j, build the quotients out of the rest and multiply: In[1]:= xvalues = Range[-2, 2] Out[1]= {-2, -1, 0, 1, 2} In[2]:= phi[j_][t_, tk_] := Times@@((t - #)/(tk[[j]] - #)& /@ Delete[tk, j]) In[3]:=(phi[#1][x, xvalues] & ) /@ Range[Length[xvalues]] Out[3]= {(-(1/24))*(-1 - x)*(1 - x)*(2 - x)*x, (-(1/6))*(1 - x)*(2 - x)*x*(2 + x), (1/4)*(1 - x)*(2 - x)*(1 + x)*(2 + x), (1/6)*(2 - x)*x*(1 + x)*(2 + x), (1/24)*(-1 + x)*x*(1 + x)*(2 + x)} -- Peter Pein Berlin