复数乘以标量
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
。
【讨论】:
以上是关于复数乘以标量的主要内容,如果未能解决你的问题,请参考以下文章