Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में बाह्य गुणनफल के साथ मैंडेलब्रॉट सेट के लिए ग्रिड बनाएं

विवरण

दो वेक्टर a = [a0, a1, ..., aM] और b = [b0, b1, ..., bN] दिए जाने पर, बाह्य गुणनफल (outer product) एक मैट्रिक्स होता है जहां तत्व (i,j) पर a[i] * b[j] होता है। NumPy में numpy.outer() फंक्शन इसकी गणना करता है। मैंडेलब्रॉट सेट गणना के लिए कॉम्प्लेक्स प्लेन ग्रिड बनाने के लिए इसका उपयोग किया जा सकता है।

संबंधित फंक्शन्स

  • numpy.outer(a, b) - दो 1-D ऐरे का बाह्य गुणनफल
  • numpy.ones(shape) - दिए गए आकार और प्रकार का ऐरे, 1 से भरा
  • numpy.linspace(start, stop, num) - निर्दिष्ट अंतराल पर समान रूप से वितरित संख्याएं

चरण

import numpy as np

# वास्तविक भाग: x-निर्देशांक
rl = np.outer(np.ones((5,)), np.linspace(-2, 2, 5))
print("कॉम्प्लेक्स संख्या का वास्तविक भाग...\n", rl)

# काल्पनिक भाग: y-निर्देशांक
im = np.outer(1j * np.linspace(2, -2, 5), np.ones((5,)))
print("\nकॉम्प्लेक्स संख्याओं का काल्पनिक भाग...\n", im)

# ग्रिड बनाएं: कॉम्प्लेक्स संख्याएं = वास्तविक + काल्पनिक
grid = rl + im

पूर्ण उदाहरण

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.]]
कॉम्प्लेक्स संख्याओं का काल्पनिक भाग...
[[ 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]]
ग्रिड प्रदर्शित...
[[-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]]

मैंडेलब्रॉट सेट गणना

def mandelbrot(c, max_iter=100):
    z = 0
    for n in range(max_iter):
        if abs(z) > 2:
            return n
        z = z*z + c
    return max_iter

# ग्रिड पर लागू करें
mandelbrot_set = np.array([[mandelbrot(c) for c in row] for row in grid])
print(mandelbrot_set)

वैकल्पिक: meshgrid का उपयोग

# अधिक पठनीय विकल्प
x = np.linspace(-2, 2, 5)
y = np.linspace(2, -2, 5)
X, Y = np.meshgrid(x, y)
grid = X + 1j * Y

मुख्य बिंदु

  • outer का उपयोग 1D वेक्टर से 2D ग्रिड बनाने के लिए कुशल है
  • meshgrid अधिक पठनीय और लचीला है
  • मैंडेलब्रॉट के लिए, linspace रेंज आमतौर पर [-2, 1] × [-1.5, 1.5] होती है
  • बड़े ग्रिड के लिए वेक्टराइज्ड ऑपरेशन का उपयोग करें
  1. प्रत्येक X के लिए एकाधिक Y वैल्यूज़ वाला स्कैटर प्लॉट (Python Matplotlib) प्रत्येक X के लिए एकाधिक Y वैल्यूज़ वाला स्कैटर प्लॉट (Python Matplotlib)

    एक ही X वैल्यू के लिए कई Y वैल्यूज़ होने पर, zip() से उन्हें पेयर करके स्कैटर प्लॉट बनाएं। चरण फिगर साइज़ और ऑटोलेआउट सेट करें। NumPy से रैंडम xs और ys जनरेट करें। zip(xs, ys) से पेयर बनाएं और लूप में plt.scatter(x, y) करें। plt.show() से दिखाएं। उदाहरण कोड import numpy as np from matplotlib impor

  1. पायथन ट्किंटर में लैबलफ्रेम के लिए स्टाइल सेट करना पायथन ट्किंटर में लैबलफ्रेम के लिए स्टाइल सेट करना

    ट्किंटर LabelFrame ट्किंटर लाइब्रेरी में फ्रेम्स के समान है। यह एक कंटेनर की तरह काम करता है जहां विजेट्स रखे जा सकते हैं। LabelFrame शुरू में इसके चारों ओर कुछ आयताकार बॉर्डर के साथ एक कंटेनर बनाता है। LabelFrame विजेट को स्टाइल करने के लिए, हमारे पास बैकग्राउंड, बॉर्डरविड्थ, लेबलएंकर, हाइलाइटकलर

  1. पायथन प्रोग्राम: किसी संख्या के अद्वितीय अभाज्य गुणनखंडों का गुणनफल पायथन प्रोग्राम: किसी संख्या के अद्वितीय अभाज्य गुणनखंडों का गुणनफल

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे -समस्या कथन - एक संख्या n दी गई है, हमें इसके सभी अद्वितीय अभाज्य गुणनखंडों का गुणनफल ज्ञात करना होगा और इसे वापस करना होगा।उदाहरण के लिए,इनपुट: num = 11आउटपुट: Product is 11व्याख्या: यहां, इनपुट संख्या 11 का केवल 1 अभाज्य गुणनखंड ह