ode45求多元微分方程
functiondw=I(t,w)
m=w(1)
n=w(2)
h=w(3)
V=w(4)
am=(0.1*(25-V))/(exp((25-V)/10)-1)
bm=4*exp(-V/18)
m8=am/(am+bm)
dm=(am+bm)*(m8-m)
an=((0.01*(10-V))/(exp((10-V)/10)-1))
bn=1/(exp((30-V)/10)+1)
n8=an/(an+bn)
dn=(an+bn)*(n8-n)
ah=0.07*exp(-V/20)
bh=1/(exp((30-V)/10)+1)
h8=ah/(ah+bh)
dh=(ah+bh)*(h8-h)
P=120*m.^3.*h*(115-V)+36*n.^4*(-12-V)+0.3*(10.599-V)
I=20
dV=P+I
dw=[dm,dn,dh,dV]
end
之后运行
t=0:0.1:100
[t,V]=ode45(@I,t,[0,0,1,30])
为什么会有错误:
Errorusing==>odeargumentsat113
Imustreturnacolumnvector.
Errorin==>ode45at173
[neq,tspan,ntspan,next,t0,tfinal,tdir,y0,f0,odeArgs,odeFcn,...
Errorin==>Untitled1at2
[t,V]=ode45(@I,t,[0,0,1,30])
所有的东西都是定义过的,全部在function里面,只有V和t是在ode45命令里面