単純なifループを使用して、odeスクリプト内のパラメーター値を変更しています。これは私が書いた同じ問題を示すスクリプトの例です。したがって、最初に機能するバージョンは次のとおりです。
function aah = al(t,x)
if (t>10000 && t<10300)
ab = [0; 150];
else
ab = [150; 0];
end
aah = [ab];
これは、を使用して実行できます
t = [0:1:10400];
x0 = [0,0];
[t,x] = ode23tb(@al, t,x0);
と視覚化
plot(t,x(:,1))
plot(t,x(:,2))
わかりました、それは良いバージョンです。今、あなたがするのがtをに変更することだけなら
t = [0:1:12000];
全部が爆破します。グラフを平均化するのはMATLABだと思うかもしれませんが、それは
x(10300,2)
コードが変更されていないため、どちらの場合も答えは同じであるはずです。しかし、この2番目のバージョンは0を出力しますが、これは間違っています。
一体何が起こっているのですか?誰かアイデアがありますか?
助けてくれてありがとう