matlab 求解二阶微分方程并画出y与t函数曲线

 我来答
PeriShare
2019-03-20 · 分享PD理论最新研究成果和进展
PeriShare
采纳数:2408 获赞数:36827

向TA提问 私信TA
展开全部

你好,求解这个方程的一般步骤用ode45。

代码如下

clc;clear

m = 0.00267;    alpha = 4e-6;

beta = 1e-6;    U = 90;

k = 0.5;        p = 19.5216;

A = 0.001256;

dy=@(t, x, m, alpha, beta, U, k, p, A)[x(2);...

m^(-1)*(-(k+1/beta)*x(1)+alpha*U/beta-p*A)];

[t,x] = ode45(@(t,x)dy(t, x, m, alpha, beta, U, k, p, A),[0,1e-3],[0,0]);

subplot(1,2,1)

plot(t,x(:,1))

xlabel('$$t$$','interpreter','latex','fontsize',16);

ylabel('$$y$$','interpreter','latex','fontsize',16)

subplot(1,2,2)

plot(t,x(:,2))

xlabel('$$t$$','interpreter','latex','fontsize',16);

ylabel('$$y''$$','interpreter','latex','fontsize',16);

lhmhz
高粉答主

2019-03-20 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17014

向TA提问 私信TA
展开全部

用matlab 求解二阶微分方程并画出y与t函数曲线,可以用dsolve函数和plot函数来实现。

给出的二阶微分方程存在着几个疑点:1、表达式中的z是否是笔误,还是y。如是z,其表达式是什么?2、求解二阶微分方程的数值解,必须有两个初始条件,本题只有一个。

下列代码中,z按y来处理,增加初始条件y'(0)=0

>> m=0.00267;k=0.5;b=0.000001;a=0.000004;U=90;p=-19.5216;A=0.001256;

>> syms y(t)

>> Dy=diff(y,1);D2y=diff(y,2);

>> y=dsolve(m*D2y+(k+1/b)*y==a/b*U-p*A,y(0)==0,Dy(0)==0);

>> t=0:0.1:20;

>> y=eval(y);

>> plot(t,y)

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式