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 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 In [1]: from sympy import symbols, Eq, solveTiế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 sympyXem 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, solveTiế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, solve1) 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, solve1) đượ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, solve4. 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, solve5 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, solve6 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 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. |