Giải phương trình 2 biến Python

Các hướng dẫn sau đây là phần giới thiệu về giải phương trình tuyến tính và phi tuyến tính bằng Python. Giải pháp cho phương trình tuyến tính là thông qua các phép toán ma trận trong khi các tập hợp phương trình phi tuyến tính yêu cầu người giải để tìm ra giải pháp bằng số

Giải phương trình tuyến tính với Python

Mã nguồn cho các giải pháp tuyến tính

nhập numpy dưới dạng np

một = np. mảng[[ [3,-9], [2,4] ]]
b = np. mảng [[-42,2]]
z = np. linalg. giải[A,b]
in[z]

m = np. mảng[[ [1,-2,-1], [2,2,-1], [-1,-1,2] ]]
c = np. mảng[[6,1,1]]
y = n p. linalg. giải[M,c]
in[y]

Giải phương trình phi tuyến bằng Python

Mã nguồn cho giải pháp phi tuyến tính [fsolve]

nhập numpy dưới dạng np
từ scipy. tối ưu hóa nhập khẩu fsolve

def myFunction[z]
x = z[0]
y = z[1]
w = z[2]

F = np. trống[[3]]
F[0] = x**2+y**2-20
F[1] = y - x**2
F[2] = w + 5 - x*y
trả lại F

zGuess = np. mảng[[1,1,1]]
z = fsolve[myFunction,zGuess]
in[z]

Mã nguồn cho giải pháp phi tuyến tính [gekko]

từ gekko nhập khẩu GEKKO
m = GEKKO[]
x,y,w = [m. Var[1] cho tôi trong phạm vi[3]]
m. Phương trình[[x**2+y**2==20,\
y-x**2==0,\
w+5-x*y==0]]
m. giải quyết [phân phối = Sai]
in[x. giá trị, y. giá trị, w. giá trị]

Giải pháp tượng trưng với Sympy

Sympy là một gói cho các giải pháp tượng trưng trong Python có thể được sử dụng để giải các hệ phương trình

$$2x^2+y+z=1$$ $$x+2y+z=c_1$$ $$-2x+y=-z$$

nhập sympy dưới dạng sym
ký hiệu. init_printing[]
x,y,z = biểu tượng. biểu tượng ['x, y, z']
c1 = biểu tượng. Biểu tượng ['c1']
f = biểu tượng. Phương trình[2*x**2+y+z,1]
g = biểu tượng. Phương trình[x+2*y+z,c1]
h = biểu tượng. Phương trình[-2*x+y,-z]

ký hiệu. giải[[f,g,h],[x,y,z]]

Khi được giải quyết trong môi trường IPython, chẳng hạn như sổ ghi chép Jupyter, kết quả được hiển thị dưới dạng

$$x=-\frac{1}{2}+\frac{\sqrt{3}}{2}$$ $$y=c_1 - \frac{3 \sqrt{3}}{2} +\frac

và giải pháp thứ hai

$$x=-\frac{1}{2}-\frac{\sqrt{3}}{2}$$ $$y=c_1 + \frac{3 \sqrt{3}}{2} +\frac

Cách tiếp cận tương tự áp dụng cho các phương trình tuyến tính hoặc phi tuyến tính

Hướng dẫn bổ sung

Các phương trình tuyến tính và phi tuyến tính cũng có thể được giải bằng Excel và MATLAB. Nhấp vào liên kết thích hợp để biết thêm thông tin và mã nguồn

Ngôn ngữ lập mô hình APMonitor với giao diện Python là phần mềm tối ưu hóa cho các phương trình đại số hỗn hợp nguyên và vi phân. Nó được kết hợp với các bộ giải quy mô lớn để lập trình số nguyên tuyến tính, bậc hai, phi tuyến tính và hỗn hợp [LP, QP, NLP, MILP, MINLP]. Các phương thức hoạt động bao gồm đối chiếu dữ liệu, tối ưu hóa thời gian thực, mô phỏng động và điều khiển dự báo phi tuyến. Nó có sẵn miễn phí thông qua MATLAB, Python, Julia hoặc từ giao diện trình duyệt web

NumPy. Giải hệ phương trình tuyến tính

Đầu tiên chúng ta xem xét một hệ phương trình tuyến tính với hai biến $x$ và $y$

Chúng tôi chọn một ví dụ từ văn bản cổ điển của Hall & Knight Đại số sơ cấp 1

$$ 3x + 7y = 27 \\ 5x + 2y = 16 $$

Điều này có thể được đặt ở dạng sản phẩm chấm ma trận như

