Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Solution 158193

Submitted on 6 Nov 2012 by Jean-Marie SAINTHILLIER

Correct

151Size
Leading solution size is 47.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test
Code Input and Output
1
Pass
 
%% Check linear interpolation
X = [4800; 5100];
Y = [7.5247; 7.2851]*1e-1;
x = 5000;
y = Lagrange_Interp(X,Y,x)
y_correct = 0.73650;
assert(abs(y-y_correct)<1e-4)
y =
    0.7365
2
Pass
 
%% Check Lagrange polynomial coefficients
X = [4800; 5100];
Y = [7.5247; 7.2851];
x = 5000;
y_correct = 7.3650;
L_correct = [1, 2]/3;
[y,L] = Lagrange_Interp(X,Y,x)
assert(abs(y-y_correct)<1e-4)
assert(norm(L-L_correct)<1e-3)
y =
    7.3650
L =
    0.3333    0.6667
3
Pass
 
%% Check quadratic interpolation
X = [300, 400, 500];
Y = [0.616, 0.525, 0.457];
x = 350;
[y,L] = Lagrange_Interp(X,Y,x)
y_correct = 0.567625;
L_correct = [3, 6, -1]/8;
assert(abs(y-y_correct)<1e-4)
assert(norm(L-L_correct)<1e-3)
y =
    0.5676
L =
    0.3750    0.7500   -0.1250
4
Pass
 
%% Check quadratic interpolation for log
X = [1, 4 6];
Y = log(X);
x = 2;
[y,L] = Lagrange_Interp(X,Y,x)
y_correct = 0.5658;
L_correct = [8/15, 2/3, -1/5];
assert(abs(y-y_correct)<1e-4)
assert(norm(L-L_correct)<1e-3)
y =
    0.5658
L =
    0.5333    0.6667   -0.2000