24小时热门版块排行榜    

CyRhmU.jpeg
查看: 743  |  回复: 14
当前主题已经存档。

monitor2885

至尊木虫 (职业作家)

队长

[交流] 【求助】简单的ode45函数参数

function dydt=ivpodefun(t,y,u)
a=[1;2;3;4;5];b=[6;7;8;9;10];
for i=1:1:5
u1((i-1)*2<=t & t<=2*i)=a(i);
u2((i-1)*2<=t & t<=2*i)=b(i);
end
plot(t,u1);hold on
plot(t,u2);hold off
dydt=zeros(2,1);
dydt(1)=u2*y(2);
dydt(2)=u1*(1-y(1)^2)*y(2)-y(1);

命令窗口输入
t=0:10;
[t,y]=ode45(@ivpodefun,t,[0 2]);
plot(t,y)
似乎结果没错,u1和u2在计算过程中的确取到了不同值,但是为什么它俩打印不出来呢?只有一个点。我需要这两个参数显示出来,在workspace也没有显示。谢谢
回复此楼
Retirement
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

。。。。。。。。。。。。。。

[ Last edited by change0618 on 2009-10-12 at 18:47 ]
2楼2009-10-12 18:40:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

刚弄明白你啥意思
3楼2009-10-12 18:52:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

★ ★ ★ ★ ★ ★
monitor2885(金币+6,VIP+0):分成2个图就死机了,怎么回事 10-12 20:16
function test
t=0:10;
[t,y]=ode45(@ivpodefun,t,[0 2]);
figure(2)
plot(t,y,'bo-')
function dydt=ivpodefun(t,y,u)
a=[1;2;3;4;5];b=[6;7;8;9;10];
for i=1:1:5
u1((i-1)*2<=t & t<=2*i)=a(i);
u2((i-1)*2<=t & t<=2*i)=b(i);
end
figure(1)
plot(t,u1,'ro');hold on
plot(t,u2,'b^');
xlim([0 10])
ylim([0 10])
dydt=zeros(2,1);
dydt(1)=u2*y(2);
dydt(2)=u1*(1-y(1)^2)*y(2)-y(1);

[ Last edited by change0618 on 2009-10-12 at 19:18 ]
4楼2009-10-12 19:15:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

for i=1:1:5
u1((i-1)*2<=t & t<=2*i)=a(i);
u2((i-1)*2<=t & t<=2*i)=b(i);
end

好像你这两句不正常
5楼2009-10-12 19:32:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

monitor2885

至尊木虫 (职业作家)

队长

figure(1)
plot(t,u1,'ro');hold on
figure(2)
plot(t,u2,'b^');hold on
其他程序不变,怎么死机了呢
Retirement
6楼2009-10-12 20:16:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

★ ★
monitor2885(金币+2,VIP+0):u1和u2的括号里面是个判断语句,没错呀,用if语句改写太麻烦了吧 10-12 21:20
那不是死机,那是在不断在figure1与figure2之间绘图刷屏,等它在[0 10]区间运行完就好了。所以我觉得你的那个u1,u2赋值有点不正常
7楼2009-10-12 20:29:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

monitor2885

至尊木虫 (职业作家)

队长

u1和u2的括号里面是个判断语句,没错呀,用if语句改写太麻烦了吧
Retirement
8楼2009-10-12 21:20:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

★ ★
kuhailangyu(金币+2,VIP+0):欢迎积极参与 10-12 22:13
for i=1:1:5
    (i-1)*2<=t & t<=2*i
    u1((i-1)*2<=t & t<=2*i)=a(i)
    u2((i-1)*2<=t & t<=2*i)=b(i)
end
pause
clc

你可以逐步的看一下结果是不是你想象中的那样
9楼2009-10-12 21:45:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

change0618

铁杆木虫 (著名写手)

方丈大师

★ ★ ★
monitor2885(金币+2,VIP+0):还是刷屏呀,怎么办 10-12 23:18
monitor2885(金币+1,VIP+0): 10-13 20:03
for i=1:5
    if (i-1)*2<=t && t<=2*i
        u1=a(i);
        u2=b(i);
    end
end
10楼2009-10-12 22:30:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 monitor2885 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见