24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3142  |  回复: 5

mathsxdg

金虫 (正式写手)

[求助] 如何用MATLAB求解脉冲微分方程并画图

有以下脉冲微分方程,请高手赐教如何用Matlab求解并画图,多谢了!!!
如何用MATLAB求解脉冲微分方程并画图


l: 如何用MATLAB求解脉冲微分方程并画图-1

其中,最后一个式子表示脉冲线l, b0 为一常数。

[ Last edited by mathsxdg on 2013-10-15 at 21:23 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

生命科学
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

niubenhit

金虫 (正式写手)

【答案】应助回帖

你这里 l 是一点吧,可以这样求:
编一个循环
每个循环长度为 l ,在其中求解ode45的方程,然后将解得最后一点作为下一个循环的初值。
即可。

程序:
function draw()
l=10;
x10=1;x20=2;b0=0.2;
for j=1:10
[t,x]=ode45(@test,[(j-1)*l,j*l],[x10,x20]);
[mm,nn]=size(x);
plot(t,x);hold on;
x10=x(nn,1)+(sqrt(3)/2-1)*x(nn,1)-1/2*b0*x(nn,2);
y10=x(nn,2)+1/2*b0*x(nn,1)+(sqrt(3)/2-1)*x(nn,2);
x=[];
t=[];
end
    plot(t,x);
   
function dydt = test(t,x)
%%以下为参数,可修改。
b0=1;
%%以上为参数,可修改。
x1=x(1);x2=x(2);
dydt =[2*x1-x2
    x1+2*x2];
有眼大如天,山高月更阔
2楼2013-10-26 08:21:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

niubenhit

金虫 (正式写手)

引用回帖:
2楼: Originally posted by niubenhit at 2013-10-26 08:21:08
你这里 l 是一点吧,可以这样求:
编一个循环
每个循环长度为 l ,在其中求解ode45的方程,然后将解得最后一点作为下一个循环的初值。
即可。

程序:
function draw()
l=10;
x10=1;x20=2;b0=0.2;
for j=1 ...

没看到最后一行,不好意思,楼主,上面程序有误,删了吧。
有眼大如天,山高月更阔
3楼2013-10-26 08:22:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

niubenhit

金虫 (正式写手)

引用回帖:
3楼: Originally posted by niubenhit at 2013-10-26 08:22:26
没看到最后一行,不好意思,楼主,上面程序有误,删了吧。...

有个想法,可以用定步长R-K差分格式去写,这样脉冲线的位置程序中比较好确定。试一下吧。
有眼大如天,山高月更阔
4楼2013-10-26 08:24:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mathsxdg

金虫 (正式写手)

引用回帖:
4楼: Originally posted by niubenhit at 2013-10-26 08:24:06
有个想法,可以用定步长R-K差分格式去写,这样脉冲线的位置程序中比较好确定。试一下吧。...

多谢您的回复,让您费心了。这是一个状态依赖的脉冲微分方程,脉冲线为一条过原点的半直线。如果您知道如何编写程序,麻烦您再帮我一下,再次感谢!
生命科学
5楼2013-10-26 08:53:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Master121

金虫 (小有名气)

开心就好!

老师您好!这个程序写出来了吗?能否借鉴学习下?
6楼2017-08-25 13:22:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 mathsxdg 的主题更新
信息提示
请填处理意见