「微分」基础微分学习笔记

大概没有什么技术性内容

下面是一些前置知识

隐函数

定义

隐式方程 是形如 f(x_1, x_2, \cdots, x_n) = 0 的方程, 其中 f 是一个多元函数

由上面隐式方程所定义的函数叫做 隐函数, 比如 圆锥曲线

导数

偏导数 是多元函数 f 对于其中一维 x 的导数, 通常表示为 f_x' 或者是 \frac { \partial f } { \partial x }

\partial 可以看作是 \text d 的另一种写法, 用来表示偏导数

全导数 是多元函数 f 的导数, 并非偏向某一维

显然地, 全导数在点 p 存在的条件为此多元函数在 p 某邻域内的各个偏导数存在且偏导函数在该点都连续


下面是一些常用记号

f 的一阶偏导数:

\frac { \partial f } { \partial x } = f _ { x } = \partial _ { x } f

f 的二阶偏导数:

\frac { \partial} { \partial x }\frac { \partial f } { \partial x } = f _ { xx } = \partial _ { xx } f=\frac { \partial^2 f } { \partial x^2 }


下面就是关于多元函数全导数的计算:

对于多元函数 f(a,b)=a\cos b+b\sin a , 现在求这个函数的全导数

先求出 f 关于 a,b 的偏导数

{\partial f\over \partial a}=a\cos b+b\cos a

{\partial f\over \partial b}=-a\sin b+b\sin a

那么考虑 f 关于 a, b 的全导数

关于 a 的全导数

\begin{align}{\text{d} f\over \text{d} a}&={\partial f\over \partial a}+{\partial f\over \partial b}\cdot {\partial b\over \partial a}\\&=a\cos b+b\cos a+(-a\sin b+b\sin a)\cdot{\partial b\over \partial a}\end{align}

若能得到 a,b 的倍数关系, 则有

\begin{align}{b \over a} = k \Rightarrow {\partial b\over \partial a} = k\end{align}

于是

\begin{align}{\text{d} f\over \text{d} a}&={\partial f\over \partial a}+{\partial f\over \partial b}\cdot {\partial b\over \partial a}\\&=a\cos b+b\cos a+(-a\sin b+b\sin a)\cdot{\partial b\over \partial a}\\&=a\cos b+b\cos a+k(-a\sin b+b\sin a)\end{align}

关于 b 的全导数也是如此, 这里就略了

微分方程

微分方程通常分为 常微分方程偏微分方程

微分方程的解 通常 是一类函数

常微分方程

常微分方程 指一微分方程的未知数是单一自变量的函数. 相对于其他微分方程来说是最简单的常微分方程, 通常形式如下:

f \left( x , \frac { \text d ^ { n } y } { \text d x ^ { n } } , \frac { \text d ^ { ( n - 1 ) } y } { \text d x ^ { ( n - 1 ) } } , \cdots , \frac { \text d y } { \text d x } , y \right) = 0

f 是一个多元函数, y 是第一个仅关于 x 的函数

这里来简单介绍一个基础物理模型: 重力作用之下单摆的运动, 容易写出微分方程:

\frac {\text d ^ { 2 } \theta } {\text d t ^ { 2 } }(t_0) = - \frac { g } { L } \sin ( \theta ( t_0 ) )

其中 L 为单摆的长度, g 为重力加速度. 为了保证切合实际, 我们加入与速度相关的阻力 \mu :

\frac {\text d ^ { 2 } \theta } {\text d t ^ { 2 } }(t_0) = { - \mu } \frac {\text d \theta } {\text d t }(t_0) - \frac { g } { L } \sin ( \theta ( t_0 ) )

这就是一个经典的非线性微分方程的例子, 但是由于作者不会解这个方程, 所以关于求解它咕了

这里放一下 3b1b 上数值求解的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import numpy as np

g = 9.8 # Gravity acceleration
L = 2 # Length of single pendulum
mu = 0.1 # resistance

# The initial value
THETA_0 = np.pi / 3
THETA_DOT_0 = 0

# calc
def calc_double_dot (theta, theta_dot):
return -mu * theta_dot - (g / L) * np.sin(theta)

def Theta (t):
# initialization
theta = THETA_0
theta_dot = THETA_DOT_0
delta_t = 0.01 # Step size

for time in np.arange(0, t, delta_t):
theta_double_dot = calc_double_dot(theta, theta_dot)
theta += theta_dot * delta_t
theta_dot += theta_double_dot * delta_t

return theta

time = 100
print(Theta(time))

偏微分方程

偏微分方程 是指含有未知 多元 函数及其偏导函数的方程, 通常分为 线性偏微分方程非线性偏微分方程

下面是一个例子:

<热传导方程> 各向同性介质中的热传导

先考虑一维的情况, 令 T(x,t) 表示 t x 的温度, 可以简单得出关于 T 的微分方程:

\frac { \partial T } { \partial t } (x,t) = \mu \left( \frac { \partial ^ { 2 } T } { \partial x ^ { 2 } }(x,t)\right)

其中 \mu 表示是 热扩散率 ,受材料的热传导率、密度与热容的影响. 也就是考虑扩展到高维情况, 比如对于一个三维物体 \Omega , 有

\frac { \partial T } { \partial t } = k \left( \frac { \partial ^ { 2 } T } { \partial x ^ { 2 } } + \frac { \partial ^ { 2 } T } { \partial y ^ { 2 } } + \frac { \partial ^ { 2 } T } { \partial z ^ { 2 } } \right)

这里的 T 是一个四元函数 T(t,x,y,z) , 后面的三个参数代表一个三维中的坐标 (x, y, z) , 第一个参数 t 则仍然代表时间

这是一个拉普拉斯算子的形式(拉普拉斯算子出现描述许多物理现象的微分方程里), 将其写成拉普拉斯算子版:

\frac { \partial T } { \partial t } = k \nabla ^ { 2 }T


未完待续

坚持原创技术分享,您的支持将鼓励我继续创作!