【问题标题】: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)
  • 我投票决定将此问题作为题外话结束,因为这是对复数工作原理的误解,而不是编程问题。

标签: c++ complex-numbers


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 2013-04-04
    • 2021-11-04
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多