24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1230  |  回复: 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

铁杆木虫 (著名写手)

方丈大师


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的回帖

monitor2885

至尊木虫 (职业作家)

队长

引用回帖:
Originally posted by change0618 at 2010-03-17 23:04:14:
[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  可以去掉

global yy u v
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)
global u v
r=u+2;
s=v-2;
dydt=zeros(2,1);
dydt(1)=r+y(2);
dydt(2)=s*y(1)-2*s*y(2);

还是不对,再改改谢谢
Retirement
5楼2010-03-18 14:28:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师


kuhailangyu(金币+1):欢迎积极参与 2010-03-18 16:24
monitor2885(金币+5):global yy之后,我发现yy有208个,为何不是5个呢? 2010-03-18 19:43
function abc
clear all
clc
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

plot(tt,yy)


function dydt=fun(t,y,u,v)
r=u+2;
s=v-2;
dydt=[r+y(2);
      s*y(1)-2*s*y(2)];
6楼2010-03-18 15:38:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

张轩中

铜虫 (小有名气)

??? function abc
    |
Error: Function definitions are not permitted at the prompt or in scripts.
7楼2010-03-18 16:14:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

monitor2885

至尊木虫 (职业作家)

队长

引用回帖:
Originally posted by change0618 at 2010-03-18 15:38:18:
function abc
clear all
clc
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));
...

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 ]
Retirement
8楼2010-03-18 19:45:31
已阅   回复此楼   关注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的回帖

monitor2885

至尊木虫 (职业作家)

队长

引用回帖:
Originally posted by change0618 at 2010-03-18 21:46:37:
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,y]=ode45(@fun,[tspan(i):1:tspan(i+1)],y0,[],u(i),v(i));
还是 208 个点呀
Retirement
10楼2010-03-19 13:09:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 monitor2885 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 301求调剂 +15 骆驼男人 2026-04-02 15/750 2026-04-03 18:26 by ls刘帅
[考研] 五邑大学土木工程招调剂生2026 +3 wyutj 2026-03-31 4/200 2026-04-03 18:21 by zengxj_7201
[考研] 化工求调剂 +9 荔香芝士椰奶 2026-04-03 9/450 2026-04-03 17:17 by chran16
[考研] 材料调剂 +6 吴棂颖! 2026-04-03 6/300 2026-04-03 16:25 by lijunpoly
[考研] 机械专硕297 +3 Afksy 2026-04-03 3/150 2026-04-03 14:24 by 1753564080
[考研] 建环,能源,土木老师路过看一看!!! +5 嘿嘿uu 2026-04-01 5/250 2026-04-03 11:47 by znian
[考研] 298分 070300求调剂 +11 zwen03 2026-04-02 11/550 2026-04-03 10:19 by macy2011
[考研] 专硕 351 086100 也是考的材科基 本科也是材料 +8 202451007219 2026-04-02 8/400 2026-04-03 09:50 by 蓝云思雨
[考研] 309求调剂 +14 呆菇不是戴夫 2026-04-02 14/700 2026-04-03 09:42 by 蓝云思雨
[考研] 282求调剂 +3 aaa车辆 2026-04-02 3/150 2026-04-02 21:55 by zllcz
[考研] 085601一志愿北理325分求调剂 +4 找调剂,, 2026-04-02 4/200 2026-04-02 21:29 by dongzh2009
[考研] +4 雾与海 2026-04-02 5/250 2026-04-02 19:16 by 土木硕士招生
[考研] 298求B区调剂 +4 zzz,,r 2026-04-02 5/250 2026-04-02 12:17 by 土木硕士招生
[考研] 土木304求调剂 +6 兔突突突, 2026-03-31 7/350 2026-04-02 09:06 by coolminer
[考研] 一志愿西安交大材料学硕(英一数二)347,求调剂到高分子/材料相关专业 +7 zju51 2026-03-31 9/450 2026-04-01 19:35 by CFQZAFU
[考研] 288资源与环境专硕求调剂,不限专业,有学上就行 +25 lllllos 2026-03-30 26/1300 2026-04-01 09:52 by 一只好果子?
[考研] 本2一志愿C9-333分,材料科学与工程,求调剂 +9 升升不降 2026-03-31 9/450 2026-03-31 18:01 by 无际的草原
[考研] 求调剂 生物学 377分 +6 zzll03 2026-03-31 6/300 2026-03-31 17:33 by 唐沐儿
[考研] 081200-11408-276学硕求调剂 +4 崔wj 2026-03-31 4/200 2026-03-31 11:56 by jp9609
[考研] 求调剂 +7 争取九点睡 2026-03-28 8/400 2026-03-28 21:07 by 争取九点睡
信息提示
请填处理意见