Asked by buxZED
on 16 Mar 2011

can anyone explain me how to use this program

http://www.mathworks.com/matlabcentral/fileexchange/899-lagrange-polynomial-interpolation

function y=lagrange(x,pointx,pointy) % %LAGRANGE approx a point-defined function using the Lagrange polynomial interpolation % % LAGRANGE(X,POINTX,POINTY) approx the function definited by the points: % P1=(POINTX(1),POINTY(1)), P2=(POINTX(2),POINTY(2)), ..., PN(POINTX(N),POINTY(N)) % and calculate it in each elements of X % % If POINTX and POINTY have different number of elements the function will return the NaN value % % function wrote by: Calzino % 7-oct-2001 % n=size(pointx,2); L=ones(n,size(x,2)); if (size(pointx,2)~=size(pointy,2)) fprintf(1,'\nERROR!\nPOINTX and POINTY must have the same number of elements\n'); y=NaN; else for i=1:n for j=1:n if (i~=j) L(i,:)=L(i,:).*(x-pointx(j))/(pointx(i)-pointx(j)); end end end y=0; for i=1:n y=y+pointy(i)*L(i,:); end end

*No products are associated with this question.*

Answer by Matt Tearle
on 16 Mar 2011

Accepted answer

`pointx` and `pointy` are two vectors of data values, `x` is a vector of points where you want to interpolate. For example:

x = 0:10; y = x.^2; xx = linspace(0,10); yy = lagrange(xx,x,y); plot(x,y,'o',xx,yy,'.')

As an aside, with no offense intended to Calzino, there are other options available for interpolation. Firstly, of course, `interp1` is a standard MATLAB function, with options for linear, cubic spline, and PCHIP interpolation. Cleve Moler (aka The Guy Who Wrote MATLAB) also has a Lagrange interpolation function available for download.

Matt Tearle
on 17 Mar 2011

Answer by Matt Fig
on 16 Mar 2011

This is really a question for the author of the program. I believe it is also bad etiquette to post somebody's code like that without permission.

Did you try to contact the author?

Matt Tearle
on 16 Mar 2011

It's from File Exchange, so I don't seem any great harm in posting it.

Matt Tearle
on 16 Mar 2011

Opportunities for recent engineering grads.

## 0 Comments