MATLAB関数を使用して次の関数を補間しようとしていますspline
.
等距離点xi = i./n
、i = 0,1,...,n
、およびn = 2^j
に対してj = 4,5,...,14
。
計算ごとに、ポイントでの最大誤差を記録し、プロットを使用してx = 0:0.001:1
これらの誤差をプロットします。n
loglog
以下はコードです、
index=1
for j = 4:1:14;
n = 2^j;
i = 0:1:n;
xi = i./n;
yi = ((exp(3*xi))*sin(200.*(xi.^2))) ./(1+20.*(xi.^2));
x = 0:.001:1;
ye = ((exp(3*x))*sin(200*x.^2)) ./(1+20*x.^2);
yp = spline(x,xi,yi);
err = ye - yp;
merr(index) = max(err);
index = index+1;
end
n1 = 10:10:170;
loglog(n1, merr,'.')
xlabel('n');
ylabel('errors');
title('Cubic Splines');
しかし、コードを実行すると、次のエラーが発生しました。
使用中のエラー * 内部マトリックスの次元は一致する必要があります。
(9 行目) のエラー yi = ((exp(3*xi)) sin(200. (xi.^2))) ./(1+20.*(xi.^2));
MatLab の学習を始めたばかりですが、誰か助けてもらえますか?