System of ODEs with interdependent variables
조회 수: 24 (최근 30일)
이전 댓글 표시
I have to write a function that solves a differential equation which relies on three parameters. Each parameter is also described by a differential equation that calls the result of the first equation. I am unsure how to nest these as they all require each other as an input. I have initial values for each of them, but don't know where to go from there. I had listed all of the equations and called the ode45 function for each individually, which obviously didn't work as they rely on each other's outputs.
I've attached the equations below. The "main" ODE solves for V in terms of m, n, and h. Additionally, m, n, and h all vary with V based on unique exponential functions which I have already defined. All other variables are constants, I apologize for the clutter. How can I combine these?
dVdt = gna.*m^3.*h.*(Vna-V)+gk.*n^4.*(Vk-V)+gl.*(Vl-V)+I; %solve for V based on m, n, h
dndt = HH_an(V).*(1-n)-HH_bn(V).*n; %solve for n based on V
dhdt = HH_hm(V).*(1-h)-HH_bh(V).*h; %solve for h based on V
dmdt = HH_am(V).*(1-m)-HH_bm(V).*m; %solve for m based on V
댓글 수: 0
채택된 답변
James Tursa
2021년 2월 9일
I would advise writing a derivative function for this. E.g.,
dydt = myderivative(t,y,gna,gk,gl,Vna,Vk,Vl,I)
V = y(1);
n = y(2);
h = y(3);
m = y(4);
dVdt = gna.*m^3.*h.*(Vna-V)+gk.*n^4.*(Vk-V)+gl.*(Vl-V)+I; %solve for V based on m, n, h
dndt = HH_an(V).*(1-n)-HH_bn(V).*n; %solve for n based on V
dhdt = HH_hm(V).*(1-h)-HH_bh(V).*h; %solve for h based on V
dmdt = HH_am(V).*(1-m)-HH_bm(V).*m; %solve for m based on V
dydt = [dVdt;dndt;dhdt;dmdt];
end
Then use your own solver or ode45( ).
댓글 수: 5
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Ordinary Differential Equations에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!