私はmatlabで実行するかどうかはわかりませんが、imは点、関数、lagrange aproximationをプロットする単純なラグランジュ多項式を実行しようとしていますので、私は以下を行いました不一致の引数lagrange多項式(オクターブ)
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にベクトルを使用している場合にのみ表示され、(3ラグランジュ、x0、y0)、関数は正しく動作し、問題はありません。問題は、xに大きなベクトルを使うときです。
S私の質問は、それは大きなベクトルxで動作するように関数を変更する方法があるか、関数に大きなベクトルを直接使用せずに関数をプロットできる方法があるかどうかです。
エラーが発生する行を教えてください。私は、エラーメッセージがあなたに伝えるべきだと信じています。私の推測はそれが 'p * ='行で起こることです。不一致の議論が2つのものが同じサイズで問題を抱えるためには、行列乗算でなければならず、これはm×n×pである必要があります。 –
ああ、はい、申し訳ありませんが、エラーは 'p * ='行にありました – Zigisfredo