【问题标题】:How do I integrate a differential equation in MATLAB?如何在 MATLAB 中积分微分方程?
【发布时间】:2015-08-14 21:29:39
【问题描述】:

我想积分一个微分方程 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

【问题讨论】:

  • 数字还是符号?另外,请提供数学符号中的实际函数,以便 ppl 可以更快地帮助您。
  • 数字。由于等式很长,我将附上链接。 @CroCo
  • 哪个方程?不能打字就拍张照片。
  • 很抱歉,我该如何添加图片。我已经阅读了帮助部分,但它只显示了如何从网站添加图像。如果要从硬盘上传,如何添加?
  • 你检查我下面的答案了吗??

标签: matlab integration ode differential-equations integral


【解决方案1】:

您可以使用 Euler 方法来解决此问题,以大致了解解决方案但不准确。

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,它会给出相同的结果。

【讨论】:

    猜你喜欢
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 2019-11-16
    • 1970-01-01
    相关资源
    最近更新 更多