Hướng dẫn python solve multiple equations - python giải nhiều phương trình

Giải hai phương trình cho hai không biết

Giải hai phương trình cho hai không xác định có thể được thực hiện bằng cách sử dụng Sympy. Xem xét tập hợp hai phương trình sau với hai biến:

Để giải quyết hệ thống này gồm hai phương trình cho hai ẩn số, X và Y, trước tiên hãy nhập gói Sympy. Từ gói Sympy, các chức năng

eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
5,
eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
6 và
eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
7 là cần thiết.x and y, first import the SymPy package. From the SymPy package, the functions
eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
5,
eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
6 and
eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
7 are needed.

In [1]:

from sympy import symbols, Eq, solve

Tiếp theo, tạo hai đối tượng ký hiệu Sympy, x và y. Như được hiển thị trong phần trước, chuỗi được truyền dưới dạng đối số đầu vào cho hàm
eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
8,
eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
9, không có dấu phẩy nào. Đầu ra của hàm
eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
8 là hai đối tượng ký hiệu
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
1 và
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
2. Các đầu ra này phải được phân tách bằng dấu phẩy và không được bao quanh bởi các trích dẫn. Bây giờ xác định hai phương trình là đối tượng phương trình Sympy.x and y. As shown in a previous section, the string passed as an input argument to the
eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
8 function,
eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
9, does not have any commas. The outputs of the
eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
8 function are the two symbol objects
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
1 and
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
2. These outputs must be separated by a comma and are not surrounded by quotes. Now define the two equations as SymPy equation objects.

In [3]:

eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)

Chúng ta có thể sử dụng hàm
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
3 của Sympy để tính giá trị của X và Y. Đối số đầu tiên được truyền cho hàm
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
3 là một bộ của hai phương trình
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
5. Đối số thứ hai được truyền cho hàm
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
3 là một bộ biến số của các biến chúng tôi muốn giải cho
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
7. Giải pháp là ở dạng từ điển Python. Các khóa từ điển là các biến và các giá trị từ điển là các giải pháp số.x and y. The first argument passed to the
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
3 function is a tuple of the two equations
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
5. The second argument passed to the
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
3 function is a tuple of the variables we want to solve for
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
7. The solution is in the form of a Python dictionary. The dictionary keys are the variables and the dictionary values are the numerical solutions.

Chúng ta có thể truy cập giải pháp ra khỏi từ điển giải pháp bằng cách sử dụng lập chỉ mục từ điển thông thường.

In [5]:

sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')

Giải quyết vấn đề thống kê với sympy

Xem xét vấn đề thống kê kỹ thuật sau đây có thể được giải quyết bằng toán học biểu tượng và sympy.

GIVEN:

Trọng lượng 22 lbs được treo từ một chiếc nhẫn. Chiếc nhẫn được hỗ trợ bởi hai dây. Dây đầu tiên, CE CE, cao hơn 30 độ so với ngang và bên phải. Dây thứ hai, dây BD, là 45 độ bên trái và phía trên ngang.

w = 22 lb = 22 lb

T_ {ce} @ +30 độ CCW so với +trục x @ +30 degrees CCW relative to +x-axis

T_ {BD} @ +45 Disress CW so với -x -trục @ +45 degress CW relative to -x-axis

FIND:

Độ lớn của t_ {ce} và t_ {bd}T_{CE} and T_{BD}

SOLUTION:

Để giải quyết độ lớn của t_ {ce} và t_ {bd}, chúng ta cần giải quyết hai phương trình cho hai ẩn số.T_{CE} and T_{BD}, we need to solve to two equations for two unknowns.

Để thực hiện điều này với Python, lần đầu tiên nhập khẩu Numpy và Sympy. Các chức năng Sympy

eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
5,
eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
6 và
eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
7 là cần thiết. Chúng tôi cũng sẽ sử dụng các hàm Trig của Numpy để giải quyết vấn đề này.

In [6]:

import numpy as np
from sympy import symbols, Eq, solve

Tiếp theo, xác định các biến toán biểu tượng. Nhiều biến toán biểu tượng có thể được xác định cùng một lúc. Hãy nhớ các tên đối số (ở phía bên phải của toán tử gán
import numpy as np
from sympy import symbols, Eq, solve
1) cần được đặt trong các trích dẫn ____ và được phân tách bằng không gian, không có dấu phẩy. Các tên đối tượng (ở phía bên trái của toán tử gán
import numpy as np
from sympy import symbols, Eq, solve
1) được phân tách bằng dấu phẩy, không có báo giá.

