利用离散 Fourier 变换解一元二次方程

设二次方程
$$
x^2+bx+c=0
$$
的两个根分别为 $x_1,x_2$.则
$$
(x-x_1)(x-x_2)=x^2+bx+c.
$$
因此
$$
egin{cases}
  x_1+x_2=-b\
x_1x_2=c\
end{cases}
$$
进行离散 Fourier 变换,即
$$
egin{pmatrix}
  u_1\
v_1\
end{pmatrix}=egin{pmatrix}
  omega^{0}&omega^{1}\
omega^{0}&omega^{2}\
end{pmatrix}egin{pmatrix}
  x_1\
x_2\
end{pmatrix}.
$$
其中 $omega$ 是方程 $x^2=1$ 的不等于1的根,即 $omega=-1$.于是
$$
egin{cases}
u_1=x_1-x_2\
v_1=x_1+x_2\
end{cases}
$$
也即
$$
egin{cases}
x_1=frac{1}{2}(u_1+v_1)\
x_2=frac{1}{2}(v_1-u_1)\
end{cases}.
$$
于是
$$
egin{cases}
v_1=-b\
frac{1}{4}(v_1^2-u_1^2)=c.
end{cases}
$$
解得
$$
egin{cases}
  v_1=-b\
u_1=pmsqrt{b^2-4c}
end{cases}
$$
然后容易得出 $x_1,x_2$ 的值.

原文地址:https://www.cnblogs.com/yeluqing/p/3827414.html