matlab用ode23解决参数方程,matlab变参量微分方程处理

用MATLAB方法进行变参量微分方程处理

1 变参数微分方程数值求解

例子2 求

function dydt=fun(t,y,u,v)

r=u+2;s=v-2;

dydt=[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;

y0=[0 2];

yy=y0;

for i=1:length(tspan)-1

[t,y]=ode45(@fun,[tspan(i),tspan(i+1)],y0,[],u(i),v(i));

y0=y(end,: );

yy=[yy;y0];

end

plot(tspan,yy,'-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;

y0=[0 2];

yy=y0;

for i=1:length(tspan)-1

[t,y]=ode45(f,[tspan(i),tspan(i+1)],y0,[],u(i),v(i));

y0=y(end,: );

yy=[yy;y0];

end

plot(tspan,yy,'-o')

2.2 修改加上时间tt(显示所有计算值)

clear

u=[1;5;15;20;25];

v=[6;12;18;24;30];

tspan=0:1:4;

y0=[0 2];

tt =[];yy=[];

for i=1:length(tspan)-1

[t,y]=ode45(@fun,[tspan(i),tspan(i+1)],y0,[],u(i),v(i));

y0=y(end,: );

tt=[tt;t];

yy=[yy;y];

end

plot(tt,yy);%所有的计算数值。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值