| 查看: 1247 | 回复: 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); 哪里错了呢?怎么改?谢谢 |
» 猜你喜欢
国自然面上和省基金B类撒花
已经有18人回复
有没有学校收留
已经有3人回复
312求调剂
已经有3人回复
华师大读博
已经有5人回复
又一批高校组建人工智能学院 师资行吗 不是骗人吗
已经有5人回复
急需审稿人!!!
已经有3人回复
申博/考博
已经有8人回复
295分求调剂
已经有6人回复
085600材料与化工调剂
已经有6人回复
有没有接收比较快的sci期刊呀,最好在一个月之内的,研三孩子求毕业
已经有7人回复

change0618
铁杆木虫 (著名写手)
方丈大师
- 应助: 44 (小学生)
- 金币: 17724.5
- 红花: 17
- 帖子: 2413
- 在线: 546.7小时
- 虫号: 496517
- 注册: 2008-01-19
- 专业: 化学反应工程
★
adu886886(金币+1):谢谢提供意见 2010-03-19 08:29
monitor2885(金币+5):[t,y]=ode45(@fun,[tspan(i):1:tspan(i+1)],y0,[],u(i),v(i)); 还是208个点呀 2010-03-19 13:09
adu886886(金币+1):谢谢提供意见 2010-03-19 08:29
monitor2885(金币+5):[t,y]=ode45(@fun,[tspan(i):1:tspan(i+1)],y0,[],u(i),v(i)); 还是208个点呀 2010-03-19 13:09
|
tspan=0:1:4; [t,y]=ode45(@fun,tspan,y0); 这两句会令t=[0 1 2 3 4],并将其对应的值赋给y,所以y只有5个; 而[t,y]=ode45(@fun,[tspan(i),tspan(i+1)],y0,[],u(i),v(i)); 此句中的[tspan(i),tspan(i+1)],只给定了一个区间, t的元素个数一般取其计算过程中的个数 如果你只想取五个值,那就用tspan(i):tspan(i+1), 你画图的话会看到五个点,但实际上是8个点,中间三个有重复 如果想彻底只有5个,你可以自己抠掉。 当然还有其他方法抽取那五个点的y值。 程序肯定是计算了很多很多个点,但是具体你要取几个,那在于你的意图了。 |
9楼2010-03-18 21:46:37
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
- 金币: 39585.5
- 散金: 147
- 红花: 22
- 帖子: 5009
- 在线: 2175.2小时
- 虫号: 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













回复此楼
;
5