A l'aide je suis bloqué dans ma programmation.

Fermé
Harouna - 22 oct. 2022 à 13:34
 Utilisateur anonyme - 1 janv. 2023 à 17:51

Bonjour, je suis bloqué dans ma programmation.

voici le message qui s'affiche

Warning: Failure at t=2.279435e-07.  Unable to meet integration tolerances without reducing the step size
below the smallest value allowed (4.235165e-22) at time t.
> In ode15s (line 730)
  In kaupk2_equation (line 27)
Elapsed time is 1.756285 seconds.

 xu =  1.000   xl = -1.000

  t  x   u(it,i)   u_exacte(it,i)  err(it,i)
Index in position 1 exceeds array bounds.

Error in kaupk2_equation (line 43)
                t(it),x(i),u(it,i),u_exacte(it,i),err(it,i));
 


Windows / Firefox 106.0

A voir également:

1 réponse

Utilisateur anonyme
1 janv. 2023 à 17:51

Le message d'erreur que vous avez indiqué semble indiquer que la fonction "ode15s" utilisée pour résoudre votre équation différentielle n'a pas été en mesure de trouver une solution qui satisfasse les tolérances d'intégration spécifiées. Cela peut être dû à plusieurs raisons :

Votre équation différentielle est trop complexe ou instable et la fonction "ode15s" ne parvient pas à la résoudre avec les paramètres de tolérance actuellement utilisés.

Votre équation différentielle contient des termes qui ne sont pas différentiables (par exemple, une fonction "step" ou une fonction "heaviside"), ce qui peut causer des problèmes pour les méthodes d'intégration numérique.

Les valeurs initiales de votre équation différentielle sont trop éloignées de la solution réelle, ce qui peut rendre difficile la convergence de la méthode d'intégration.

Pour résoudre ce problème, voici quelques étapes que vous pouvez essayer :

Vérifiez que votre équation différentielle est correctement écrite et qu'elle ne contient pas d'erreurs de syntaxe.

Essayez de réduire les tolérances d'intégration en utilisant les options "RelTol" et "AbsTol" de la fonction "ode15s". Cela permettra à la fonction de s'approcher davantage de la solution réelle, mais cela peut également ralentir le processus de résolution.

Essayez de changer les valeurs initiales de votre équation différentielle pour voir si cela permet d'améliorer la convergence de la solution.

Si vous utilisez des termes non différentiables dans votre équation différentielle, essayez de les remplacer par des fonctions différentiables qui s'en approchent (par exemple, utiliser une fonction "sigmoid" au lieu d'une fonction "step").

Si aucune de ces étapes ne résout le problème, il se peut que votre équation différentielle soit trop complexe ou instable pour être résolue avec la méthode "ode15s". Dans ce cas, vous pourriez essayer d'utiliser une autre méthode d'intégration, comme "ode45" ou "ode23".

0