声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2969|回复: 4

[其他相关] 求助 使用MATLAB中遇到的odeset问题

[复制链接]
发表于 2008-4-24 18:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
hopt=odeset;
x0=[-0.2;-0.7];t_final=20;
mu=1;[t1,y1]=ode45('vdp_eq',[0 5 20],x0,hopt,mu);
mu=2;[t2,y2]=ode45('vdp_eq',[0 5 20],x0,hopt,mu);
plot(t1,y1,t2,y2);
figure;
plot(y1(:,1),y1(:,2),y2(:,1),y2(:,2));

里面的vdp_eq为
function y=vdp_eq(t,x,flag,mu)
y=[x(2); -mu*(x(1).^2-1).*x(2)-x(1)];

我不清楚的是,为什么要用hopt=odeset这个命令,ode45 里面为什么要用hopt这个选项?
hopt=odeset是什么意思?它把什么值送给hopt?
紧急求助,谢谢各位高手.
回复
分享到:

使用道具 举报

发表于 2008-4-24 22:17 | 显示全部楼层
x0=[-0.2;-0.7];t_final=20;
mu=1;[t1,y1]=ode45('vdp_eq',[0 5 20],x0,[],mu);
mu=2;[t2,y2]=ode45('vdp_eq',[0 5 20],x0,[],mu);
plot(t1,y1,t2,y2);
figure;
plot(y1(:,1),y1(:,2),y2(:,1),y2(:,2));

里面的vdp_eq为
function y=vdp_eq(t,x,flag,mu)
y=[x(2); -mu*(x(1).^2-1).*x(2)-x(1)];

我也不知道,但是你可以不要那个直接用[ ]表示
发表于 2008-4-25 07:55 | 显示全部楼层
odeset可用可不用的,这个是可选的!
 楼主| 发表于 2008-4-25 10:46 | 显示全部楼层
谢谢你们.   刚才我又试了一下,把hopt=odeset 改为hopt  也可以,但是我还还是不明白,hopt这个参数一定要有吗?这个参数有什么用? 我发现,书上的例子,如果没有附加参数(比如本例的mu)就不用hopt这样的选项,如果有附加参数,就要用hopt这样的选项,是这样吗?    还有hopt这个选项是什么意思?有什么作用?
发表于 2008-4-25 19:29 | 显示全部楼层
可以看一下ode45的帮助文档,有些选项是可以不用管的!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-20 01:03 , Processed in 0.079384 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表