heyong2002 发表于 2006-2-27 16:27

用matlab怎样求分段二阶线性微分方程,并画出相图

请问各位高手,用matlab怎样求分段 二阶线性微分方程,并画出相图

分段积分求相图

heyong2002 发表于 2006-2-27 16:33

公式dx(dx/dt)/dt + f(x)=0.1cos0.5t.其中f(x)分段线性

heyong2002 发表于 2006-2-27 16:35

x>=1时.f(x)=x-1
-1<x<1.f(x)=0
x<=-1.f(x)=x+1

heyong2002 发表于 2006-2-27 16:42

请问各位高手,用matlab怎样求分段 二阶线性微分方程,并画出相图
分段积分求相图公式
dx(dx/dt)/dt + f(x)=0.1cos0.5t.其中f(x)分段线性
x>=1时.f(x)=x-1
-1<x<1.f(x)=0
x<=-1.f(x)=x+1

happy 发表于 2006-2-27 19:33

ode系列就能求解
画相图之用输出求解结果dx/dt 和 x,然后plot

heyong2002 发表于 2006-2-27 21:07

但是每段x的初值不一样.x的取值也不同呀.
你的意思是不是对每个方程用一次ode

happy 发表于 2006-2-28 09:07

这个函数不是可以直接表示出来吗?

heyong2002 发表于 2006-2-28 18:53

高手,能不能把你的程序给我侃看看,参考

happy 发表于 2006-3-2 08:52

function dy = fun1(t,y)
dy=zeros(2,1);
dy(1)=y(2);
dyy(y(1)>=1)=0.1*cos(0.5*t)-y(1)+1;
dyy(y(1)<1&y(1)>-1)=0.1*cos(0.5*t);
dyy(y(1)<=-1)=0.1*cos(0.5*t)-y(1)-1;
dy(2)=dyy;

= ode45(@fun1,,);
plot(Y(:,1),Y(:,2))

大概是这样,不一定对,没有仔细检查,你自己好好检查一下吧
页: [1]
查看完整版本: 用matlab怎样求分段二阶线性微分方程,并画出相图