Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การสร้างกริดสำหรับคำนวณเซต Mandelbrot ด้วย outer product ใน Python


ภาพรวม

ใช้ numpy.outer() ร่วมกับ numpy.ones() และ numpy.linspace() เพื่อสร้างกริดจำนวนเชิงซ้อนสำหรับการคำนวณเซต Mandelbrot

ขั้นตอนการทำงาน

  1. นำเข้าไลบรารี
    import numpy as np
    
  2. สร้างส่วนจริง (real part)
    rl = np.outer(np.ones((5,)), np.linspace(-2, 2, 5))
    print("ส่วนจริงของจำนวนเชิงซ้อน...\n", rl)
    
  3. สร้างส่วนจินตภาพ (imaginary part)
    im = np.outer(1j*np.linspace(2, -2, 5), np.ones((5,)))
    print("\nส่วนจินตภาพของจำนวนเชิงซ้อน...\n", im)
    
  4. รวมเป็นกริด
    grid = rl + im
    print("\nแสดงกริด...\n", grid)
    

ตัวอย่างโค้ดสมบูรณ์

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", im)

# รวมเป็นกริด
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]]