0

ODE のシステムがあります。ODE は、特定のパラメーター範囲で実行するのに数秒かかります。ただし、別のパラメーター範囲では、MATLAB の実行に突然無限の時間がかかります(まあ、半日しかテストされていません)。

これは、双曲線関数を持つ複雑な乗算結合 ODE です。解析的に解くことは不可能で、数値的に解くことは修士論文になるので、計算解法を探しています。そのようなパラメーターを捨てて、次の (ランダムな) パラメーターのセットに移動する必要があります。

MATLAB でこのセマンティック エラーをデバッグまたはキャッチするにはどうすればよいですか? odesolver が気に入らない点がわかりません。これまでのところ、プロファイラーを使用して次の行に絞り込みましたodesolver

 f(:,2) = feval(odeFcn,t+hA(1),y+f*hB(:,1),odeArgs{:}); 
 f(:,3) = feval(odeFcn,t+hA(2),y+f*hB(:,2),odeArgs{:}); 
 f(:,4) = feval(odeFcn,t+hA(3),y+f*hB(:,3),odeArgs{:}); 
 f(:,5) = feval(odeFcn,t+hA(4),y+f*hB(:,4),odeArgs{:}); 
 f(:,6) = feval(odeFcn,t+hA(5),y+f*hB(:,5),odeArgs{:});\

(これは本質的にコアソルバーメソッドです)。明らかに、エラーの原因はパラメーターの選択ですが、profiler関数に費やされた顕著な時間は表示されません (ODE のスクリプト関数を無名関数として に渡しますode45)。

4

0 に答える 0