Solving Differential Equation with initial conditions

3 visualizaciones (últimos 30 días)
onsagerian
onsagerian el 10 de Feb. de 2018
Comentada: Star Strider el 11 de Feb. de 2018
Hello,
I tried to make a simple code for solving a coupled differential equation with initial conditions, but I got the following errors.(two separate errors) Would you check my code with the error message and make a correction?
syms S_1(t) S_2(t);
K=1;
k_1=20;
k_2=5;
k_3=5;
k_4=5;
k_5=2;
n=4;
S_1(0)=0.0;
S_2(0)=0.6;
dsolve(diff(S_1,t)==k_1*S_2^n/(K^n+S_2^n)-k_3*S_1-k_5*S_1)
dsolve(diff(S_2,t)==k_2+k_5*S_1-k_4*S_2)
Error using sym/subsasgn (line 942)
Invalid indexing or function definition. Indexing must follow MATLAB indexing. Function arguments must be symbolic variables, and function body must be sym expression.
Error in cal_test11 (line 10)
S_1(0)=0.0;

Respuesta aceptada

Star Strider
Star Strider el 10 de Feb. de 2018
You need to add the initial conditions as arguments to dsolve, and use the ‘double equal’ to assign them:
S_1s = dsolve(diff(S_1,t)==k_1*S_2^n/(K^n+S_2^n)-k_3*S_1-k_5*S_1, S_1(0)==0.0)
S_2s = dsolve(diff(S_2,t)==k_2+k_5*S_1-k_4*S_2, S_2(0)==0.6)
  5 comentarios
onsagerian
onsagerian el 11 de Feb. de 2018
Thank you all for your explanation. I will see the documents.
Star Strider
Star Strider el 11 de Feb. de 2018
My pleasure.
Those links completely describe the code needed to convert your symbolic ODEs to anonymous functions.
Do not include the initial conditions ‘S_1(0)’ and ‘S_2(0)’ in the code you send to odeToVectorField. You will set the initial conditions as arguments to the ODE solver you choose.

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by