2015-06-01 7 views
1

Я хочу интегрировать дифференциальное уравнение dc/dt. Ниже приведен код и значения переменных.Как интегрировать дифференциальное уравнение в MATLAB?

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); 

Я знаю, что есть интегральная функция, но я не уверен, как подать заявку на это уравнение. Как я исхожу отсюда? Пожалуйста помоги. Значение начального с, если необходимо, можно взять как 0,15 * 10^-6. Кроме того, мне нужно построить полученный результат по сравнению с временем. Так получится массив значений или просто одно значение?

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

+0

численно или символически? Кроме того, укажите фактическую функцию в математической нотации, чтобы ppl мог быстрее помочь вам. – CroCo

+0

Численно. Поскольку уравнение довольно длинное, я приложу ссылку вместо этого. @CroCo – nashynash

+0

какое уравнение? сделайте снимок, если вы не можете ввести его. – CroCo

ответ

1

Вы можете использовать метод Эйлера для решения этой проблемы, чтобы получить примерное представление о решении пока не точны.

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 

В результате

enter image description here

Вы также можете использовать Wolfram, который дает тот же результат.

enter image description here