使用 Numpy 计算复数的绝对值
The Absolute Value of a Complex Number with Numpy
我在 Python 中有以下脚本。我正在计算数组的傅里叶变换。当我想绘制结果(傅立叶变换)时,我使用的是该计算的绝对值。
但是,我不知道复数的绝对值是如何产生的。
有谁知道它是怎么计算的?我需要这个在 Java.
中重现
import numpy as np
import matplotlib.pyplot as plt
from numpy import fft
inp = [1,2,3,4]
res = fft.fft(inp)
print(res[1]) # returns (-2+2j) complex number
print(np.abs(res[1])) # returns 2.8284271247461903
numpy.absolute(arr, out = None, ufunc ‘absolute’) : 这个数学函数帮助用户计算每个元素的绝对值。
对于复数a+ib,其绝对值为sqrt(a^2 + b^2)。
sqrt(Re(z)**2 + Im(z)**2)
对于 z = a + ib
这变成:
sqrt(a*a + b*b)
这只是欧式范数。您必须对实部和虚部(不带 i)的平方求和并计算它的平方。
https://www.varsitytutors.com/hotmath/hotmath_help/topics/absolute-value-complex-number
np.abs 给出复数的大小,即 sqrt(a^2 + b^2) 在你的情况下它是 sqrt(8).
https://numpy.org/doc/stable/reference/generated/numpy.absolute.html
对于复值对 a+ib
,您可以考虑使用 java 数学静态方法 hypot:
Math.hypot(a, b)
该方法是毕达哥拉斯定理的实现,sqrt(a*a + b*b)
但另外提供下溢和上溢保护。
我在 Python 中有以下脚本。我正在计算数组的傅里叶变换。当我想绘制结果(傅立叶变换)时,我使用的是该计算的绝对值。 但是,我不知道复数的绝对值是如何产生的。 有谁知道它是怎么计算的?我需要这个在 Java.
中重现import numpy as np
import matplotlib.pyplot as plt
from numpy import fft
inp = [1,2,3,4]
res = fft.fft(inp)
print(res[1]) # returns (-2+2j) complex number
print(np.abs(res[1])) # returns 2.8284271247461903
numpy.absolute(arr, out = None, ufunc ‘absolute’) : 这个数学函数帮助用户计算每个元素的绝对值。
对于复数a+ib,其绝对值为sqrt(a^2 + b^2)。
sqrt(Re(z)**2 + Im(z)**2)
对于 z = a + ib
这变成:
sqrt(a*a + b*b)
这只是欧式范数。您必须对实部和虚部(不带 i)的平方求和并计算它的平方。
https://www.varsitytutors.com/hotmath/hotmath_help/topics/absolute-value-complex-number
np.abs 给出复数的大小,即 sqrt(a^2 + b^2) 在你的情况下它是 sqrt(8).
https://numpy.org/doc/stable/reference/generated/numpy.absolute.html
对于复值对 a+ib
,您可以考虑使用 java 数学静态方法 hypot:
Math.hypot(a, b)
该方法是毕达哥拉斯定理的实现,sqrt(a*a + b*b)
但另外提供下溢和上溢保护。