Trong & nbsp; [7]:

Tce, Tbd = symbols('Tce Tbd')

Hai phương trình dựa trên tổng của các lực cần được xác định.

Giả sử vòng ở trạng thái cân bằng tĩnh:

Ba lực lượng mở rộng trên vòng được xác định là:

{T_ {ce}} = căng thẳng \ in \ cable \ ce \

\ vec {t_ {ce}} = t_ {ce} cos (30) \ hat {i} + t_ {ce} sin (30)

{T_ {bd}} = căng thẳng \ in \ cable \ bd

\ vec {t_ {bd}} = - t_ {bd} cos (45) \ hat {i} + t_ {bd} sin (45) \ hat {j}

\ vec {w} = 0 \ hat {i} - 22 \ hat {j}

Lấy \ sigma f_ {x} = 0 (tổng của \ hat {i} thuật ngữ):\Sigma F_{x} = 0 (sum of the \hat{i} terms):

T_ {ce} cos (30) - t_ {bd} cos (45) + 0 = 0

Lấy \ sigma f_ {y} = 0 (tổng của \ hat {j} thuật ngữ):\Sigma F_{y} = 0 (sum of the \hat{j} terms):

$$ T_ {ce} sin (30) + t_ {bd} sin (45) - 22 = 0 $$ Phương trình đầu tiên, dựa trên tổng của các lực trong hướng x (các thuật ngữ \ hat {i}) Là:\hat{i} terms) is:

T_ {ce} cos (30) - t_ {bd} cos (45) + 0 = 0

Lấy \ sigma f_ {y} = 0 (tổng của \ hat {j} thuật ngữ):

$$ T_ {ce} sin (30) + t_ {bd} sin (45) - 22 = 0 $$ Phương trình đầu tiên, dựa trên tổng của các lực trong hướng x (các thuật ngữ \ hat {i}) Là:

In [8]:

eq1=Eq(Tce  np.cos(np.radians(30)) - Tbd  np.cos(np.radians(45)))
print(eq1)

Eq(-0.707106781186548*Tbd + 0.866025403784439*Tce, 0)

Phương trình này có thể được biểu diễn dưới dạng đối tượng phương trình Sympy. Lưu ý phía bên phải của phương trình là
import numpy as np
from sympy import symbols, Eq, solve
4. Các đối tượng phương trình Sympy được khởi tạo với các biểu thức bằng không. Nếu biểu thức không bằng 0, chỉ cần trừ cả hai bên theo thuật ngữ ở phía bên phải của dấu bằng và sử dụng biểu thức kết quả (bằng 0) để tạo đối tượng phương trình Sympy.

Một chi tiết trong phần mã bên dưới là hàm

import numpy as np
from sympy import symbols, Eq, solve
5 của Numpy chấp nhận một góc trong radian, vì vậy chúng ta cần chuyển đổi các góc của mình từ độ sang radian bằng hàm
import numpy as np
from sympy import symbols, Eq, solve
6 của Numpy.

Phương trình thứ hai, dựa trên tổng của các lực trong hướng y là:

In [9]:

eq2=Eq(Tce  np.sin(np.radians(30)) + Tbd  np.sin(np.radians(45))-22)
print(eq2)

T_ {ce} sin (30) + t_ {bd} sin (45) - 22 = 0

Xác định phương trình này là một đối tượng phương trình Sympy:T_{ce} and T_{bd} with SymPy's
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
3 function. The first argument passed to the
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
3 function is a tuple of equations to solve, the second argument passed to the
sol_dict = solve((eq1,eq2), (x, y))
print(f'x = {sol_dict[x]}')
print(f'y = {sol_dict[y]}')
3 function is a tuple of the variables to solve for.

In [10]:

solve((eq1,eq2),(Tce, Tbd))

Out[10]:

eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
0

________số 8

Các giải pháp số có thể được rút ra khỏi từ điển bằng cách sử dụng truy cập từ điển Python thông thường.Lưu ý

Tce, Tbd = symbols('Tce Tbd')
1 và
Tce, Tbd = symbols('Tce Tbd')
0 là các đối tượng ký hiệu Sympy, không phải chuỗi.

In [11]:

eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
1

eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
2

Vấn đề tương tự có thể được giải quyết một lần nữa, nhưng với W được giữ như một biến.w kept as a variable.

In [12]:

eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
3

Out[12]:

eq1 = Eq(x + y - 5)
eq2 = Eq(x - y + 3)
4

Kết quả là một giải pháp là về biến đổi w.w.