Borrar filtros
Borrar filtros

ode45関数で実行​したら、警告が出て途​中で終了してしまいま​す。

27 visualizaciones (últimos 30 días)
Takafumi
Takafumi el 11 de Mayo de 2017
Respondida: Takafumi el 11 de Mayo de 2017
以下のコマンドを実行したら、警告が出ます。 [t,y] = ode45(@odefcn,[0 10],[0; 10]);
警告: t=8.956588e+00 で失敗。 時間 t で最小の値で許可された (1.421085e-14) より小さいステップ サイズに減らさず に積分の許容誤差を満たすことができません。

Respuesta aceptada

Takafumi
Takafumi el 11 de Mayo de 2017
まずソルバーを替えます。 ode45 から、ode15s に変更する(スティッフ ソルバーに)
>> [t,y] = ode15s(@odefcn,[0 10],[0; 10])
それで、解決しない場合は、ソルバーの許容誤差の設定を緩めることで、実行する事ができます。
>> opts = odeset('AbsTol',1e-4,'RelTol',1e-4);
>> [t,y] = ode45(@odefcn,[0 10],[0; 10],opts);
ちなみに、ソルバー選択はマニュアルに記載があります。
https://jp.mathworks.com/help/matlab/math/choose-an-ode-solver.html

Más respuestas (0)

Categorías

Más información sobre 常微分方程式 en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!