Python में रैखिक मैट्रिक्स समीकरण या स्केलर समीकरण प्रणाली हल करें
NumPy का numpy.linalg.solve() फंक्शन रैखिक मैट्रिक्स समीकरण Ax = b का "सटीक" समाधान निकालता है, जहां A गुणांक मैट्रिक्स है और b आश्रित वेरिएबल वेक्टर है।
सिंटैक्स
numpy.linalg.solve(a, b)
a: गुणांक मैट्रिक्स, आकार (N, N) — वर्ग और फुल रैंक होना चाहिए।
b: दायां-पक्ष वेक्टर/मैट्रिक्स, आकार (N,) या (N, K)।
# 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)
उपयोग के मामले
इंजीनियरिंग में रैखिक सिस्टम हल करना।
कंप्यूटर ग्राफिक्स में ट्रांसफॉर्मेशन।
अर्थशास्त्र में इनपुट-आउटपुट मॉडल।
सर्किट विश्लेषण (किरचॉफ के नियम)।
मशीन लर्निंग में नॉर्मल इक्वेशन्स (हालांकि रिज रिग्रेशन बेहतर)।
इस लेख में, हम दी गई समस्या के समाधान और दृष्टिकोण के बारे में जानेंगे।समस्या कथन - n*n क्रम का एक वर्ग मैट्रिक्स दिया गया है, हमें मैट्रिक्स के तत्वों को Z फॉर्म में प्रदर्शित करना होगा।Z फॉर्म निम्नलिखित चरणों में मैट्रिक्स को पार करना है -पहली पंक्ति को पार करेंअब, दूसरी प्रमुख विकर्ण को पार करें
पायथन में हम विभिन्न मैट्रिक्स मैनिपुलेशन और ऑपरेशन हल कर सकते हैं। Numpy मॉड्यूल मैट्रिक्स ऑपरेशन के लिए विभिन्न मेथड प्रदान करता है।
add() - दो मैट्रिक्स के तत्वों को जोड़ता है।
subtract() - दो मैट्रिक्स के तत्वों को घटाता है।
divide() - दो मैट्रिक्स के तत्वों को विभाजित करता है।
multiply() - दो
समस्या विवरण
द्विघात समीकरण को पायथन का उपयोग करके हल करने के लिए आप cmath मॉड्यूल का उपयोग कर सकते हैं। ऐसा इसलिए है क्योंकि द्विघात समीकरण के मूल प्रकृति में जटिल हो सकते हैं। यदि आपके पास ax^2 + bx + c = 0 रूप का द्विघात समीकरण है, तो:
उदाहरण
import cmath
a = 12
b = 8
c = 1
# विविक्तकर
d = (b**2