C'est une resolution numerique suivant un algorithme (meme si t'as que 10 minutes c'est utile de checker comment marche par exemple forward Euler, c'est le truc le plus simple possible), ca peut tracer la solution approximative mais ca ne donne pas d'expression analytique.
C'est le meme delire que si tu ecris un algorithme pour resoudre une equation normale, en general l'algorithme va te donner x=0.765.. (approximation), pas x=(-11+sqrt(157))/2 (forme exacte)
Si tu veux une expression analytique:
- i/ tu peux resoudre l'equation comme tu as fait, et apres faire un fit d'une famille de fonction a la solution numerique. Tu connais surement les regressions lineaires, c'est le meme delire mais au lieu de fitter a et b dans x->ax+b tu peux fitter absolument ce que tu veux. Le plus commun c'est le fit d'un polynome: https://docs.scipy.org/doc/numpy/reference/generated/numpy.polyfit.html
Pour autre chose qu'un polynome: https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html
Ca te donnerait quelque chose qui approxime plus ou moins bien la solution numerique.
- ii/ parfois c'est possible de resoudre l'equation differentielle exactement, avec une solution directement donnee sous une forme symbolique (par exemple tu donnes ton equa diff et au lieu de te renvoyer un vecteur avec une approximation de la solution evaluee en certain points, l'algorithme te donnera juste f(x)=18exp(-x)+12x-3, la forme de la vraie solution) et pas une approximation numerique comme la methode i/.
Ca c'est completement different, y'a ce package qui permet de le faire en python: https://docs.sympy.org/laatest/modules/solvers/ode.html
C'est le meme genre de delire que wolfram alpha: https://www.wolframalpha.com/input/?i=y%27%3D3y%5E2-2*y (voir ligne differential equation solution)
Message édité le 23 avril 2020 à 20:02:37 par blue-tamere