calling a function from a script

4 vues (au cours des 30 derniers jours)
Ilias Minas
Ilias Minas le 18 Déc 2021
Commenté : Torsten le 19 Déc 2021
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
Voss
Voss le 19 Déc 2021
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
Torsten
Torsten le 19 Déc 2021
function dx = differential (t,x);
dx = -x+1/(1+exp(-5*(x-1)));
end

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by