1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
% lagrange.m

function y=lagrange(x0,y0,x)
% inputs:
% x0:系数矩阵,维度为n*1
% y0:载荷矩阵,维度为n*1
% x:绘图点矩阵,维度为m*1
% outputs:
% y:未知量矩阵,维度m*1
n=length(x0);
m=length(x);
for i1=1:m
temp=x(i1);
sum=0;
for i2=1:n
l=1;
for i3=1:n
if i2~=i3
l=l*(temp-x0(i3))/(x0(i2)-x0(i3));
end
end
sum=sum+l*y0(i2);
end
y(i1)=sum;
end
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
% assignment1.m

clear;
x=-1:0.001:1;
y=1./(1+25.*x.*x);
x1=-1:2/4:1;
y1=1./(1+25.*x1.*x1);
x2=-1:2/10:1;
y2=1./(1+25.*x2.*x2);
plot(x,y,'b');
hold on;
y=lagrange(x1,y1,x);
plot(x,y,'r');
hold on;
y=lagrange(x2,y2,x);
plot(x,y,'g');