2017-05-23 3 views
0

Ich habe einen Prozess, der ode15s Tausende Male verwendet, um ein System von Differentialgleichungen mit verschiedenen Anfangsbedingungen zu lösen, aber gelegentlich erhalte ich einen Fehler wie den folgenden: "Warnung: Fehler bei t = 5.054301e + 02. Integrationstoleranzen können nicht eingehalten werden, ohne die Schrittweite unter den kleinsten zulässigen Wert (9.094947e-13) zum Zeitpunkt t zu reduzieren. Dies bringt das Programm leider zum Stillstand, und als solches habe ich mich gefragt, ob es einen Weg gibt, einen solchen Fehler zu finden und Ode15s zu zwingen, seine Verarbeitung zu beenden, damit das Programm weitermachen kann. Existiert eine solche Funktion?MATLAB: ode15s, Ende, wenn Integrationstoleranz nicht erfüllt

Antwort

1

Betrachten try/catch-Anweisung wie

try 
    % put your ode15s process here 
catch 
    % put statement to handle errors like 
    fprintf('Error found.') 
    % or skip the error one, then run the next process 
end 
+0

Hmmm zu verwenden, es scheint nicht die Warnungen in der Lage sein zu fangen, ist es etwas anderes sollte ich zusätzlich tun meine ode15s Code in das zu setzen Abschnitt ausprobieren? – InquisitiveInquirer

+0

Es wäre schön, wenn Sie einige wesentliche Zeilen des Prozesses zur Verfügung stellen könnten, um das Problem zu reproduzieren. –

Verwandte Themen