[多项式前置知识] 单位根 & 复数

从小学我们就知道 \(i=\sqrt{-1}\)

复数一般写作 \(a+bi\)

复数四则运算

  • 加法:
    \((a+bi)+(c+di)=(a+c)+(b+d)i\)

减法就是取个相反数。

  • 乘法:
    \((a+bi)\times (c+di)\)
    \(=ac+(ad+bc)i+bd\times i^2\)
    \(=(ac-bd)+(ad+bc)i\)

  • 共轭复数
    \(a+bi\) 的共轭复数是 \(a-bi\),它们相乘一定是有理数。

  • 除法:(没什么用)
    \(\dfrac{a+bi}{c+di}=\dfrac{(ac+bd)+(bc-ad)i}{(c+di)(c-di)}=\dfrac{ac+bd}{c^2+d^2}+\dfrac{bc-ad}{c^2+d^2}i\)

复数表示

每个复数都写作 \(a+bi\) ,所以我们可以在一个直角坐标系表示所有复数。
举个例子,\((x,y)\) 表示的就是 \(x+yi\)

复数相乘

我们定义复数 \(x=a+bi\) 的模长为 \(|x|\) ,就是 \((a,b)\) 距离远点的距离。
我们定义幅角表示当前点和原点连线后,与第一象限的直线所形成的的夹角。

复数相乘就是模长相乘,幅角相加。
这个证明会在最后。

单位根

对于 \(x^n=1\) 的解集构成单位根。
我们定义 \(\omega_n^k\) 表示第 \(k\)\(n\) 次单位根。

我们看看单位根怎么求。
由于模长相乘的原因,我们希望最后得到的数模长为 \(1\),幅度为 \(0\)

所以我们希望对于一个 \(x\)\(x^n=1\),还需要 \(x\) 是正实数。这不很明显只有一个解 \(x=1\)
所以 \(\forall \omega_n^k\),它们模长都是 \(1\)
所以它们都在单位圆上(和三角函数那个一个意思)。

然后接下来就是幅角的问题了。

知道规律后,我们希望找到一个角度,从幅度为 \(0\) 逆时针转 \(n\) 次后回到幅度为 \(0\)
那么最小的角度就是 \(\frac{360^\circ}{n}\)

所以,我们把单位圆的圆周 \(n\) 等分,每一份都可以取作单位根。
所以我们单根怎么求就出来了。然后右转三角函数。

单位根的性质

\(\omega_n^k=-\omega_n^{k+n/2}\)\(n\) 是偶数)
\(\omega_n^0=1\)
\(\omega_{n}^{n/2}=-1\)
\(\omega_n^k=(\omega_n^1)^k\)
\(\omega_n^j\times \omega_n^k=\omega_n^{j+k}\)
\(\omega_{pn}^{pk}=\omega_{n}^k\)

三角函数

补数学了。
c++ 用的是弧度制,所以角度要转弧度。

  • \(\cos(x),\tan(x),\sin(x)\) 没有变化,给入弧度,给出三角函数值。
  • \(acos(x),atan(x),asin(x)\) 给入三角函数的值,给出弧度。

所以 \(\pi\) 的求法就很简单了。我们知道 \(\cos \pi=-1\),所以 \(\pi=acos(-1)\)

复数运算的证明

我们考虑三个点 :\((a,b)\)\((c,d)\),\((ac-bd,ad+bc)\)
\(D(a,b)=a^2+b^2,D(c,d)=c^2+d^2,D(ac-bd,ad+bc)=a^2c^2+b^2d^2+a^2d^2+b^2c^2\)

所以模长相乘得证。

然后我们这样看:
\(\tan\theta_1=\frac{b}{a},\tan\theta_2=\frac{d}{c}\)
\(\tan(\theta_1+\theta_2)=\dfrac{\tan\theta_1+\tan\theta_2}{1-\tan\theta_1\tan\theta_2}=\dfrac{\frac{b}{a}+\frac{d}{c}}{1-\dfrac{bd}{ac}}=\dfrac{ad+bc}{ac-bd}=\tan\theta_3\)

得证。

posted @ 2024-05-06 16:02  g1ove  阅读(22)  评论(1编辑  收藏  举报