常微分方程

许志军

目录

  • 1 第一章 绪论
    • 1.1 常微分方程模型
    • 1.2 常微分方程基本概念
  • 2 第二章 一阶微分方程的初等解法
    • 2.1 分离变量法
    • 2.2 常数变易法
    • 2.3 积分因子法
    • 2.4 一阶隐式方程求解法
  • 3 第三章 一阶微分方程的解的存在定理
    • 3.1 解的存在唯一性定理与逐步逼近法
      • 3.1.1 存在唯一性定理的证明
      • 3.1.2 近似计算与误差估计
    • 3.2 解的延拓
    • 3.3 解对初值的连续性和可微性定理
      • 3.3.1 解关于初值的对称性
      • 3.3.2 解对初值的连续依赖性
      • 3.3.3 解对初值的可微性
  • 4 第四章 高阶微分方程
    • 4.1 线性微分方程的一般理论
      • 4.1.1 引言
      • 4.1.2 齐次线性微分方程的解的性质与结构
      • 4.1.3 非齐次线性微分方程与常变易法
    • 4.2 常系数线性微分方程的解法
      • 4.2.1 复值函数与复值解
      • 4.2.2 常系数齐次线性微分方程
      • 4.2.3 欧拉方程
      • 4.2.4 非齐次线性微分方程-比较系数法
      • 4.2.5 拉普拉斯变换法
    • 4.3 高阶微分方程的降阶和幂级数解法
      • 4.3.1 可降阶的一些方程类型
      • 4.3.2 二阶线性微分方程的幂级数解法
  • 5 第五章 线性微分方程组
    • 5.1 存在唯一性定理
      • 5.1.1 记号和定义
      • 5.1.2 存在唯一性定理
    • 5.2 线性微分方程组的一般理论
      • 5.2.1 齐次线性微分方程组
      • 5.2.2 非齐次线性微分方程组
    • 5.3 常系数线性微分方程组
      • 5.3.1 矩阵指数expA的定义和性质
      • 5.3.2 基解矩阵的计算公式
      • 5.3.3 拉普拉斯变换的应用
  • 6 附录 线性代数基础知识
    • 6.1 线性代数01
    • 6.2 线性代数02
    • 6.3 线性代数03
    • 6.4 线性代数04
    • 6.5 线性代数05
  • 7 课程特色1:快速学懂常微分方程
    • 7.1 1. 常微分方程主要内容
    • 7.2 2. 考研中的常微分方程
    • 7.3 2018年《常微分方程》试卷讲解
    • 7.4 2020年《常微分方程》试卷讲解
  • 8 课程特色2:常微分方程的软件求解
    • 8.1 Matlab基础
    • 8.2 Matlab求解常微分方程的符号解
    • 8.3 Matlab求解常微分方程的数值解
    • 8.4 Matlab编程求解常微分方程
  • 9 课程特色3:常微分方程在数学建模中的应用
    • 9.1 追击问题
追击问题

Matlab程序代码

%%
clear;clc;
y = dsolve('D2y = sqrt(1+(Dy)^2) / (2*(1-x))', 'y(0) = 0, Dy(0)=0', 'x')

%%
clear;clc;
syms y(x)
Dy = diff(y);
dsolve(diff(y, 2) == sqrt(1+Dy^2) / (2*(1-x)), y(0) == 0, Dy(0) == 0)

%%
clear; clc;
[x,y] = ode23(@(x,y)[y(2); sqrt(1+y(2)^2)./(2*(1-x))],[0 0.99999],[0; 0]);
plot(x, y(:,1), '-o')

%%
clear; clc; close all;
v0 = 0.42 / 60;
v1=2 * v0;
dt = 0.05;
k = 0;
t = 0;
p = [0 0];
q = [1,0];
h = plot([0;1],[0;0],'.');
axis square;
axis([-0.5,1.5,0,1]);
while 1-p(1) > 1e-10
    n = (q - p) / norm( q - p );
    k = k + 1;
    t = t + dt;
    q = [1 v0*t];
    u(k) = 1;
    v(k) = q(2);
    p = p + v1 * dt * n;
    x(k) = p(1);
    y(k) = p(2);
    set(h,'xdata',[x';u'],'ydata',[y';v']); drawnow;
end