分离变量

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 :}`, 即化为齐次方程.

线性方程

    线性方程, 是指方程中未知函数 `y` 及其各阶导数的次数都是一次, 形如 `sum_(k=0)^n a_k(x) y^((k))(x) = f(x)`. 方程右边的 `f(x)` 是一已知函数. 此时我们也说 `f` 是 `y` 及其各阶导数的线性组合.
  1. `n` 称为方程的阶数;
  2. `f(x) -= 0` 时, 方程称为齐次的. 齐次线性方程有平凡解 `y = 0`;
  3. 如果各 `a_k` 都是常数, 方程称为常系数的.

一阶线性方程

一阶线性方程 `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)` 化为线性方程.

  1. `x dd y x = x "e"^y - 2` (`x gt 0`);
  2. `dd y x = tan x(tan y + sec x sec y)`;
  3. `dd y x = x sin^2 y + 1/2 sin 2 y`;
  1. 方程写为 `"e"^y dd y x = "e"^(2 y) - 2/x "e"^y`. 换元 `u = "e"^y` 化为 Bernoulli 方程.
  2. 两边同乘 `cos y` 得 `cos y dd y x = tan x (sin y + sec x)` 换元 `u = sin y`, 即可化为线性方程.
  3. 两边同除以 `cos^2 y` 得 `sec^2 y dd y x = x tan^2 y + tan y`. 方程左边即 `"d"/dx (tan y)`. 接下来换元 `u = tan y` 即可化为 Bernoulli 方程.

我们将在下一章深入研究各种线性方程的解法.

积分因子

恰当微分方程 `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`.

参数解

`x ( dd y x )^3 = 1 + dd y x`.

[deepseek] 该方程不显含 `y`, 可令 `t = dd y x`, 化为 `t` 的三次方程 `x t^3 = 1 + t`.
这个方程不易求解, 但可以将 `x` 表为 `t` 的函数 `x = t^-2 + t^-3`, 从而 `dd x t = -2 t^-3 -3 t^-4`. 于是 `dy/dt = dy/dx dx/dt = -2 t^-2 -3 t^-3`,
`y = 2 t^-1 + 3/2 t^-2 + c`.
方程的参数解为 `{ x = t^-2 + t^-3; y = 2 t^-1 + 3/2 t^-2 + c; :}`

幂级数解

`y = sum_(n=0)^oo a_n x^n`,
`y' = sum_(n=1)^oo n a_n x^(n-1) = sum_(n=0)^oo (n+1) a_(n+1) x^n`,
`y^((k)) = sum_(n=k)^oo n(n-1)cdots(n-k+1) a_n x^(n-k)` `= sum_(n=0)^oo (n+k)cdots(n+2)(n+1) a_(n+k) x^n`
代入方程并比较系数, 注意幂级数的收敛半径.

隐式方程

指不显含自变量的方程.

悬链线 一根质地均匀的绳索悬挂在两个固定点间, 自然静止下垂, 求绳索方程.

  1. 列方程. 假设绳索的线密度为 `rho`, 最低点为 `P`, 让 `y` 轴经过 `P` 点. 考虑绳索在点 `A` 处的张力, 其水平分量与 `P` 处的张力相等, 竖直分量与 `P` 到 `A` 之间绳索的重力相等: `T_"水平" = "常数"`,
    `T_"竖直" = rho int_0^(x_A) sqrt(1+(dy/dx)^2) dx`,
    但张力沿着绳索方向, 所以 `T_"竖直" / T_"水平" = dy/dx`, 得到方程: `dy/dx = a int_0^(x_A) sqrt(1 + (dy/dx)^2) dx`, `quad` 其中 `a = rho // T_"水平"`. 两边对 `x` 微分得到: `dd^2 y x = a sqrt(1 + (dy/dx)^2)`.
  2. 解方程. 令 `p = dy/dx`, 方程化为 `dd p x = a sqrt(1 + p^2)`. 分离变量解得 `a x = ln(p + sqrt(1+p^2)) + c_1`. 代入初值 `x = 0`, `p = 0` 得到 `c_1 = 0`. 于是 `p = sinh(a x)`, 再次积分得到 `y = a cosh(a x) + c_2`. 由于建立坐标系时没有指定 `P` 点的纵坐标, 所以结果带有任意常数 `c_2`.

曳物线 水平面上, 在 `t = 0` 时刻, 点 `P` 位于原点, 点 `A` 位于 `(a, 0)`, `a gt 0`, 两点间以一条轻绳连接. 现在 `P` 向北作直线运动, 绳子拉动点 `A` 一起运动, 假设绳子全程保持拉紧, 求 `A` 的轨迹.

  1. 列方程. 绳子的方向就是 `A` 轨迹的切线方向, 且 `A` 到 `y` 轴之间的切线长是定值 `a`. 根据这些条件列出方程 `x sqrt(1 + (dy/dx)^2) = a`.
  2. 解方程. 以 `s` 表示点 `A` 的路程, 有 `dd s x = -a/x`, 积分得 `x = a "e"^(-s//a)`. 参数方程??: `{x = a//cosh t; y = a(t - tanh t):}`.

追赶问题 [知乎] `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)`.