<Text-field style="Heading 1" layout="Heading 1"></Text-field> restart; with(plots): with(DEtools): eq1 := C*diff(V(t),t)=I1-g[L]*(V(t)-E[L])-g[Na]*m[infinity](V(t))*(V(t)-E[Na])-g[K]*n(t)*(V(t)-E[K]); eq2 := diff(n(t),t)= (n[infinity](V(t))-n(t))/tau(V(t)); m1_inf := eval(subs({V[1/2]=-20,k=15},1/(1+exp((V[1/2]-V(t))/k)))); n1_inf := eval(subs({V[1/2]=-25,k=5},1/(1+exp((V[1/2]-V(t))/k)))); params := {C=1,I1=4.51,E[L]=-80,g[L]=8,g[Na]=20,g[K]=10,tau(V(t))=1,E[Na]=60,E[K]=-90, m[infinity](V(t))=m1_inf,n[infinity](V(t))=n1_inf}; eqn1a := eval(subs(params,eq1),{V(t)=V1,n(t)=n1}); eqn2a := rhs(eval(subs(params,eq2),{V(t)=V1,n(t)=n1}))=0; eqn1a := rhs(eval(subs(params,eq1),{V(t)=V1,n(t)=n1})); eqn2a := rhs(eval(subs(params,eq2),{V(t)=V1,n(t)=n1})); n1a := solve(eqn1a,n1); n2a := solve(eqn2a,n1); plot([n1a,n2a],V1=-89..0,n1=-0.1..0.5,axes=boxed); eqn1b := eval(subs(params,eq1)); eqn2b :=eval(subs(params,eq2)); dfieldplot([eqn1b,eqn2b],[V(t),n(t)],t=-5..5,V=-89..0,n=-0.1..0.5,arrows=small); plot1 := plot([n1a,n2a],V1=-89..0,n1=-0.1..0.5,axes=boxed,color=[blue,"DarkGreen"],thickness=2): plot2 := dfieldplot([eqn1b,eqn2b],[V(t),n(t)],t=-5..5,V=-89..0,n=-0.1..0.5,arrows=small): display(plot1,plot2); plot3 := DEplot([eqn1b,eqn2b],[V(t),n(t)],t=0..2,[[V(0)=-70,n(0)=0],[V(0)=-60,n(0)=0],[V(0)=-50,n(0)=0],[V(0)=-60,n(0)=0.1],[V(0)=-60,n(0)=-0.1]],V=-89..0,n=-0.1..0.5,arrows=small,linecolor=[black,blue,green,orange,cyan]); display(plot1,plot3);
<Text-field style="Heading 1" layout="Heading 1"></Text-field> restart; with(plots): with(DEtools): eq1 := C*diff(V(t),t)=I1-g[L]*(V(t)-E[L])-g[Na]*m[infinity](V(t))*(V(t)-E[Na])-g[K]*n(t)*(V(t)-E[K]); eq2 := diff(n(t),t)= (n[infinity](V(t))-n(t))/tau(V(t)); m1_inf := eval(subs({V[1/2]=-20,k=15},1/(1+exp((V[1/2]-V(t))/k)))); n1_inf := eval(subs({V[1/2]=-25,k=5},1/(1+exp((V[1/2]-V(t))/k)))); params1 := {C=1,E[L]=-80,g[L]=8,g[Na]=20,g[K]=10,tau(V(t))=1,E[Na]=60,E[K]=-90, m[infinity](V(t))=m1_inf,n[infinity](V(t))=n1_inf}; eqn1c := rhs(eval(subs(params1,eq1),{V(t)=V1,n(t)=n1}))=0; eqn2c := rhs(eval(subs(params1,eq2),{V(t)=V1,n(t)=n1}))=0; n1c := solve(eqn1c,n1); n2c := solve(eqn2c,n1); eqn1d := eval(subs(params1,eq1)); eqn2d :=eval(subs(params1,eq2)); animate(plot,[[n1c,n2c],V1=-89..0,n1=-0.1..0.5,axes=boxed],I1=-20..20); eqn1b := eval(subs(params1,eq1)); eqn2b :=eval(subs(params1,eq2)); animate(DEplot,[(eval([eqn1d,eqn2d],I1=I2),[V(t),n(t)],t=0..2,[[V(0)=-70,n(0)=0],[V(0)=-60,n(0)=0],[V(0)=-50,n(0)=0],[V(0)=-60,n(0)=0.1],[V(0)=-60,n(0)=-0.1]],V=-89..0,n=-0.1..0.5,arrows=small,linecolor=[black,blue,green,orange,cyan])],I2=-40..20); plotseq1 := []: for I1 from -30 by 1 to 20 do plot1d := plot([n1c,n2c],V1=-89..0,n1=-0.1..0.5,axes=boxed,color=[blue,"DarkGreen"],thickness=1): plot2d := DEplot([eqn1d,eqn2d],[V(t),n(t)],t=0..5, [[V(0)=-80,n(0)=0],[V(0)=-70,n(0)=0],[V(0)=-60,n(0)=0],[V(0)=-50,n(0)=0],[V(0)=-40,n(0)=0], [V(0)=-80,n(0)=0.1],[V(0)=-70,n(0)=0.1],[V(0)=-60,n(0)=0.1],[V(0)=-50,n(0)=0.1],[V(0)=-40,n(0)=0.1], [V(0)=-80,n(0)=-.1],[V(0)=-70,n(0)=-.1],[V(0)=-60,n(0)=-.1],[V(0)=-50,n(0)=-0.1],[V(0)=-40,n(0)=-0.1]], V=-89..0,n=-0.1..0.5,arrows=small,linecolor=[black,orange,green,cyan,violet,black,orange,green,cyan,violet,black,orange,green,cyan,violet]): plotseq1 := [op(plotseq1),display(plot1d,plot2d)]; end do: display(plotseq1,insequence=true);