如何在JavaScript中使用虚数进行计算?
最近,我试着用一些方程来计算,其中包括虚数如何在JavaScript中使用虚数进行计算?,javascript,math,Javascript,Math,最近,我试着用一些方程来计算,其中包括虚数I。但是,与e或π不同,没有任何方法或本机函数返回i。谷歌上的一个搜索引擎没有给我任何答案。关于如何实现它有什么想法吗 function imaginary(){ return { rational: this, imaginary: "2i" //magic code that does this }; }; Number.prototype.imaginary = imaginary; 我不是数学专
I
。但是,与e
或π
不同,没有任何方法或本机函数返回i
。谷歌上的一个搜索引擎没有给我任何答案。关于如何实现它有什么想法吗
function imaginary(){
return {
rational: this,
imaginary: "2i" //magic code that does this
};
};
Number.prototype.imaginary = imaginary;
我不是数学专家,但我尝试用另一个术语搜索,结果不一样 检查以下各项:
我希望这能有所帮助。假设你真的想要复数,而不仅仅是虚数: 我会模拟一个复数,就像你模拟一个二维点一样,也就是一对数字 正如点有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
有关除法和求幂,请参见math.js库支持复数、矩阵等。该库与JavaScript的内置数学库兼容,因此非常易于使用 你可以这样做:
math.i; // i
math.sqrt(-4) // 2i
var a = math.complex('2 + 3i'); // 2 + 3i
var b = math.complex(4, 5); // 4 + 5i
math.add(a, b); // 6 + 8i
math.multiply(a, b); // -7 + 22i
math.eval('e^(pi*i) + 1'); // ~0
// etc...
编辑:注意math.js附带了一个表达式解析器,这使得处理复杂值和数学表达式更加方便:
math.eval('(2 + 3i) * (4 + 5i)'); // -7 + 22i
看看这里:^第一个结果似乎有很好的信息…什么样的计算?只是+-*/,或指数,等等?例如:
(5+2i)*(9+5i)=newValue
或e^(i*pi)
上面发布的链接已失效。然而,这里有一个复制版本要感谢wayback机器:mathjs不支持将复数转换为极坐标或极坐标,这与大多数其他语言中的复数库不同。也许看看你是否需要它。mathjs现在支持从极坐标创建和转换复数。当我尝试math.eval('e^(pi*I)+1')
时,我得到了1.2246467991473532e-16。这是在使用termux
应用程序的手机上的节点REPL中出现的。@trysia这些都是数字舍入错误,请参阅文档:虽然这些链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效。