0

正弦波の次の時間ステップでの値を予測しようとしています。そのために、この 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 (次の時間ステップで値を見つけようとしていることを意味します) を入力すると、波形が一致しません。このコードを使用して外挿を行う方法を教えてください。

4

0 に答える 0