24小时热门版块排行榜    

Znn3bq.jpeg
查看: 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);

哪里错了呢?怎么改?谢谢
回复此楼

» 猜你喜欢

Retirement
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师


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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

change0618

铁杆木虫 (著名写手)

方丈大师


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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

monitor2885

至尊木虫 (知名作家)

队长

引用回帖:
Originally posted by change0618 at 2010-03-17 19:45:45:
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];
     ...

比如,现在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 ]
Retirement
3楼2010-03-17 21:33:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

★ ★
monitor2885(金币+5):继续发金币,谢谢哥们帮忙解决问题 2010-03-18 14:29
kuhailangyu(金币+2):欢迎积极参与 2010-03-18 16:24
[t,y]=ode45(@fun,[tspan(i),tspan(i+1)],y0,[],      (u(i),v(i))      );
改成
[t,y]=ode45(@fun,[tspan(i),tspan(i+1)],y0,[],      u(i),v(i)        );


global yy  可以去掉
4楼2010-03-17 23:04:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 国自然面上和省基金B类撒花 +18 花田半亩~白 2026-04-21 18/900 2026-04-23 11:31 by 12021227
[考研] 有没有学校收留 +3 蒋昌鹏qtj 2026-04-20 3/150 2026-04-22 20:25 by 学员JpLReM
[考研] 312求调剂 +3 山河似你温柔 2026-04-22 3/150 2026-04-22 20:17 by 学员JpLReM
[考博] 华师大读博 +3 xq83 2026-04-22 5/250 2026-04-22 10:42 by xq83
[教师之家] 又一批高校组建人工智能学院 师资行吗 不是骗人吗 +5 yexuqing 2026-04-19 5/250 2026-04-22 10:01 by easeheart
[论文投稿] 急需审稿人!!! +3 陆小果画大饼 2026-04-21 3/150 2026-04-21 23:54 by jzy_123456
[考博] 申博/考博 +4 啃面包的小书虫 2026-04-17 8/400 2026-04-21 16:26 by 啃面包的小书虫
[考研] 085600材料与化工调剂 5+3 孜孜不倦2002 2026-04-19 6/300 2026-04-20 21:25 by babero
[论文投稿] 有没有接收比较快的sci期刊呀,最好在一个月之内的,研三孩子求毕业 20+4 之护着 2026-04-16 7/350 2026-04-20 15:45 by 豆豆7758
[考研] 337求调剂 +3 jyz04 2026-04-18 3/150 2026-04-20 12:24 by 研可安
[考博] 申博 +3 Xyyx. 2026-04-18 3/150 2026-04-20 10:44 by YuY66
[考博] 湖南大学刘巧玲课题组2026年第二批次博士研究生招生信息 +3 南风观火 2026-04-18 5/250 2026-04-20 10:13 by 南风观火
[考研] 求计算机方向调剂 +3 Toffee2 2026-04-16 6/300 2026-04-19 22:37 by ll叶
[考研] 294求调剂 +8 淡然654321 2026-04-17 9/450 2026-04-19 19:51 by Equinoxhua
[考研] 304求调剂 +8 castLight 2026-04-16 8/400 2026-04-19 17:14 by 中豫男
[考研] 求调剂 +10 小聂爱学习 2026-04-16 12/600 2026-04-19 16:51 by 中豫男
[考研] 求调剂 +6 苦命人。。。 2026-04-18 7/350 2026-04-19 16:27 by 中豫男
[考研] 接受任何调剂 +6 也就是栗子 2026-04-17 7/350 2026-04-18 17:20 by 涵竹刘
[考研] 收到复试调剂但是去不了 +8 小蜗牛* 2026-04-16 8/400 2026-04-18 11:15 by zixin2025
[有机交流] 二苯甲酮酸类衍生物 50+3 小白爱主人 2026-04-17 6/300 2026-04-17 18:47 by kf2781974
信息提示
请填处理意见