使用 Python 制作一个网格,用于计算带有外积的曼德布洛特集

pythonnumpyserver side programmingprogramming更新于 2024/5/14 7:40:17

给定两个向量,a = [a0, a1, ..., aM] 和 b = [b0, b1, ..., bN],外积 [1] 为 −

[[a0*b0 a0*b1 ... a0*bN ]
[a1*b0 .
[ ... .
[aM*b0 aM*bN ]]

要获取两个数组的外积,请使用 Python 中的 numpy.outer() 方法。numpy.ones() 返回一个具有给定形状和类型的新数组,其中填充了 1。 numpy.linspace() 返回指定间隔内均匀分布的数字。

步骤

首先,导入所需的库 −

import numpy as np

实部 −

rl = np.outer(np.ones((5,)), np.linspace(-2, 2, 5))
print("复数的实部...\n",rl)

虚部 −

im = np.outer(1j*np.linspace(2, -2, 5), np.ones((5,)))
print("\n复数的虚部...\n",rl)

形成网格 −

grid = rl + im

示例

import numpy as np

# 要获取两个数组的外积,请使用 Python 中的 numpy.outer() 方法
# numpy.ones() 返回一个具有给定形状和类型的新数组,并用 1 填充。
# numpy.linspace() 返回指定间隔内均匀分布的数字。
# 实部
rl = np.outer(np.ones((5,)), np.linspace(-2, 2, 5))
print("复数的实部...\n",rl)

# 虚部
im = np.outer(1j*np.linspace(2, -2, 5), np.ones((5,)))
print("\n复数的虚部...\n",rl)

# 形成网格
grid = rl + im
print("\n显示网格...\n",grid)

输出

复数的实部...
[[-2. -1. 0. 1. 2.]
[-2. -1. 0. 1. 2.]
[-2. -1. 0. 1. 2.]
[-2. -1. 0. 1. 2.]
[-2. -1. 0. 1. 2.]]

复数的虚部...
[[-2. -1. 0. 1. 2.]
[-2. -1. 0. 1. 2.]
[-2. -1. 0. 1. 2.]
[-2. -1. 0. 1. 2.]
[-2. -1. 0. 1. 2.]]

显示网格...
[[-2.+2.j -1.+2.j 0.+2.j 1.+2.j 2.+2.j]
[-2.+1.j -1.+1.j 0.+1.j 1.+1.j 2.+1.j]
[-2.+0.j -1.+0.j 0.+0.j 1.+0.j 2.+0.j]
[-2.-1.j -1.-1.j 0.-1.j 1.-1.j 2.-1.j]
[-2.-2.j -1.-2.j 0.-2.j 1.-2.j 2.-2.j]]

相关文章


有用资源