1. 程式人生 > >matlab實現拉格朗日函數,拉格朗日插值多項式

matlab實現拉格朗日函數,拉格朗日插值多項式

tla zeros 插值 class light 全部 matlab實現 true 利用

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

  

matlab實現拉格朗日函數,拉格朗日插值多項式