Long Luo's Life Notes

每一天都是奇迹

By Long Luo

挖坑

T0(x)=1T1(x)=xTn(x)=2xTn1(x)Tn2(x)\begin{aligned} T_0(x) &= 1 \\ T_1(x) &= x \\ T_n(x) &= 2xT_{n-1}(x) - T_{n-2}(x) \end{aligned}

参考文献

  1. Chebyshev Polynomials
  2. Chebyshev Polynomial of the First Kind
  3. Chebyshev Polynomials - Definition and Properties
  4. 8.1 切比雪夫近似值求正余弦
  5. Geometric series
  6. Binomial coefficient

挖坑

参考文献

  1. Wave

By Long Luo

之前写过一篇介绍 CORDIC 算法 [1] 的文章,里面提到 CORDIC 算法的 不足 之处,CORDIC 算法的输入角度范围需要在 [99.88,99.88][−99.88^{\circ} , 99.88^{\circ}] ,那么我们不禁要问,如果输入角度 θ\large {\theta } 很大的话,怎么处理呢?

这个问题同样存在于 泰勒展开式(Taylor series) [2] 中,比如 sin(x)\large {\sin (x) }cos(x)\large {\cos (x) } 的泰勒展开式:

sin(x)=x13!x3+15!x517!x7+19!x9+o(x9)xR\sin(x) = x - \frac {1}{3!}x^3 + \frac {1}{5!}x^5 - \frac {1}{7!} x^7 + \frac {1}{9!} x^9 + o(x^9) \quad \forall x \subset \mathbb{R}

cos(x)=112!x2+14!x416!x6+18!x8+o(x8)xR\cos(x) = 1 - \frac {1}{2!}x^2 + \frac {1}{4!}x^4 - \frac {1}{6!} x^6 + \frac {1}{8!} x^8 + o(x^8) \quad \forall x \subset \mathbb{R}

虽然在整个实数集 R\large { \mathbb{R}} 都成立,但是在实际应用中因为展开项数限制和浮点数的精度限制, x\large {x} 的范围只有在接近 0\large {0} 的时候才有比较高的精度。

但是实际应用中,如果输入 x\large {x} 很大的话,比如 232,1010,1022\large {2^{32}, 10^{10}, 10^{22} \dots } 情况下怎么得到足够精确的值呢?

中学里我们知道三角函数是周期函数,对于比较大的值,我们可以使用下面的公式将值归约到一个比较小的范围内。

x=x2kπkZx' = x - 2k \pi \quad k \subset \mathbb{Z}

这就是我们今天要讲的 参数归约(Argument Reduction) 算法。

从小学计算题开始

参数归约 听起来就很唬人,什么是参数啊,什么归约啊,都是些高大上的名词,听起来云里雾里的!

为了不让大家产生厌倦和畏难心理,我们先从一道小学数学计算题开始:

不借助计算器,计算 66600×666000\large {66600 \times 666000} 的值!

对于这道题,大家可能会列出下列算术:

66600×666000=666×666×100000=4435560000066600 \times 666000 = 666 \times 666 \times 100000 = 44355600000

但其实呢,我们也可以使用下面的方法:

66600×666000=1112×4×9×105=444×999×105=444×(10001)×105=4443556×105\begin{aligned} 66600 \times 666000 &= 111^2 \times 4 \times 9 \times 10^5 \\&= 444 \times 999 \times 10^5 \\&= 444 \times (1000 - 1) \times 10^5 \\&= 4443556 \times 10^5 \end{aligned}

如果我说上面这 2\large {2} 种方法都用到了参数归约的思想,你可能会感到震惊,什么?这种小学计算题也用到了参数归约算法吗?

阅读全文 »

By Long Luo

挖坑

md2xdt2=kxm \frac {d^2x}{dt^2} = -kx

md2xdt2=kx=kAsin(ωtΔφ)m \frac{d^2x}{dt^2} = -k \cdot x = k \cdot A \sin \left( \omega t - \Delta \varphi \right)

md2xdt2+mrdxdt+kx=F(t)m \frac{d^2x}{dt^2} + m r \frac{dx}{dt} + kx = F(t)

参考文献

  1. Oscillation
  2. Simple harmonic motion
  3. Electronic oscillator
  4. Pendulum
  5. Galileo Galilei
  6. Damping
0%