Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tạo lưới tính tập Mandelbrot với tích ngoài trong Python

Kết hợp numpy.outer(), ones() và linspace() tạo lưới số phức cho tập Mandelbrot.

Ví dụ

import numpy as np

# Phần thực: outer(ones(5), linspace(-2, 2, 5))
rl = np.outer(np.ones(5), np.linspace(-2, 2, 5))
print("Phần thực:")
print(rl)

# Phần ảo: outer(1j*linspace(2,-2,5), ones(5))
im = np.outer(1j * np.linspace(2, -2, 5), np.ones(5))
print("\nPhần ảo:")
print(im)

# Lưới số phức
grid = rl + im
print("\nLưới số phức:")
print(grid)

Kết quả

Phần thực:
[[-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.]]

Phần ảo:
[[ 0.+2.j  0.+2.j  0.+2.j  0.+2.j  0.+2.j]
 [ 0.+1.j  0.+1.j  0.+1.j  0.+1.j  0.+1.j]
 [ 0.+0.j  0.+0.j  0.+0.j  0.+0.j  0.+0.j]
 [ 0.-1.j  0.-1.j  0.-1.j  0.-1.j  0.-1.j]
 [ 0.-2.j  0.-2.j  0.-2.j  0.-2.j  0.-2.j]]

Lưới số phức:
[[-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]]

Lưới 5x5 bao phủ vùng [-2,2]×[-2,2] trên mặt phẳng phức, dùng cho visualization tập Mandelbrot.