Propriétés matlab.ode.options.ODE45
R2026bLes objets matlab.ode.options.ODE45 s’utilisent avec les objets ode pour spécifier les options de résolution des équations différentielles ordinaires (ODE). Les objets ode renseignent automatiquement la propriété SolverOptions avec un objet options propre au solveur sélectionné. Par conséquent, vous n’avez généralement pas besoin de créer les objets matlab.ode.options.ODE45 de manière explicite.
Spécifiez les options du problème ODE en modifiant les valeurs de propriété de l’objet matlab.ode.options.ODE45 avec la notation pointée. Par exemple, si F est un objet ode, alors F.SolverOptions.OutputFcn = @odeplot spécifie une fonction de sortie que le solveur appelle après chaque pas de temps réussi.
Taille de pas
Taille de pas initiale suggérée, spécifiée sous forme de scalaire positif. InitialStep définit une limite supérieure pour la taille du premier pas qu’essaie le solveur.
Si vous ne spécifiez pas de taille de pas initiale, le solveur la choisit en fonction de la pente de la solution au premier point dans le temps de l’intégration. Si la pente de toutes les composantes de la solution est nulle, il se peut que le solveur essaie une trop grande taille de pas. Si vous savez que la taille de pas initiale est trop grande ou si vous souhaitez avoir la certitude que le solveur résoudra les comportements importants au début de l’intégration, utilisez InitialStep pour indiquer une taille de pas initiale appropriée.
Exemple : F.SolverOptions.InitialStep = 1e-3, où F est un objet ode, définit une limite supérieure de 1e-3 pour la taille de pas initiale.
Taille de pas maximale, spécifiée sous forme de scalaire positif. MaxStep définit une limite supérieure pour la taille de tous les pas que traite le solveur. Par exemple, si l’équation a un comportement périodique, vous pouvez définir MaxStep comme une fraction de la période pour que le solveur n’ignore pas une zone d’intérêt.
N’utilisez pas
MaxStepdans le seul but d’obtenir un plus grand nombre de points en sortie, car cela peut considérablement ralentir l’intégration. Utilisez plutôt l’optionRefinede la méthodesolvepour calculer des points supplémentaires avec un coût de calcul réduit.N’utilisez pas
MaxSteppour augmenter la précision de la solution. Si la solution manque de précision, diminuez la valeur deRelativeToleranceet utilisez la solution afin de déterminer une valeur appropriée pourAbsoluteTolerance.Évitez d’utiliser
MaxSteppour vous assurer que le solveur n’ignore pas un comportement qui ne se produit qu’une fois dans l’intervalle d’intégration. Si vous savez à quel moment se produit ce comportement, divisez l’intervalle en deux parties et résolvez chacune d’elles séparément. Si vous ne savez pas à quel moment il se produit, essayez de réduireRelativeToleranceetAbsoluteTolerance. UtilisezMaxStepseulement en dernier recours dans ce cas.
Exemple : F.SolverOptions.MaxStep = 1e-2, où F est un objet ode, définit une limite supérieure de 1e-2 pour la taille de pas.
Depuis R2024b
Taille de pas minimale, spécifiée sous forme de scalaire positif. MinStep définit une limite inférieure pour la taille de tous les pas que traite le solveur. MinStep doit être inférieur à MaxStep.
Les pas du solveur sont limités par la précision en virgule flottante quelle que soit la valeur de MinStep.
Exemple : F.SolverOptions.MinStep = 1e-10, où F est un objet ode, définit une limite inférieure de 1e-10 pour la taille de pas.
Contrôle d’erreur
Contrôle d’erreur par rapport à la norme de la solution, spécifié comme "off" ou "on". Si NormControl est défini sur "on", le solveur contrôle l’erreur e à chaque pas en utilisant la norme de la solution y plutôt que sa valeur absolue :
norm(e(i)) <= max(RelativeTolerance*norm(y(i)),AbsoluteTolerance(i))
Exemple : F.SolverOptions.NormControl = "on", où F est un objet ode, contrôle l’erreur de pas en utilisant la norme de la solution.
Sortie du solveur
Fonction de sortie, spécifiée sous forme de handle de fonction. solve appelle la fonction de sortie après chaque pas de temps réussi. Si vous utilisez solutionFcn pour résoudre le problème ODE, OutputFcn est ignoré. Utilisez plutôt la fonction solve ou spécifiez des événements de rappel pour implémenter des critères d’arrêt dynamiques.
Le tableau suivant décrit les fonctions de sortie prédéfinies que vous pouvez spécifier pour OutputFcn.
| Nom de la fonction | Description |
|---|---|
odeplot | Trace toutes les composantes de la solution en fonction du temps. |
odephas2 | Crée un tracé 2D du plan de phase des deux premières composantes de la solution. |
odephas3 | Crée un tracé 3D du plan de phase des trois premières composantes de la solution. |
odeprint | Affiche la solution et le pas de temps dans la fenêtre de commande. |
Si vous écrivez une fonction de sortie personnalisée, elle doit utiliser la signature de fonction suivante :
status = myOutputFcn(t,y,flag)
La fonction de sortie que vous écrivez doit également réagir de manière appropriée aux indicateurs suivants.
| Indicateur | Description |
|---|---|
"init" | Le solveur appelle |
[] | Le solveur appelle
|
"done" | Le solveur appelle |
Exemple : F.SolverOptions.OutputFcn = @odeplot, où F est un objet ode, spécifie odeplot comme fonction de sortie appelée par le solveur après chaque pas de temps réussi.
Types de données : function_handle
Sélection de composantes pour la fonction de sortie, spécifiée sous forme de vecteur d’indices. Le vecteur indique les composantes de la solution à passer à la fonction de sortie. Le nombre de composantes de la solution est égal au nombre d’éléments du vecteur en sortie de la fonction ODE (qui est stockée dans la propriété ODEFcn de l’objet ode).
Exemple : F.SolverOptions.OutputSelection = [1 3], où F est un objet ode, passe les première et troisième composantes de la solution à la fonction de sortie.
Historique des versions
Introduit dans R2023bVous pouvez spécifier la taille de pas minimale en tant qu’option du solveur en définissant la propriété MinStep.
Voir aussi
ode | odeJacobian | odeMassMatrix | odeset
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)