1 变参数微分方程数值求解 例子2 求 fu nction dy dt=fu n(t,y ,u ,v ) r=u +2;s=v -2; dy dt=[r+y (2); s*y (1)-2*s*y (2)]; u =[1;5;15;20;25]; v =[6;12;18;24;30]; tspan=0:1:4; y 0=[0 2]; y y =y 0; for i=1:length(tspan)-1 [t,y ]=ode45(@fu n,[tspan(i),tspan(i+1)],y 0,[],u (i),v (i)); y 0=y (end,: ); y y =[y y ;y 0]; end plot(tspan,y y ,'-o') 2
1 匿名函数法 f=@(t,y ,u ,v ) [u +2+y (2); (v -2)*y (1)-2*(v -2)*y (2)] u =[1;5;15;20;25]; v =[6;12;18;24;30]; tspan=0:1:4; y 0=[0 2]; y y =y 0; for i=1:length(tspan)-1 [t,y ]=ode45(f,[tspan(i),tspan(i+1)],y 0,[],u (i),v (i)); y 0=y (end,: ); y y =[y y ;y 0]; end plot(tspan,y y ,'-o') 2
2 修改加上时间tt(显示所有计算值) clear u =[1;5;15;20;25]; v =[6;12;18;24;30]; tspan=0:1:4; y 0=[0 2]; tt =[];y y =[]; for i=1:length(tspan)-1 [t,y ]=ode45(@fu n,[tspan(i),tspan(i+1)],y 0,