| 查看: 1185 | 回复: 10 | |||
| 当前主题已经存档。 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
monitor2885至尊木虫 (职业作家)
队长
|
[交流]
【求助】简单的ode45程序修改
|
||
|
function abc clear all;clc global y u u=[1;2;3;4;5]; t=0:4; [t,y]=ode45(@fun,t,[0 2]); plot(y) function dydt=fun(t,y) global u v=u*2; dydt=zeros(2,1); dydt(1)=y(2); dydt(2)=v*y(1)-2*v*y(2); 哪里错了呢?怎么改?谢谢 |
» 猜你喜欢
Materials Today Chemistry审稿周期
已经有4人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有3人回复
参与限项
已经有3人回复
假如你的研究生提出不合理要求
已经有7人回复
实验室接单子
已经有4人回复
全日制(定向)博士
已经有4人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复

monitor2885
至尊木虫 (职业作家)
队长
- 应助: 6 (幼儿园)
- 贵宾: 0.339
- 金币: 38700.5
- 散金: 147
- 红花: 22
- 帖子: 4943
- 在线: 2166.8小时
- 虫号: 701577
- 注册: 2009-02-15
- 性别: GG
- 专业: 生态系统生态学
|
global yy之后,我发现yy有208个,为何不是5个呢?我知道ode45是变步长,但是如果写成ode45(@fun,tspan,y0),就会有5个yy,而不是208个。为什么 比如说,下面的简单程序:y就是5个 global y tspan=0:1:4; y0=[0 2]; [t,y]=ode45(@fun,tspan,y0); function dydt=fun(t,y) dydt=zeros(2,1); dydt(1)=y(2); dydt(2)=y(1)-2*y(2); [ Last edited by monitor2885 on 2010-3-18 at 19:48 ] |

8楼2010-03-18 19:45:31
change0618
铁杆木虫 (著名写手)
方丈大师
- 应助: 44 (小学生)
- 金币: 17724.5
- 红花: 17
- 帖子: 2413
- 在线: 546.7小时
- 虫号: 496517
- 注册: 2008-01-19
- 专业: 化学反应工程
★
monitor2885(金币+5):帮忙看下面一个 2010-03-17 21:33
kuhailangyu(金币+1):欢迎积极参与 2010-03-18 16:24
monitor2885(金币+5):帮忙看下面一个 2010-03-17 21:33
kuhailangyu(金币+1):欢迎积极参与 2010-03-18 16:24
|
function abc clear all clc u=[1;2;3;4;5]; tspan=0:1:4; tt=[];yy=[]; y0=[0 2]; for i=1:length(tspan)-1 [t,y]=ode45(@fun,[tspan(i),tspan(i+1)],y0,[],u(i)); tt=[tt;t];yy=[yy;y]; y0=y(end,: ); end figure(1) plot(tt,yy) function dydt=fun(t,y,u) v=u*2; dydt=[y(2); v*y(1)-2*v*y(2)]; |
2楼2010-03-17 19:45:45
monitor2885
至尊木虫 (职业作家)
队长
- 应助: 6 (幼儿园)
- 贵宾: 0.339
- 金币: 38700.5
- 散金: 147
- 红花: 22
- 帖子: 4943
- 在线: 2166.8小时
- 虫号: 701577
- 注册: 2009-02-15
- 性别: GG
- 专业: 生态系统生态学
|
比如,现在2个参数,即u和v,下面哪里不对呢? clear all;clc global yy u=[1;5;15;20;25]; v=[6;12;18;24;30]; tspan=0:1:4; tt=[];yy=[]; y0=[0 2]; for i=1:length(tspan)-1 [t,y]=ode45(@fun,[tspan(i),tspan(i+1)],y0,[],(u(i),v(i))); tt=[tt;t]; yy=[yy;y]; y0=y(end, ;end figure;plot(tt,yy) function dydt=fun(t,y,u,v) dydt=zeros(2,1); dydt(1)=u+y(2); dydt(2)=v*y(1)-2*v*y(2); [ Last edited by monitor2885 on 2010-3-17 at 21:34 ] |

3楼2010-03-17 21:33:30
change0618
铁杆木虫 (著名写手)
方丈大师
- 应助: 44 (小学生)
- 金币: 17724.5
- 红花: 17
- 帖子: 2413
- 在线: 546.7小时
- 虫号: 496517
- 注册: 2008-01-19
- 专业: 化学反应工程
4楼2010-03-17 23:04:14












回复此楼
;