calling a function from a script

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

 Accepted Answer

@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 Comments

Thank you very much
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

Sign in to comment.

More Answers (0)

Categories

Find more on Numerical Integration and Differential Equations in Help Center and File Exchange

Asked:

on 18 Dec 2021

Commented:

on 19 Dec 2021

Community Treasure Hunt

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

Start Hunting!