Solving Differential Equation with initial conditions
5 次查看(过去 30 天)
显示 更早的评论
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;
0 个评论
采纳的回答
Star Strider
2018-2-10
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 个评论
Star Strider
2018-2-11
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.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Equation Solving 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!