%拉格朗日插值多項式 利用矩陣求解 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