最近,我正在尝试使用一些包含虚数i
的方程式进行计算。但是,与e
或π
不同,没有任何方法或 native 函数会返回i
。 Google的quick search没给我任何答案。关于如何实现的任何想法?
function imaginary(){
return {
rational: this,
imaginary: "2i" //magic code that does this
};
};
Number.prototype.imaginary = imaginary;
最佳答案
假设您真的想要复数,而不仅仅是虚数:
我将为复数建模,就像为2D点建模(即一对数字)一样。
正如一个点具有x和y分量一样,复数也具有实部和虚部。
这两个组件都可以使用普通的数字类型(int,float等)建模。
但是,您将需要为所有数学运算定义新功能。
复数的加法和减法与点的加法和减法的工作方式相同-相互添加单独的成分,请勿混合。例如:
(3 + 2i)+(5 + 4i)=(8 + 6i)
乘法的工作原理就像您在乘(a + b)*(c + d)=(ac + ad + bc + bd)时在代数中学到的一样。
除了现在,您还必须记住i * i = -1。所以:
(a + bi)*(c + di)=(ac + adi + bci + bdii)=(ac-bd)+(ad + bc)i
有关除法和求幂的信息,请参见http://en.wikipedia.org/wiki/Complex_number