Jinyu Li a personal journal

服气

“二元一次方程,一个就无穷多解了,人家能两个放一块儿解,你说牛逼不牛逼!”

多项式的伴随矩阵

很久之前学到的知识,但是今天回忆起来发现已经忘记了,这里记录一下。

一个多项式 $P(x) = x^n+c_{n-1}x^{n-1}+c_{n-2}x^{n-2}+\cdots+c_1x+c_0$ 的伴随矩阵(Companion Matrix)定义为:

\[M_x = \begin{pmatrix} 0 & 0 & \cdots & 0 & -c_0 \\\ 1 & 0 & \cdots & 0 & -c_1 \\\ 0 & 1 & \cdots & 0 & -c_2 \\\ \vdots & \vdots & \ddots & \vdots & \vdots \\\ 0 & 0 & \cdots & 1 & -c_{n-1} \end{pmatrix}.\]

可以证明,$P(x)$ 的根是 $M_x$ 的特征值,下面简单描述思路。

对于任意的多项式 $F(x)$ ,考虑多项式求余 $F(x)\mod P(x)\equiv R(x)$ 。当 $x_0$ 是 $P(x)$ 的根时,便有 $F(x_0)=R(x_0)$ 。

现在考虑新的多项式 $xF(x)$ ,同样关于 $P(x)$ 求余,记 $xF(x)\mod P(x)\equiv S(x)$ 。由于 $R(x)$ 和 $S(x)$ 不超过 $n-1$ 次,用两个 $n$ 维向量 $r, s\in\mathbb{R}^n$ 分别表示它们的系数。

观察 $R(x)$ 和 $S(x)$ 的系数向量的关系,将 $r \mapsto s$ 的关系记为 $M$ ,容易发现 $M$ 是一个线性映射,它的矩阵表达恰好是 $M_x$ 。

那么,当 $x_0$ 是 $P(x)$ 的根时,$F(x_0) = R(x_0)$ ,$x_0F(x_0) = x_0R(x_0) = S(x_0)$ 。

上面得到的等式关系对于任意 $P(x)$ 的根都是成立的,这意味着 $x_0R(x)$ 和 $S(x)$ 对应项的系数相等,即 $x_0r = s = M_x r$ 。

由此可知 $x_0$ 是 $M_x$ 的特征值。

连续白噪音和布朗噪音的离散模拟

为了生成模拟实验数据,需要用到白噪音和布朗噪音。连续白噪音 $u(t)$ 通常定义为满足如下条件的随机信号:

\[\begin{aligned} E[u(t)] &= 0 \\\ E[u(t)u(t+\tau)] &= \sigma_u^2\delta(\tau). \end{aligned}\]

即任意时刻的信号的期望为 0 ,方差为 $\sigma_u^2\delta(\tau)$ ,且不同时刻信号互相独立。$\delta$ 是 Dirac 函数,即单位冲击响应。

设 $u_i = u(t_0+i\Delta t) = u(t_i)$ 为离散化后的信号,那么 $u_i$ 对应于 $\Delta t$ 时间窗内 $u(t)$ 的均值,有

\[\begin{aligned} u_i &= \frac{1}{\Delta t}\int_0^{\Delta t} u(t_{i-1}+\tau) d\tau \\\ E[u_i^2] &= \frac{1}{\Delta t^2}\int_0^{\Delta t} \int_0^{\Delta t} \sigma_u^2 \delta(\tau-\upsilon) d\tau d\upsilon = \frac{\sigma_u^2}{\Delta t}. \end{aligned}\]

因此,在用离散序列模拟时,应使用均值为 0 ,方差为 $\sigma_u^2/\Delta t$ 的高斯随机数产生采样。

布朗噪音 $v(t)$ 可以定义为白噪音的积分:

\[\begin{aligned} v(0) &= v_0 \\\ v’(t) &= u(t). \end{aligned}\]

以类似方式离散化后可知 $\Delta v_i = v_i - v_{i-1} = \int_0^{\Delta t}u(t_{i-1}+\tau)d\tau$ 。于是 $E[ \Delta v_i^2 ] = \sigma_u^2\Delta t$ 。

所以离散化后的差分方程为 $v_i = v_{i-1} + \Delta v_i$ ,其中 $ \Delta v_i \sim N(0, \sigma_u^2 \Delta t)$ 。

生活的每个角落都有高斯分布

不想好好做游戏,那就不要做了

如今的游戏,BUG一大堆就拿出来卖钱。

这样也就算了,内容不完整,等于买了一半儿。事后发个DLC,也就是下一半儿,再卖一笔……

我凭什么要给你们这种beta产品掏钱?