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 形曲线.
该函数可用于动画平滑过渡, 或机器学习中的激活函数.
先用分离变量法解齐方程 `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)` 的表达式.
显然 `y = 0` 是一个特解. `y != 0` 时, 两边同除以 `y^n`, 得 `y^(-n) dy/dx = p(x) y^(1-n) + q(x)`. 再令 `z = y^(1-n)` 化为线性方程.
一些常见的全微分
`"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)`.