Hướng dẫn how do you solve a matrix in python? - làm thế nào để bạn giải quyết một ma trận trong python?

linalg.solve (a, b) [nguồn]#solve(a, b)[source]#

Giải một phương trình ma trận tuyến tính hoặc hệ thống phương trình vô hướng tuyến tính.

Tính toán giải pháp chính xác của người Viking, x, của các phương trình ma trận tuyến tính được xác định rõ ràng, tức là Ax = b.

Tham số (Mạnh, m, m) mảnga(…, M, M) array_like

Ma trận hệ số.

B {(Mạnh, M,), (Mạnh, M, K)}, Array_Like{(…, M,), (…, M, K)}, array_like

Các giá trị biến phụ thuộc hoặc của các giá trị phụ thuộc.

ReturnSx {(Mạnh, m,), (Mạnh, m, k)} ndarrayx{(…, M,), (…, M, K)} ndarray

Giải pháp cho hệ thống a x = b. Hình dạng trả lại giống hệt với b.

Risislinalgerror

Nếu A là số ít hoặc không vuông.

Ghi chú

Mới trong phiên bản 1.8.0.

Quy tắc phát sóng áp dụng, xem tài liệu numpy.linalg để biết chi tiết.

Các giải pháp được tính toán bằng cách sử dụng thói quen Lapack _gesv.

Phải là hình vuông và có thứ hạng đầy đủ, tức là, tất cả các hàng (hoặc, tương đương, các cột) phải độc lập tuyến tính; Nếu một trong hai không đúng, hãy sử dụng lstsq cho các giải pháp tốt nhất tốt nhất của hệ thống/phương trình.

Người giới thiệu

1

G. Strang, Đại số tuyến tính và các ứng dụng của nó, tái bản lần 2, Orlando, FL, Academy Press, Inc., 1980, pg. 22.

Ví dụ

Giải quyết hệ phương trình x0 + 2 * x1 = 13 * x0 + 5 * x1 = 2:

>>> a = np.array([[1, 2], [3, 5]])
>>> b = np.array([1, 2])
>>> x = np.linalg.solve(a, b)
>>> x
array([-1.,  1.])

Kiểm tra xem giải pháp có chính xác không:

>>> np.allclose(np.dot(a, x), b)
True

Hướng dẫn how do you solve a matrix in python? - làm thế nào để bạn giải quyết một ma trận trong python?

Trong một bài viết trước, chúng tôi đã xem xét giải quyết vấn đề LP, tức là một hệ phương trình tuyến tính với các ràng buộc bất bình đẳng. Nếu tập hợp các phương trình tuyến tính của chúng tôi có các ràng buộc có tính xác định, chúng tôi có thể biểu diễn vấn đề dưới dạng ma trận và áp dụng đại số ma trận. Các phương thức ma trận biểu thị nhiều phương trình tuyến tính theo cách nhỏ gọn trong khi sử dụng các hàm thư viện ma trận hiện có.

Chúng tôi sẽ sử dụng Numpy (một hướng dẫn tốt ở đây) và Scipy (hướng dẫn tham khảo ở đây). Để cài đặt các gói tuyệt vời này, có hàng tấn tài nguyên trên web, chúng tôi chỉ chỉ ra việc cài đặt ngăn xếp Scipy.

Một ví dụ

Khi thực hành của chúng tôi, chúng tôi sẽ tiến hành một ví dụ, đầu tiên viết mô hình ma trận và sau đó sử dụng Numpy cho một giải pháp.Numpy for a solution.

& nbsp; & nbsp;  

Hướng dẫn how do you solve a matrix in python? - làm thế nào để bạn giải quyết một ma trận trong python?

Bây giờ, chúng ta có thể chính thức hóa vấn đề với ma trận:

& nbsp; & nbsp;  

Hướng dẫn how do you solve a matrix in python? - làm thế nào để bạn giải quyết một ma trận trong python?

Sau đó, các phương trình tuyến tính có thể được viết theo cách này:

& nbsp; & nbsp;  

Hướng dẫn how do you solve a matrix in python? - làm thế nào để bạn giải quyết một ma trận trong python?

Để giải cho vectơ X, chúng ta phải lấy nghịch đảo của ma trận A và phương trình được viết như sau:

& nbsp; & nbsp;  

Hướng dẫn how do you solve a matrix in python? - làm thế nào để bạn giải quyết một ma trận trong python?

Sử dụng Numpy để giải quyết hệ thống

import numpy as np
# define matrix A using Numpy arrays
A = np.array([[2, 1, 1],
 [1, 3, 2],
 [1, 0, 0]]) 

#define matrix B
B = np.array([4, 5, 6]) 

# linalg.solve is the function of NumPy to solve a system of linear scalar equations
print "Solutions:\n",np.linalg.solve(A, B ) 

Solutions:
[  6.  15. -23.]

Vì vậy, các giải pháp là:

