飞道的博客

实验4(延伸) MATLAB与微分方程

333人阅读  评论(0)

实验4(延伸) MATLAB与微分方程

由于 实验4 的导弹飞机追击问题需要用到,微分方程的概念,但MATLAB更偏向于离散型概念理解,直接应用并理解比较困难,所以这里单独将微分方程概念抽出来。本文将着重阐述微分方程的概念以及常见应用。关于解微分方程的 MATLAB 命令介绍在本文最下面。

一、微分方程的基本概念



% 初值条件:微分方程过点(1,2)
% 方程建立:任一点(x,y)处的切线的斜率为2x
clear;close all;clc;
syms f(x);
eqn=diff(f,x)==2*x;
cond=f(1)==2;
dsolve(eqn,cond);
disp(ans);% 输出 1 + x^2

% 2. 方程建立:加速度:(ds/dt)/dt=-0.4,本体是利用微分方程的特性求解
% 利用初值条件求s特解,能不能直接在dsolve中加上两个特解去解啊?能
clear;close all;clc;
syms s(t);
eqna=diff(s,t,2)==-0.4; % 基于要求的通解,先建立一个微分方程;但注意这是二阶,一般需要两个初值条件
v=diff(s,t); % 再基于要求的通解,建立一个相关函数,这里是v,目的是给第二个初值条件创建函数
cond=[s(0)==0,v(0)==20]; % 一个初值条件是通解来的,一个条件是上面v给的。
s=dsolve(eqna,cond);% 获取s特解
disp(s);
% 车量停止的速率v=0;即diff(s,t)==0,解出t,
eqnv=diff(s,t)==0;
tend=solve(eqnv,t);
% 当车量停止的时刻是tend,代入s(t),得出结果,符号函数要用命令eval;
t=tend;
fprintf("制动结束时间:%.2fs,制动距离:%.2fm\n",tend,eval(s));

二、可分离变量的微分方程

这一节我们讨论一阶微分方程。

>> syms y(x);
>> eqn=diff(y,x)==2*x*y;
>> y=dsolve(eqn);
>> y
y = C6*exp(x^2)

>> syms M(t) r M0;
>> eqn=diff(M,t)==-r*M;
>> cond=M(0)==M0;
>> M=dsolve(eqn,cond);
>> disp(M);
M0*exp(-r*t)

clear;close all;clc;
syms m g k v(t)
eqn=diff(v,t)==g-k*v/m;
cond=v(0)==0;
v=dsolve(eqn,cond);
disp(v); % 输出:(g*m - g*m*exp(-(k*t)/m))/k

三、齐次方程

这一节我们导论一阶微分方程。

clear;close all;clc;
syms y(x) ;
eqn=diff(y,x)==y^2/(x*y-x^2);
y=dsolve(eqn);
disp(y);


clear;close all;clc;
syms y(x);
eqn=diff(y,x)==y/(sqrt(x^2+y^2)+x);
dsolve(eqn);
fprintf("以y为因变量,x为自变量:\n");
disp(ans);
% 以y为因变量,x为自变量:
%                        0 这个是当y=0%  (C20*(C20 + 2*x))^(1/2) 这个与结果是一样的 y>0
% -(C20*(C20 + 2*x))^(1/2) 这个与结果是相反数的,因为y<0是人为规定的
%                     x*1i 这个结果是虚数
%                    -x*1i 这个结果是虚数
syms x(y);
eqn=diff(x,y)==(sqrt(x^2+y^2)+x)/y;
dsolve(eqn);
fprintf("以x为因变量,y为自变量:\n");
disp(ans);
% 以x为因变量,y为自变量:
% ((C22^2*y^2)/4 - 1)/C22
%                    y*1i
%                   -y*1i

四、一阶线性微分方程

这一节我们讨论一阶微分方程。


五、可降阶的高阶微分方程





六、高阶线性微分方程







七、常系数齐次微分方程






八、常系数非齐次线性微分方程



九、常系数线性微分方程组解法举例

帮助说明:


转载:https://blog.csdn.net/qq_34028001/article/details/117221745
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场