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

Posted 从零开始的智障生活

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验4(延伸) MATLAB与微分方程相关的知识,希望对你有一定的参考价值。

实验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

在这里插入图片描述

四、一阶线性微分方程

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

在这里插入图片描述
在这里插入图片描述

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


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、高阶线性微分方程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、常系数齐次微分方程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

帮助说明:

在这里插入图片描述

在这里插入图片描述

以上是关于实验4(延伸) MATLAB与微分方程的主要内容,如果未能解决你的问题,请参考以下文章

数值分析实验之矩阵的LU分解及在解线性方程组中的应用(MATLAB 代码)

怎么用matlab解方程啊?

数值分析实验之线性方程组的迭代求解(MATLAB实现)

数学实验MATLAB 求解齐次线性方程组

SOR迭代法实验报告c语言,数学实验“线性方程组的J-迭代,GS-迭代,SOR-迭代解法”实验报告(内含matlab程序代码).doc...

Matlab求解常微分问题