复数乘以标量

Posted

技术标签:

【中文标题】复数乘以标量【英文标题】:Complex Number multiplied with Scalar 【发布时间】:2017-07-23 11:57:24 【问题描述】:

我有一个公式 -j(a*x + b*x),其中 j 是一个复数。

如果我没记错的话,-j 被定义为std::complex<double> j(0,-1)。好吧,让我们说(a*x + b*y) = 5。我读过SO,它会被翻译成std::complex<double> scalarCmplx(5,0)

当乘以 j*scalarCmplx 时,这将转化为:

real = j.real * scalarCmplx.real = 0 * 5 = 0
imag = j.imag * scalarCmplx.imag = -1 * 0 = 0

因此,据我了解,结果将始终为0。 我错过了什么吗?

【问题讨论】:

复数乘法不行,再看定义应该就清楚了。 哦,我是不是混淆了什么?我查过 Krantz99,如果 (-j)*5 可以轻松翻译成 j.real*5, j.imag*5,我是对的吗? (@harold) 我投票决定将此问题作为题外话结束,因为这是对复数工作原理的误解,而不是编程问题。 【参考方案1】:

就像在s(a+b) = sa+sb 的简单数学中一样,复杂的-i 转换为0-i,因此s*-i = s*0-s*i = -si

【讨论】:

以上是关于复数乘以标量的主要内容,如果未能解决你的问题,请参考以下文章

python复数

复数矩阵A 的共轭矩阵应该怎么算?谁对?

FFT && 复数重载

GDB - 访问复数的实部和虚部

复矩阵将实矩阵乘以 BLAS

Python数字型整理(整型布尔型浮点型复数操作符内建函数与工厂函数控制数字精度)