如何用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.1; y1=eval(y)
t=0.2; y2=eval(y)
==============================================================
t0=[1;0];tspan=[0,20];
[t1,y1]=ode45(@ ode_fun,tspan,t0);
disp('t y dy')
for i=1:3
t=double(t1(i));y=double(y1(i,1));dy=double(y1(i,2));
disp([num2str(t),' ',num2str(y),' ',num2str(dy)])
end
function f = ode_fun(t,y) %自定义的微分方程函数,文件名,ode_fun.m
f=[y(2);-0.5*y(2)-2*y(1)];
end
==============================================================
运行结果
如何用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] = ...
如何用matlab求解二阶微分方程,以及程序实例
1、对于解析值,你可以用dsolve()函数求解。如求微分方程x*y''+x﹡(y')^2-y'=0的解析解 >> syms y(x)>>Dy = diff(y);D2y = diff(y, 2);>>dsolve(x*D2y+x*(Dy)^2-Dy==0,'x')运行结果 2、对于数值解,你可以查看二阶常微分方程这个例子,https:\/\/zhidao.baidu.com\/ques...
如何用matlab求二阶微分方程?
第一步、分析微分方程的特点确定模块 我们将y"+4y'+4y=cos2t方程改写成y"=cos2t-4y'-4y,从右边可知,式子是由cos2t外加载信号,一阶导数项和一次变量组成。所以我们,可以用下列功能模块来搭建其仿真模型 cos2t:使用Fcn模块和Clock模块;y':使用lntegrator模块;y':使用lntegrator模块;-4:...
如何用matlab求解一个二阶常系数微分方程组
第一种方法:利用dsolve函数求微分方程的符号解(通解):对于一些不是很难,要求出通解的微分方程,用dsolve函数求解。1、 打开Matlab软件-->点击新建脚本菜单,新建一个脚本文件用于编写微分方程求解程序。2、 输入微分方程求解程序-->点击保存-->点击运行。3、在matlab的命令窗口即可看到求解结果,是...
如何用matlab求解一个二阶常系数微分方程组
一、理论解,用dsolve函数(在command window 中输入doc dsolve可以查看帮助)示例:代码:[x,y]=dsolve('D2x+2*Dx=x+2*y-exp(-t)','Dy=4*x+3*y+4*exp(-t)')二、数值解,用ode45,或ode23, ode15s其他函数。(在command window 中输入doc ode45可以查看帮助)示例:1. 建立M文件 func...
如何用matlab求二阶微分方程的图像解
如何用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...
如何用matlab求解一个二阶常系数微分方程组
用命令:dsolve('S','s1','s2',…,'x')其中S 为方程s1,s1,s3,…为初始条件x 为自变量方程S 中用D 表示求导 数D2,D3,…表示二阶三阶等高阶导数初始条件缺省时给出带任意常数 C1,C2,..的通解自变量缺省值为t 也可求解微分方程组 例 1、dsolve('Dy=1+y^2')结果ans =tan(t+C1)2...
二阶微分方程组的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:利用Simulink求解二阶微分方程?
如何利用matlab的Simulink求解二阶微分方程?求解步骤如下:1、打开Simulink的模块库 (1)选择Commonly User Blocks打开常用模块插入Integrator模块,插入Mux模块,插入Out1模块;(2)选择User-defined Functions打开自定义函数模块插入Fcn模块 2、根据运算流程,画连接线 3、在Integrator模块中,设置y'(0),y...
MATLAB怎样用simulink求解解二阶微分方程d2x\/dt2-u*(1-x^2)*dx\/dt+...
clear;clc [t,x]=ode45(@(t,x)[x(2);(1-x(1)^2)*x(2)-x(1)],[0 10],[1 0]);plot(t,x(:,1))例:把你要积分的函数编写出来 function dy = rigid(t,y)dy = zeros(3,1); % a column vector dy(1) = y(2) * y(3);dy(2) = -y(1) * y(3);dy(3) = ...