4

Je suis assez nouveau avec Julia et j'apprends actuellement à résoudre des équations différentielles avec elle. J'ai essayé d'exécuter un simple code préfabriqué par Christopher Rackauckas, mais j'ai eu une erreur. Le code peut être trouvé here. Je vais aussi écrire ici:Problème avec DifferentialEquations.jl

using DifferentialEquations 
alpha = 0.5 #Setting alpha to 1/2 
f(y,t) = alpha*y 
u0 = 1.5 
prob = ODEProblem(f,u0) 
timespan = [0,1] # Solve from time = 0 to time = 1 
sol = solve(prob,timespan) # Solves the ODE 
using Plots 
plot(sol) # Plots the solution using Plots.jl 

Et l'erreur que je reçois ressemble à ceci:

LoadError: MethodError: no methof matching DiffEqBase.ODEProblem{uType,tType,isinplace,FC;MM}(::#f, ::Float64)

J'ai aussi essayé d'exécuter d'autres codes similaires et même enlevé le -package DifferentialEquations.jl et puis réinstallé, mais rien n'a changé. Quelqu'un de plus expérimenté ayant une idée de ce que je pourrais faire de mal?

Répondre

5

Le problème vient du fait que ce blog date d'il y a très longtemps. Ou au moins, DifferentialEquations 1.0 a eu quelques changements de rupture dans cette partie. Vous devez utiliser the tutorial instead, qui corrige cet exemple à la version la plus récente. La solution est:

using DifferentialEquations 
alpha = 0.5 #Setting alpha to 1/2 
f(y,t) = alpha*y 
u0 = 1.5 
tspan = (0.0,1.0) # Solve from time = 0 to time = 1 
prob = ODEProblem(f,u0,tspan) 
sol = solve(prob) # Solves the ODE 
using Plots 
plot(sol) # Plots the solution using Plots.jl 

Mais maintenant que je sais que les gens cherchent toujours à ce vieux poste, je mis à jour sa syntaxe correcte.

+0

Merci Chris! Maintenant, le code fonctionne comme il se doit. – maikkirapo