从二阶导数到平面波

1. 二阶导数

为方便起见,以下均用偏微分方式表示。
函数 f ( x ) f(x) f(x)在点 x − Δ x x - \Delta x xΔx的导数为
∂ f ( x − Δ x ) ∂ x = f ( x ) − f ( x − Δ x ) Δ x (1) \frac{\partial f(x - \Delta x)}{\partial x} = \frac{f(x) - f(x - \Delta x)}{\Delta x} \tag{1} xf(xΔx)=Δxf(x)f(xΔx)(1)
函数 f ( x ) f(x) f(x)在点 x x x的导数为
∂ f ( x ) ∂ x = f ( x + Δ x ) − f ( x ) Δ x (2) \frac{\partial f(x)}{\partial x} = \frac{f(x + \Delta x) - f(x)}{\Delta x} \tag{2} xf(x)=Δxf(x+Δx)f(x)(2)
由于函数 f ( x ) f(x) f(x)经过 Δ x \Delta x Δx后进行了上述改变,所以它在 x x x的二阶导数为
∂ f 2 ( x ) ∂ x 2 = ∂ f ( x ) ∂ x − ∂ f ( x − Δ x ) ∂ x Δ x = f ( x − Δ x ) + f ( x + Δ x ) − 2 f ( x ) Δ x 2 (3) \frac{\partial f^2(x)}{\partial x^2} = \frac{\frac{\partial f(x)}{\partial x} - \frac{\partial f(x - \Delta x)}{\partial x} }{\Delta x} = \frac{f(x - \Delta x) + f(x + \Delta x) - 2 f(x)}{\Delta x^2} \tag{3} x2f2(x)=Δxxf(x)xf(xΔx)=Δx2f(xΔx)+f(x+Δx)2f(x)(3)
上述所有式子,需要 Δ x → 0 + \Delta x \rightarrow 0^+ Δx0+,但实际数据无法达到要求。

2. 有限差分

将(3)式的 Δ x \Delta x Δx替换为 h h h,可得
∂ f 2 ( x ) ∂ x 2 ≈ f ( x − h ) + f ( x + h ) − 2 f ( x ) h 2 (4) \frac{\partial f^2(x)}{\partial x^2} \approx \frac{f(x - h) + f(x + h) - 2 f(x)}{h^2} \tag{4} x2f2(x)h2f(xh)+f(x+h)2f(x)(4)
这里只能使用约等于。
由于 h h h不是太靠近0,我们希望用多个邻域的值进行计算。因此,我们将(4)式扩展为
∂ f 2 ( x ) ∂ x 2 ≈ f ( x − j h ) + f ( x + j h ) − 2 f ( x ) ( j h ) 2 (5) \frac{\partial f^2(x)}{\partial x^2} \approx \frac{f(x - jh) + f(x + jh) - 2 f(x)}{(jh)^2} \tag{5} x2f2(x)(jh)2f(xjh)+f(x+jh)2f(x)(5)
其中 j = 1 , 2 , … , m j = 1, 2, \dots, m j=1,2,,m.
进一步引入 C = ( c 1 , … , c m ) \mathbf{C} = (c_1, \dots, c_m) C=(c1,,cm), 其中
0 ≤ c j ≤ 1 , ∑ j = 1 m c j = 1 (6) 0 \leq c_j \leq 1, \sum_{j = 1}^m c_j = 1 \tag{6} 0cj1,j=1mcj=1(6)
c j c_j cj乘入(5)式的左右,可得:
c j ∂ f 2 ( x ) ∂ x 2 ≈ c j f ( x − j h ) + f ( x + j h ) − 2 f ( x ) ( j h ) 2 (7) c_j \frac{\partial f^2(x)}{\partial x^2} \approx c_j \frac{f(x - jh) + f(x + jh) - 2 f(x)}{(jh)^2} \tag{7} cjx2f2(x)cj(jh)2f(xjh)+f(x+jh)2f(x)(7)
取不同的 c j c_j cj且累加(6)式,可得
∂ f 2 ( x ) ∂ x 2 ≈ ∑ j = 1 m c j f ( x − j h ) + f ( x + j h ) − 2 f ( x ) ( j h ) 2 (8) \frac{\partial f^2(x)}{\partial x^2} \approx \sum_{j = 1}^m c_j \frac{f(x - jh) + f(x + jh) - 2 f(x)}{(jh)^2} \tag{8} x2f2(x)j=1mcj(jh)2f(xjh)+f(x+jh)2f(x)(8)
由于离得越近,影响越大,我们强加一个条件:
c 1 ≥ c 2 ⋯ ≥ c m (9) c_1 \geq c_2 \dots \geq c_m \tag{9} c1c2cm(9)
另外,我们不希望只有少数数据起到作用,因此增加
∥ C ∥ 2 2 = ∑ j = 1 m c j 2 (10) \|\mathbf{C}\|_2^2 = \sum_{j = 1}^m c_j^2 \tag{10} C22=j=1mcj2(10)
C \mathbf{C} C内部的值分布越均匀,其二范数越小。作为一种极端情况,当 c 1 = 1 c_1 = 1 c1=1时, ∥ C ∥ 2 2 \|\mathbf{C}\|_2^2 C22达到最大值1. 需要避免这类情况,因此利用 ∥ C ∥ 2 2 \|\mathbf{C}\|_2^2 C22建立正则项。
我们的任务,就是需要为给定的 f ( x ) f(x) f(x),求到合适的 C \mathbf{C} C. 相应的问题可以描述为:
输入: f ( x ) f(x) f(x), h h h, m m m;
优化目标:
min ⁡ C ∣ ∂ f 2 ( x ) ∂ x 2 − ∑ j = 1 m c j f ( x − j h ) + f ( x + j h ) − 2 f ( x ) ( j h ) 2 ∣ + λ ∥ C ∥ 2 2 (11) \min_\mathbf{C} \left|\frac{\partial f^2(x)}{\partial x^2} - \sum_{j = 1}^m c_j \frac{f(x - jh) + f(x + jh) - 2 f(x)}{(jh)^2} \right| + \lambda \|\mathbf{C}\|_2^2 \tag{11} Cminx2f2(x)j=1mcj(jh)2f(xjh)+f(x+jh)2f(x)+λC22(11)
约束条件:st.
0 ≤ c j ≤ 1 , ∑ j = 1 m c j = 1 (6) 0 \leq c_j \leq 1, \sum_{j = 1}^m c_j = 1 \tag{6} 0cj1,j=1mcj=1(6)
针对不同的 f ( x ) f(x) f(x),可以利用本问题的定义,获取最优的 C \mathbf{C} C.
吐槽一下:如果是实际观测数据来解还有意义,理论模型的话,凭什么我要把最近数据(距离为 h h h)的份额(用 c j c_j cj表示)让给更远( 2 h 2h 2h m h mh mh)的数据?

3. 平面波的有限差分

平面波函数为
f ( x ) = f 0 e i k x f(x) = f_0 e^{\mathrm{i}kx} f(x)=f0eikx
其中 i = − 1 \mathrm{i} = \sqrt{-1} i=1 . 注意 i \mathrm{i} i表示虚数,要用mathrm来描述其字体。
将其代入求解即可。

你可能感兴趣的:(机器学习,1024程序员节)