$$ \begin{bmatrix} 3 & 7 \\ 5 & 2 \\ \end{bmatrix} \cdot \begin{bmatrix} x \\ y \\ \end{bmatrix} = \begin{bmatrix} 27 \\ 16

Nếu $A$ đại diện cho ma trận các hệ số, $x$ là vectơ cột của các biến và $B$ là vectơ cột của nghiệm, thì phương trình trên có thể được rút gọn thành

$$ Trục = B $$

Tích ma trận trên sẽ được xác định khi và chỉ khi số cột trong ma trận hệ số $A$ bằng số hàng trong ma trận biến $x$

Ở trường, hầu hết chúng ta đều quen thuộc với việc giải các tập hợp phương trình tuyến tính như vậy bằng Quy tắc Cramer, liên quan đến các yếu tố quyết định.

Thư viện số của Python NumPy có hàm numpy.linalg.solve[] giải phương trình ma trận tuyến tính hoặc hệ phương trình vô hướng tuyến tính

Ở đây chúng tôi tìm thấy giải pháp cho tập hợp các phương trình trên trong Python bằng cách sử dụng NumPy's numpy. linalg. hàm giải quyết []

				
					import numpy as np

					a = np.array[[[3,7], [5,2]]]
					b = np.array[[27,16]]
					x = np.linalg.solve[a, b]

					print[x]
				
			

Nếu đoạn script Python trên được thực thi, ta sẽ nhận được nghiệm ở dạng ma trận cột như

				
					[2. 3.]
				
			

đại diện cho các giá trị $x$ và $y$ tương ứng. Vì vậy, $x = 2$ và $y = 3$

Ngoài ra bạn có thể dùng hàm numpy.allclose[] để kiểm tra xem lời giải đã đúng chưa. Sau đây sẽ trả về True

				
					np.allclose[np.dot[a, x], b]
				
			
Phương Trình Đồng Thời Ba Biến

Tiếp theo, chúng tôi xem xét các phương trình đồng thời trong ba ẩn số hoặc biến $x$ , $y$ và $z$. Chúng tôi chọn một ví dụ khác từ cùng một cuốn sách Elementary Algebra2 của Hall & Knight

$$ 6x + 2y - 5z = 13 \\ 3x + 3y - 2z = 13 \\ 7x + 5y - 3z = 26 $$

Ta biểu diễn các phương trình trên dưới dạng ma trận

$$ \begin{bmatrix} 6 & 2 & -5 \\ 3 & 3 & -2 \\ 7 & 5 & -3 \\ \end{bmatrix} \cdot \begin{bmatrix} x \\ y \\ z

Chúng tôi giải quyết nó bằng hàm numpy.linalg.solve[] của NumPy

					
						import numpy as np

						a = np.array[[[6,2,-5], [3,3,-2], [7,5,-3]]]
						b = np.array[[13,13,26]]
						x = np.linalg.solve[a, b]

						print[x]
					
				

Khi thực thi tập lệnh, giải pháp được in dưới dạng ma trận cột, biểu thị các giá trị tương ứng cho $x$ , $y$ và $z$

Tôi có thể giải một phương trình với 2 biến không?

Chúng ta có thể sử dụng một hệ phương trình để giải bài toán này . Một hệ phương trình là hai hoặc nhiều phương trình với hai biến có thể được giải bằng cách vẽ đồ thị trên mặt phẳng tọa độ. Để vẽ đồ thị của một hệ phương trình, cả hai phương trình có thể được thay đổi thành dạng hệ số góc của một đường thẳng.

Làm cách nào để giải hai phương trình tuyến tính hai biến trong Python?

Chúng ta có thể sử dụng hàm resolve[] của SymPy để tính giá trị của x và y . Đối số đầu tiên được truyền cho hàm giải quyết [] là một bộ của hai phương trình [eq1, eq2]. Đối số thứ hai được truyền cho hàm giải quyết [] là một bộ biến mà chúng ta muốn giải cho [x, y].

Python có thể giải phương trình không?

Giải pháp tượng trưng với Sympy . Cách tiếp cận tương tự áp dụng cho các phương trình tuyến tính hoặc phi tuyến tính. Sympy is a package for symbolic solutions in Python that can be used to solve systems of equations. The same approach applies to linear or nonlinear equations.

SymPy có thể giải các phương trình không?

Gói Python SymPy có thể giải một cách tượng trưng các phương trình, phương trình vi phân, phương trình tuyến tính, phương trình phi tuyến tính, bài toán ma trận, bất đẳng thức, phương trình Diophantine và đánh giá tích phân. SymPy cũng có thể giải quyết bằng số

Chủ Đề