正弦波の次の時間ステップでの値を予測しようとしています。そのために、この Web ページで見つけた 3 次スプライン外挿法を使用しています。
http://mathworld.wolfram.com/CubicSpline.html
以下は、私が使用したMatlabコードです。
clear all;close all
V0_mag=230*sqrt(2/3);
t1=0;dt=50e-6;
h=dt;
H=[4 1 0;1 4 1;0 4 1];
invH=inv(H);
Y = zeros(3,1);
w0=2*pi*60;a=0;b=0;c=0;d=0;
t=1;
for m=1:0.2/dt
t11(m)=t1;
y(m,1)=V0_mag*(1-exp(-20*t11(m)))*sin(w0*t11(m));
%Cubic splines method for n=3
if m>5
Y(3,1)=3*(y(m-2)-y(m-3));
end
if m>4
Y(3,1)=3*(y(m-1)-y(m-2));
end
if m>3
Y(3,1)=3*(y(m)-y(m-1));
end
D=(invH*Y);
ax(m)=a;
if m>1
a=y(m-1);b=D(2);
c=3*(y(m)-y(m-1))-(2*D(2)+D(3));
d=2*(-y(m)+y(m-1))+D(2)+D(3);
end
prey1(m,1)=d*(t)^3+c*(t)^2+b*(t)+a;
t1=t1+dt;
end
figure(1)
plot(t11,prey1)
hold on
plot(t11,y,'r')
legend
このコードは0<t<1
(補間) に対して機能します。ただし、外挿の場合、t > 1 にする必要があります。そして、t=2 (次の時間ステップで値を見つけようとしていることを意味します) を入力すると、波形が一致しません。このコードを使用して外挿を行う方法を教えてください。