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

Python में रैखिक मैट्रिक्स समीकरण या स्केलर समीकरण प्रणाली हल करें

NumPy का numpy.linalg.solve() फंक्शन रैखिक मैट्रिक्स समीकरण Ax = b का "सटीक" समाधान निकालता है, जहां A गुणांक मैट्रिक्स है और b आश्रित वेरिएबल वेक्टर है।

सिंटैक्स

numpy.linalg.solve(a, b)
  • a: गुणांक मैट्रिक्स, आकार (N, N) — वर्ग और फुल रैंक होना चाहिए।
  • b: दायां-पक्ष वेक्टर/मैट्रिक्स, आकार (N,) या (N, K)।
  • वापसी: समाधान x, आकार b के समान।
  • एक्सेप्शन: सिंगुलर मैट्रिक्स के लिए LinAlgError।

उदाहरण: 2×2 सिस्टम

import numpy as np

# समीकरण प्रणाली:
# x0 + 2*x1 = 1
# 3*x0 + 5*x1 = 2

# गुणांक मैट्रिक्स
arr1 = np.array([[1, 2], [3, 5]])

# दायां-पक्ष वेक्टर
arr2 = np.array([1, 2])

print("गुणांक मैट्रिक्स A:\n", arr1)
print("\nRHS वेक्टर b:", arr2)
print("A डायमेंशन्स:", arr1.ndim)
print("b डायमेंशन्स:", arr2.ndim)
print("A आकार:", arr1.shape)
print("b आकार:", arr2.shape)

# हल करें
x = np.linalg.solve(arr1, arr2)
print("\nसमाधान x:", x)

# सत्यापन: A @ x ≈ b
print("सत्यापन A @ x:", arr1 @ x)
print("मूल b:", arr2)

आउटपुट

गुणांक मैट्रिक्स A:
 [[1 2]
 [3 5]]
RHS वेक्टर b: [1 2]
A डायमेंशन्स: 2
b डायमेंशन्स: 1
A आकार: (2, 2)
b आकार: (2,)
समाधान x: [-1.  1.]
सत्यापन A @ x: [1. 2.]
मूल b: [1 2]

गणना विवरण

समीकरण:


x0 + 2x1 = 1
3x0 + 5x1 = 2

पहले से 3 गुना घटाएं: (3x0 + 6x1) - (3x0 + 5x1) = 3 - 2 → x1 = 1
प्रतिस्थापित करें: x0 + 2(1) = 1 → x0 = -1
समाधान: x = [-1, 1] ✓

solve() बनाम inv() — solve() क्यों बेहतर?

बहु-RHS (कई b वेक्टर्स)


# b आकार (N, K) - K अलग-अलग RHS
b_multi = np.array([[1, 2], [2, 3], [1, 0]]).T  # आकार (2, 3)
x_multi = np.linalg.solve(arr1, b_multi)
print("बहु-RHS समाधान:\n", x_multi)
# प्रत्येक कॉलम एक अलग b के लिए समाधान

त्रुटि हैंडलिंग


# सिंगुलर मैट्रिक्स
A_singular = np.array([[1, 2], [2, 4]])
b = np.array([1, 2])

try:
    np.linalg.solve(A_singular, b)
except np.linalg.LinAlgError as e:
    print("एरर:", e)  # Singular matrix

# ऐसे मामलों के लिए lstsq या pinv उपयोग करें
x_lstsq = np.linalg.lstsq(A_singular, b, rcond=None)[0]
print("लीस्ट स्क्वेयर्स समाधान:", x_lstsq)

उपयोग के मामले

  • इंजीनियरिंग में रैखिक सिस्टम हल करना।
  • कंप्यूटर ग्राफिक्स में ट्रांसफॉर्मेशन।
  • अर्थशास्त्र में इनपुट-आउटपुट मॉडल।
  • सर्किट विश्लेषण (किरचॉफ के नियम)।
  • मशीन लर्निंग में नॉर्मल इक्वेशन्स (हालांकि रिज रिग्रेशन बेहतर)।
  1. - पायथन प्रोग्राम: मैट्रिक्स को Z फॉर्म में प्रिंट करें

    इस लेख में, हम दी गई समस्या के समाधान और दृष्टिकोण के बारे में जानेंगे।समस्या कथन - n*n क्रम का एक वर्ग मैट्रिक्स दिया गया है, हमें मैट्रिक्स के तत्वों को Z फॉर्म में प्रदर्शित करना होगा।Z फॉर्म निम्नलिखित चरणों में मैट्रिक्स को पार करना है -पहली पंक्ति को पार करेंअब, दूसरी प्रमुख विकर्ण को पार करें

  1. - पायथन में मैट्रिक्स मैनिपुलेशन

    पायथन में हम विभिन्न मैट्रिक्स मैनिपुलेशन और ऑपरेशन हल कर सकते हैं। Numpy मॉड्यूल मैट्रिक्स ऑपरेशन के लिए विभिन्न मेथड प्रदान करता है। add() - दो मैट्रिक्स के तत्वों को जोड़ता है। subtract() - दो मैट्रिक्स के तत्वों को घटाता है। divide() - दो मैट्रिक्स के तत्वों को विभाजित करता है। multiply() - दो

  1. - पायथन का उपयोग करके द्विघात समीकरण कैसे हल करें

    समस्या विवरण द्विघात समीकरण को पायथन का उपयोग करके हल करने के लिए आप cmath मॉड्यूल का उपयोग कर सकते हैं। ऐसा इसलिए है क्योंकि द्विघात समीकरण के मूल प्रकृति में जटिल हो सकते हैं। यदि आपके पास ax^2 + bx + c = 0 रूप का द्विघात समीकरण है, तो: उदाहरण import cmath a = 12 b = 8 c = 1 # विविक्तकर d = (b**2

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
पहलूnp.linalg.solve(A, b)np.linalg.inv(A) @ b
गतितेज़ (LU डीकंपोजिशन)धीमी (पूर्ण इनवर्स + गुणन)
संख्यात्मक स्थिरताबेहतरखराब कंडीशन में खराब
मेमोरीकमअधिक (इनवर्स मैट्रिक्स स्टोर)
सिफारिशप्राथमिकता देंटालें