1

私はオクターブで作業しており、それがmatlabで実行されるかどうかわからないので、点、関数、およびラグランジュ近似をプロットする単純なラグランジュ多項式を実行しようとしているので、次のことを行いました.

clear all
clc

function [y] = lagrange(x, x0, y0)

   n = size(x0,1);
   y = 0;

    for i=1:n
        p = 1;
        for j=1:n

            if j == i   % avoiding division by 0
                continue;
            endif;

            p *= (x-x0(j)) / (x0(i)-x0(j));

        endfor;

        y += y0(i) * p;
    endfor;
endfunction;

x=[0:0.1:5];

x0=[2;2.75;4];
y0=[1/2;1/2.75;1/4];

y=lagrange(x,x0,y0);

次の問題があります。「演算子 *: 不適合な引数 (op1 は 1x41、op2 は 1x41)」は、x でベクトルを使用する場合にのみ表示されます。特定の点、関数は正しく機能し、問題はありません。問題は、x に大きなベクトルを使用する場合です。

だから私の質問は、より大きなベクトルxで機能するように関数を変更できる方法はありますか、または関数で直接大きなベクトルを使用せずに関数をプロットできる方法はありますか?

4

1 に答える 1