微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

乘以复数时看似任意的结果

如何解决乘以复数时看似任意的结果

我试图了解复数如何相乘。当我将两个数字相乘时,似乎总是能给我任意数量。例如, complex(10,9)*complex(11,13)等于complex(-7,229),而complex(10,1)*complex(10,2)等于complex(98,30)。有没有一种数学方法可以计算出两个复数相乘,如果是,那是什么?

解决方法

结果不是任意的,它遵循complex multiplication的定义:

例如,如果您有

x = a + j * b
y = c + j * d

那么乘法的表达式是

x * y = (a * c - b * d) + j (a * d + b * c)

对于您的示例complex(10,9) * complex(11,13),其评估结果为

(10 * 11 - 9 * 13) + j * (10 * 13 + 9 * 11)
(-7 + 229j)

这正是Python所显示的

>>> complex(10,13)
(-7+229j)
,

Complex number multiplication的运行方式如下:

(a + ib) * (c + id) = a * c + a * id + ib * c + ib * id
                    = a * c - b * d + i(a * d + b * c)

因此,在Python中,结果是这样的:

complex(a,b) * complex(c,d) = complex(a * c - b * d,a * d + b * c)

示例:

complex(10,13) = complex(10 * 11 - 9 * 13,10 * 13 + 9 * 11)
                                 = complex(-7,227)
,

如果您有2个复数,则第一个a + bj和第二个c + dj,然后是乘积(a + bj) * (c + dj) = a*c - b*d + (a*d + b*c)j。考虑的方式是j等于-1的平方根,因此j * j = -1,然后像平常一样将括号相乘。见下文:

a,b = 10,9
c,d = 11,13


print(complex(a,b)*complex(c,d))
print(a*c - b*d,a*d + b*c)

输出:

(-7+229j)
-7 229
,

了解复数乘法的另一种方法是在几何上。我们可以将复数视为二维矢量,即具有长度和方向的事物。然后,当将长度为r且方向为a的复数与长度为s方向为b的另一个相乘时,将得到长度为r * s且方向为a + b的复数,即长度为r且方向为a的复数作用于其他对象通过乘以r缩放它们并将它们旋转a。 如果您计算出(10,9)和(11,13)的长度和方向并按上述方法进行组合,您将获得(-7,229)的长度和方向

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。