变量分离方程

Logistic 方程 `dy/dx = r y (1-y)`, `r` 为常数.

分离变量, `dy/(y(1-y)) = r dx`,
两边积分, `int (1/y + 1/(1-y)) dy = r x`,
`ln |y/(1-y)| = r x + c_1`,
`y/(1-y) = c_2 "e"^(r x)`,
`y = (1 + c "e"^(-r x))^-1`. 特别地, sigmoid 函数 `sigma(x) = (1+"e"^-x)^-1` 满足 Logistic 方程. Logistic 方程最早出现于人口问题中, 它的图形是一条 S 形曲线. 该函数可用于动画平滑过渡, 或机器学习中的激活函数.

    齐次方程
  1. `dy/dx = f(y/x)`;
  2. `dy/dx = (a_1 x + b_1 y + c_1)/(a_2 x + b_2 y + c_2)`, `|a_1, b_1; a_2, b_2| != 0`.
  1. 令 `y = ux`, 则 `dy = udx + x"d"u`. 原方程化为 `u + x("d"u)/dx = f(u)`. 这是变量分离方程.
  2. 令 `alpha, beta` 是 `{a_1 alpha + b_1 beta + c_1 = 0; a_2 alpha + b_2 beta + c_2 = 0 :}` 的解, 再作代换 `{x = X + alpha; y = Y + beta :}`, 即化为齐次方程.

线性方程

`dy/dx = p(x)y + q(x)`.

先用分离变量法解齐方程 `dy/dx = p(x) y`, 得通解 `y = ce^(int p(x) dx)`, 再利用常数变易法, 设 `c = c(x)` 是 `x` 的函数, 将通解代入原方程比较, 得 `c'(x) = q(x) e^(-int p(x) dx)`, 积分得到 `c(x)` 的表达式.

Bernoulli 方程

`dy/dx = p(x)y + q(x)y^n`, `quad n ge 2`.

显然 `y = 0` 是一个特解. `y != 0` 时, 两边同除以 `y^n`, 得 `y^(-n) dy/dx = p(x) y^(1-n) + q(x)`. 再令 `z = y^(1-n)` 化为线性方程.

恰当微分方程

`M(x, y) dx + N(x, y) dy = 0`.
  1. 如果方程满足 `(del M)/(del y) = (del N)/(del x)`, 此时存在二元函数 `f(x, y)`, 使 `"d"f = M dx + N dy`, 原方程就称为恰当微分方程, 通解为 `f(x, y) = c`.
  2. 若上述条件不满足, 但方程两边同乘以 `mu(x, y)` 后有 `(del(mu M))/(del y) = (del(mu N))/(del x)`, 就称 `mu` 是方程的积分因子.
  3. 若上述的 `mu` 只与 `x` 有关, 即 `(del mu)/(del y) = 0`, 则 `N ("d" mu)/dx = ( (del M)/(del y) - (del N)/(del x) ) mu`, 可以用分离变量法求出 `mu`. 注意验证 `mu = 0` 的情形.

一些常见的全微分 `"d"(xy) = ydx + xdy`,
`"d"(x/y) = (ydx - xdy)/y^2`,
`"d"(x^a y^b) = a x^(a-1) y^b dx + b y^(b-1) x^a dy`.

隐式方程

追赶问题 [来自 知乎] `xOy` 平面上, 兔子从原点出发, 以速度 `a gt 0` 沿 `x` 轴正方向运动, 猎犬从 `(0, 1)` 出发以速度 `b gt a` 追赶兔子, 猎犬的速度方向始终指向兔子, 求猎犬的运动轨迹和相遇时间.

在 `t` 时刻, 兔子的坐标为 `a t`. 设此时猎犬的坐标为 `(x, y)`, 考虑速度的大小和方向, 我们有 `dy/dx = y/(x-a t)`, `quad (dx/dt)^2 + (dy/dt)^2 = b^2`. 第一式化为 `y dx/dy = x - a t`, 两边对 `y` 微分得 `dx/dy + y ("d"^2 x)/dy^2 = dx/dy - a dt/dy`, 即 `y ("d"^2 x)/dy^2 = - a dt/dy`. 第二式两边同乘 `(dt/dy)^2` 得 `(dx/dy)^2 + 1 = b^2 (dt/dy)^2`, 原问题中 `y` 随 `t` 减小, 故 `dt/dy = -1/b sqrt((dx/dy)^2 + 1)`. 代入前式, 得到不显含 `t` 的方程 `y ("d"^2 x)/dy^2 = a/b sqrt((dx/dy)^2 + 1)`. 令 `r = a//b`, `p = dx/dy` 得 `y ("d"p)/dy = r sqrt(p^2+1)`, 分离变量, 解得 `p = sinh(r ln y + c)`. 代入 `t = 0` 时 `x = 0, y = 1, p = 0` 得 `c = 0`, 故 `p = (y^r - y^-r)/2`. 积分得 `x = 1/2((y^(1+r)-1)/(1+r) - (y^(1-r)-1)/(1-r))`. 这就是猎犬的轨迹. 为求相遇时间, 令 `y = 0` 解得 `x = r/(1-r^2)`, 于是 `t = x/a`.

仅求相遇时间: 设二者速度夹角为 `theta`, 0 时刻距离为 `D`. 于是在猎犬方向上, `int_0^T (a cos theta - b) dt = -D`; 又, 在兔子方向上, `int_0^T b cos theta dt = a T`. 两式消去积分项, 解得 `T = (D b)/(b^2-a^2)`.