有关matlab解二阶微分方程

有关matlab解二阶微分方程图片是要求的微分方程,,下面是我写的程序,运行的时候说未定义x。该怎么改呢?functionydot=DyDt(t,y)a=0.04;b=1... 有关matlab解二阶微分方程图片是要求的微分方程,,下面是我写的程序,运行的时候说未定义x。该怎么改呢?

function ydot=DyDt(t,y)
a=0.04;
b=1;
c=0.15;
u=0.2;
v=0.2;
y(1)=x;
y(2)=dxdt;
ydot=[y(2);-a*y(2)-b*y(1)-c*y(1)^3+u*cos(0.01*t)+v*cos(0.02*t)];
end
展开
 我来答
lhmhz
高粉答主

2018-06-21 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16989

向TA提问 私信TA
展开全部

你的问题错就错在,y(1)=x;   y(2)=dxdt; 这两句上,而且是多余的。去掉后,用ode45()求解可以运行得到其数值解。


更多追问追答
追问
能给我那个具体的程序吗?非常感谢🙏因为我matlab 不太熟练
追答

x0=[0,0];

[t,x]=ode45(@odefun,[0 10],x0)

plot(t,x),grid on

legend('x(t)','dx/dt') 

xlabel('t'),ylabel({'x(t)','dx/dt'})

function ydot=odefun(t,x)

a=0.04;b=1;c=0.15;u=0.2;v=0.2;

ydot=[x(2);-delta*x(2)-alpha*x(1)-beta*x(1)^3+u*cos(0.01*t)+v*cos(0.02*t)];

end

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式