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

如题所述

你好,求解这个方程的一般步骤用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);

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-20

用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)

本回答被提问者采纳

matlab 求解二阶微分方程并画出y与t函数曲线
[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)...

matlab:利用Simulink求解二阶微分方程?
1、打开Simulink的模块库 (1)选择Commonly User Blocks打开常用模块插入Integrator模块,插入Mux模块,插入Out1模块;(2)选择User-defined Functions打开自定义函数模块插入Fcn模块 2、根据运算流程,画连接线 3、在Integrator模块中,设置y'(0),y(0)的初始值 4、在Fcn模块中,输入微分方程的关系式,...

如何用matlab求二阶微分方程的图像解
1、自定义二阶微分方程函数,ode_fun(t,y),其格式 function dy=ode_fun(t,y)dy=[y(2);sin(y(1))\/(-0.02)-0.04*t];2、利用ode45函数求解[t,y]值 y0=[0.2,2.6];tspan=[0,10];[t,y]=ode45(@ode_fun,tspan,y0)3、利用plot函数绘出二阶微分方程的图像解 polt(t,y)xlab...

matlab二阶微分方程求解及画图
参考代码:m=10600; k=31986497; c=8.9E4;dy = @(t,y)[y(2); (k*y(1)-c*y(2)\/abs(y(2))*y(2)^2)\/m];ode45(dy,[0 5],[0 3.66])其中,蓝线为x,绿线为x'。

二阶微分方程组的MATLAB解法
一个二阶微分方程:y''+y'+y=sin(t)初始条件为y(0)=5,y'(0)=6。过程:先降阶为一阶微分方程组 y'=z z'=-z-y+sin(t)编制如下函数m文件 function dy=weifen(t,x)dy=zeros(2,1);y=x(1)z=x(2)dy(1)=x(2);dy(2)=sin(t)-x(2)-x(1);然后用ode45解方程 [t,y]=...

如何用matlab求二阶微分方程?
今以 y"+4y'+4y=cos2t(0≤t≤10),y(0)=1,y'(0)=-2 二阶微分方程为例,用Simulink求解的步骤如下:第一步、分析微分方程的特点确定模块 我们将y"+4y'+4y=cos2t方程改写成y"=cos2t-4y'-4y,从右边可知,式子是由cos2t外加载信号,一阶导数项和一次变量组成。所以我们,可以用下列...

急求:用matlab解二阶微分方程(真的很急)
10]是求解的时间范围,[0 1]是初始条件(0是θ的初值,1是dθ\/dt的初值),具体数值请根据自己的实际情况设置。上面的代码会直接把求解结果绘制成曲线,如果希望得到数据自行绘图,最后一句可改为 [t,y] = ode45(dy,[0 10],[0 1]);得到的t为时间,y(:,1)为θ,y(:,2)是dθ\/dt。

如何用matlab求解二阶微分方程,以及程序实例
如何用matlab求解二阶微分方程,对于一般的微分方程(组)可以用dsolve()函数求得其解析解或数值解,对于较复杂的微分方程(组)可以用ode45()函数求得其数值解。例如:微分方程,用dsolve和ode45计算t=0.1,0.2时y的值。y = dsolve('D2y+0.5*Dy+2*y =0','Dy(0)=0,y(0)=1')t=0....

matlab如何求解微分方程并画图的呢?
如何用matlab求解微分方程并画图,可以先用dsolve()或ode()求出其微分方程(组)的解析解或数值解,然后用plot()绘制其图形。例如:解微分方程 y'=y-2t\/y,y(0)=1,0<t<4 1、用dsolve()求解,代码及结果如下 2、用ode45()求解,代码及结果如下 3、当然喽,使用dsolve()或ode(...

如何用matlab求解二阶微分方程,以及程序实例
1、对于求数值解的微分方程,你可以用ode45()函数求解。如求下列微分方程 func。m %自定义微分方程的函数 function z = func(t,y)z =[y(2);(1-y(1)^2)*y(2)-y(1)];main。m %主程序 clear all;close all;clc y0 = [0.25;0];h = 0.1;a = 0;b = 20;[t1 y1] = ...

相似回答