如何在 MATLAB 中积分微分方程?

How do I integrate a differential equation in MATLAB?

我想对一个微分方程求积分dc/dt。下面是代码和变量的值。

clear all;
c1=.185;c0=2*10^-6;k3=.1*10^-6;
v1=6;v2=.11;v3=.09*10^-6;
Ca_ER=10*10^-6;Ca_cyto=1.7*10^-6;
p_open3=0.15;c=15*10^-6;
dcdt= (c1*(v1*(p_open3)+v2)*(Ca_ER)-c)-v3*((c)^2)/(c^2+(k3)^2);

我知道有一个积分函数,但我不知道如何应用这个方程。我该如何从这里开始?请帮忙。如果需要,初始c的值可以取0.15*10^-6。另外,我需要绘制获得的结果与时间的关系图。那么会得到一个值数组还是一个值?

the link to the article. the equation i have used comes under Calcium Oscillations section

你可以用欧拉法来解这道题,对解有一个大概的了解,但不准确。

clear all
clc

t = 0;
dt = 0.0001;
c1 = 0.185;
c0 = 2*10^-6;
k3 = 0.1*10^-6;
v1 =6;
v2 =.11;
v3 =.09*10^-6;
Ca_ER =10*10^-6;
Ca_cyto =1.7*10^-6;
p_open3 =0.15;
c = 15*10^-6;

%store initial values
C(1) = c;
T(1) = t;

for i = 1:40000
    dc = ( (c1*(v1*(p_open3)+v2)*(Ca_ER)-c)- v3*( c^2 /( c^2+(k3)^2) ) );
     c = c + dt*dc;
    t  = t + dt;

    %store data
    C(i+1) = c;
    T(i+1) = t;
end

plot(T,C, 'LineWidth',2)
xlabel('time (sec)')
ylabel('c(t)')
grid on

结果是

您也可以使用 Wolfram 得到相同的结果。