Computer >> Máy Tính >  >> Lập trình >> Python

Tạo lưới để tính toán bộ Mandelbrot với sản phẩm bên ngoài bằng Python

Cho hai vectơ, a =[a0, a1, ..., aM] và b =[b0, b1, ..., bN], tích ngoài [1] là -

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

Để lấy sản phẩm Outer của hai mảng, hãy sử dụng phương thức numpy.outer () trong Python. Numpy.ones () trả về một mảng mới có hình dạng và kiểu đã cho, chứa đầy những cái. Numpy.linspace () trả về các số có khoảng cách đều nhau trong một khoảng thời gian được chỉ định.

Các bước

Đầu tiên, hãy nhập các thư viện được yêu cầu -

import numpy as np

Phần thực -

rl = np.outer(np.ones((5,)), np.linspace(-2, 2, 5))
print("The real part of the complex number...\n",rl)

Phần tưởng tượng -

im = np.outer(1j*np.linspace(2, -2, 5), np.ones((5,)))
print("\nThe imaginary part of the complex numbers...\n",rl)

Tạo lưới -

grid = rl + im

Ví dụ

import numpy as np

# To get the Outer product of two arrays, use the numpy.outer() method in Python
# The numpy.ones() return a new array of given shape and type, filled with ones.
# The numpy.linspace() returns evenly spaced numbers over a specified interval.
# The real part
rl = np.outer(np.ones((5,)), np.linspace(-2, 2, 5))
print("The real part of the complex number...\n",rl)

# The imaginary part
im = np.outer(1j*np.linspace(2, -2, 5), np.ones((5,)))
print("\nThe imaginary part of the complex numbers...\n",rl)

# Forming a grid
grid = rl + im
print("\nDisplaying the grid...\n",grid)

Đầu ra

The real part of the complex number...
[[-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.]]

The imaginary part of the complex numbers...
[[-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.]]

Displaying the grid...
[[-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]]