%拉格朗日插值多項式 利用矩陣求解
x=1:0.2:3;%已知數據點x坐標向量:x
y=sin(x);%已知數據點x坐標向量:y
x1=1.1:0.2:3.1;%插值點的x坐標:x1
L=zeros(11,11);%另L矩陣為0
for i=1:11
A=ones(10,1);%另A矩陣為10行1列的矩陣
x2=x;
x2(i)=[];
x2';%10行一列
B=ones(1,11);%另B矩陣為1行11列的矩陣
A*x1;%10行11列
(x2')*B;%10行11列
A*x1-(x2')*B;%11行11列
ones(10,11);
x(i);%提取x的第i個元素
ones(10,11)*x(i);%10行11列的矩陣
prod(A*x1-(x2')*B);%基函數的分子
ones(10,11)*(x(i))-(x2')*B;%基函數的分母
C=prod(A*x1-(x2')*B)./prod(ones(10,11)*(x(i))-(x2')*B);%對x2進行轉置%C矩陣是一個1行11列的矩陣
L(i,:)=C; %將A的第一行元素全部變為10 %將得到的矩陣賦值基函數的1,2,3。。。。11行
end
L;%11行11列
y;%1行11列
y1=y*L
結果如下:
y1 =
1 至 7 列
0.8912 0.9636 0.9975 0.9917 0.9463 0.8632 0.7457
8 至 11 列
0.5985 0.4274 0.2392 0.0416
