user1433927
user1433927

Reputation: 171

Basic MATLAB - how to "create" a variant

I need to implement Lagrange iterpolation in MATLAB.

I (think I've) understood how it works. I don't get how to implement the x.

lets say I want to calculate for these point: (0,1) (1,1) (2,4)

So I need to do these:

l_0(x) = (x-1)(x-2)/(0-1)(0-2)
l_1(x) = (x-0)(x-2)/(1-0)(1-2)
l_2(x) = (x-0)(x-1)/(2-0)(2-1)

and so on...

So I want to do a MATLAB function that will receive the (x,y) points, and retrieves the coefficients of the resulting Polynomial.

In this case: ( 3/2, 3/2, 1 )

I DON'T WANT A CODE FOR AN ANSWER - just how to implement the above x variant.

Thanks

Upvotes: 0

Views: 74

Answers (2)

Dr_Sam
Dr_Sam

Reputation: 1878

I'm not sure if this is what you need, but I think that what you are looking for is MATLAB anonymous functions

In your case, you would write

l_0 = @(x) (x-1)(x-2)/(0-1)(0-2)
l_1 = @(x) (x-0)(x-2)/(1-0)(1-2)
l_2 = @(x) (x-0)(x-1)/(2-0)(2-1)

Then you can use your Lagrange polynomials like regular functions:

val = y0 * l_0(x0) + y1 * l_1(x1) + y2 * l_2(x2)

Is that what you were looking for?

Upvotes: 1

Hugh Nolan
Hugh Nolan

Reputation: 2519

Well if you don't want code, then x is simply any value within the range of the input values of your x points. In your case, any value between 0 and 2.

Upvotes: 0

Related Questions