Hi all,
I have a differential equation which I want to solve using Euler method.
I created a script which has only the equation:
function dx=differential (t,x);
dx/dt=-x+1/(1+exp(-5*(x-1)));
end
And another script in order to implement Euler's method
f = input('differential.m'); % Enter the function right to the ODE
t0 = input ('Enter initial value of time'); % Value that time starts
x0 = input ('Enter initial value of x'); % Initial condition
tn = input ('End point of time'); % Value that time ends
h = input ('Enter step size'); % TIme step value
% Euler method & Initial conditions
t(1)= t0;
x(1)= x0;
% Euler Loop
for i=1:n
x(i+1) = x(i) + h*f(t(i),x(i));
t(i+1) = t0 + i*h;
end
I want when I press play to the script of Euler's solution, instead of putting the differential equation manually, to call it direclty from the script which includes the equation.
How can I do this, and in which form should the equation be written in order to achieve this?
Thank you very much
Yours sincerely
Ilias Minas

 Réponse acceptée

Geoff Hayes
Geoff Hayes le 18 Déc 2021
@Ilias Minas - can't you just replace f with differential like
t0 = input ('Enter initial value of time'); % Value that time starts
x0 = input ('Enter initial value of x'); % Initial condition
tn = input ('End point of time'); % Value that time ends
h = input ('Enter step size'); % TIme step value
% Euler method & Initial conditions
t(1)= t0;
x(1)= x0;
% Euler Loop
for i=1:n
x(i+1) = x(i) + h*differential(t(i),x(i));
t(i+1) = t0 + i*h;
end

4 commentaires

Ilias Minas
Ilias Minas le 18 Déc 2021
Thank you very much
Ilias Minas
Ilias Minas le 19 Déc 2021
Unfortunately is not working. The following error appears
Error: File: differential.m Line: 3 Column: 6
Incorrect use of '=' operator. To assign a value to a variable, use '='. To compare values for equality, use
'=='.
Error in euler_method (line 19)
x(i+1) = x(i) + h*differential(t(i),x(i));
The function 'differential':
function dx=differential (t,x);
dx/dt=-x+1/(1+exp(-5*(x-1)));
end
contains a syntax error: 'dx/dt' is not a valid expression for assignment
function dx = differential (t,x);
dx = -x+1/(1+exp(-5*(x-1)));
end

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Numerical Integration and Differential Equations dans Centre d'aide et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by