E = odeEvent(eventFcn)
E = odeEvent(nom, valeur)
odeEvent stocke une fonction d'evenement et sa politique pour le flux objet ode.
| Objet | Role | Utilise par |
|---|---|---|
| odeEvent | Stocke une definition reutilisable pour le workflow objet ode. | La propriete correspondante de ode et solve. |
| Validation | Verifie les noms et formes supportes au moment de la construction. | Les tests et erreurs restent explicites avant integration. |
EventFcn peut retourner seulement les valeurs d'evenement. Dans ce cas Direction controle le sens de croisement et Response controle si le solveur continue ou s'arrete. Les fonctions d'evenement historiques qui retournent valeur, drapeaux terminaux et direction sont aussi acceptees. Ces trois sorties doivent contenir le meme nombre d'elements finis.
Direction accepte both, increasing ou decreasing. Response accepte proceed, stop ou callback. Quand Response vaut callback, CallbackFcn est appelee avec le temps d'evenement, la solution d'evenement, l'indice d'evenement et les parametres optionnels du probleme. Elle peut retourner un drapeau d'arret scalaire et une solution d'evenement mise a jour.
E = odeEvent('EventFcn', @(t,y) y - 0.5, ...
'Direction', 'increasing', ...
'Response', 'stop');
problem = ode('ODEFcn', @(t,y) 1, 'InitialValue', 0, 'EventDefinition', E);
result = solve(problem, 0, 1)
function [stop, y] = myEventCallback(t, y, index)
stop = true;
end
E = odeEvent('EventFcn', @(t,y) y - 0.5, ...
'Response', 'callback', ...
'CallbackFcn', @myEventCallback);
problem = ode('ODEFcn', @(t,y) 1, 'InitialValue', 0, 'EventDefinition', E);
result = solve(problem, 0, 1)
| Version | Description |
|---|---|
| 2.0.0 | version initiale |