Hướng dẫn how do you solve a matrix in python? - làm thế nào để bạn giải quyết một ma trận trong python?

Khi ma trận lớn lên

Khi số lượng biến tăng, kích thước của ma trận A cũng tăng lên và nó trở nên tốn kém về mặt tính toán để có được sự đảo ngược ma trận của A. Trong số các phương pháp khác nhau, chúng tôi sẽ xem xét 3 quy trình để đưa ma trận trở thành ma trận đơn giản hơn: Phân hủy Lu, phân rã QR và phương pháp lặp Jacobi.
computationally expensive to get the matrix inversion of A. Among the various methods, we will consider 3 procedures in order to get matrix A factorized into simpler matrices: the LU decomposition, the QR decomposition and the Jacobi iterative method.

Lu phân hủy

Sự phân hủy LU, còn được gọi là hệ số thấp hơn, là một trong những phương pháp giải các hệ phương trình tuyến tính. Đúng như tên gọi, nhân tố LU phân hủy ma trận A thành một sản phẩm của hai ma trận: một ma trận hình tam giác thấp hơn L và ma trận hình tam giác trên U. Sự phân hủy có thể được biểu diễn như sau:

& nbsp; & nbsp;  

Hướng dẫn how do you solve a matrix in python? - làm thế nào để bạn giải quyết một ma trận trong python?

& nbsp; & nbsp;  

Hướng dẫn how do you solve a matrix in python? - làm thế nào để bạn giải quyết một ma trận trong python?

& nbsp; & nbsp;  

Hướng dẫn how do you solve a matrix in python? - làm thế nào để bạn giải quyết một ma trận trong python?

Lu phân hủy với Scipy

#import linalg package of the SciPy module for the LU decomp
import scipy.linalg as linalg 
#import NumPy
import numpy as np
#define A same as before
A = np.array([[2., 1., 1.],
 [1., 3., 2.],
 [1., 0., 0.]]) 

#define B
B = np.array([4., 5., 6.]) 

#call the lu_factor function
LU = linalg.lu_factor(A) 

#solve given LU and B
x = linalg.lu_solve(LU, B) 
print "Solutions:\n",x

#we get the same solution as before
Solutions:
[  6.  15. -23.] 

#now we want to see how A has been factorized, P is the so called Permutation matrix
P, L, U = scipy.linalg.lu(A) 

print P
[[ 1.  0.  0.]
 [ 0.  1.  0.]
 [ 0.  0.  1.]]
print L
[[ 1.   0.   0. ]
 [ 0.5  1.   0. ]
 [ 0.5 -0.2  1. ]]
print U
[[ 2.   1.   1. ]
 [ 0.   2.5  1.5]
 [ 0.   0.  -0.2]]

Từ các biến L và U như được in trong mã, chúng ta có thể biểu diễn một yếu tố thành yếu tố:

& nbsp; & nbsp;  

Hướng dẫn how do you solve a matrix in python? - làm thế nào để bạn giải quyết một ma trận trong python?

Làm thế nào để bạn truy cập một ma trận trong Python?

Mỗi mục trong một ma trận có thể là các giá trị số nguyên hoặc giá trị nổi, hoặc thậm chí nó có thể là các số phức tạp ...
Ví dụ: ....
Mã số 1:.
Đầu ra: Nhập số lượng hàng: 2 Nhập số lượng cột: 3 Nhập các mục nhập theo chiều dọc: 1 2 3 4 5 6 1 2 3 4 5 6. ....
Mã số 2: Sử dụng hàm Map () và Numpy ..

Làm thế nào để bạn giải các phương trình trong Python?

Để giải hai phương trình cho hai biến X và Y, chúng tôi sẽ sử dụng hàm Sympy Solve ().Hàm giải quyết () có hai đối số, một tuple của các phương trình (eq1, eq2) và một tuple của các biến để giải cho (x, y).Đối tượng giải pháp Sympy là một từ điển Python.use SymPy's solve() function. The solve() function takes two arguments, a tuple of the equations (eq1, eq2) and a tuple of the variables to solve for (x, y) . The SymPy solution object is a Python dictionary.

Làm thế nào để Numpy giải quyết hoạt động?

Giải quyết: Numpy Linalg Solve () Chức năng trong Python.Numpy linalg Solve () Hàm được sử dụng để giải phương trình ma trận tuyến tính hoặc một hệ thống phương trình vô hướng tuyến tính.Hàm giải quyết () tính toán x chính xác của phương trình ma trận AX = B trong đó A và B được đưa ra ma trận.calculates the exact x of the matrix equation ax=b where a and b are given matrices.

Làm thế nào để bạn thực hiện các hoạt động ma trận trong Numpy?

Thêm, trừ, chia và nhân ma trận..
numpy.add () - thêm hai ma trận ..
numpy.subTract () - trừ hai ma trận ..
numpy.divide () - chia hai ma trận ..
numpy.multiply () - nhân hai ma trận ..