Python:numpy + sympy 求解 Ax = 0
2022/2/23 20:24:01
本文主要是介绍Python:numpy + sympy 求解 Ax = 0,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
numpy.linalg.solve 貌似不能解出 Ax = 0 的非零解
sympy 这个库是支持线性代数的一些运算的,但是好像又没那么成熟
所以出此下策,用 numpy 矩阵 + sympy 求解多元方程,下面以归一化条件为例求非零特解
import sympy import numpy as np A = np.array([[0.8, 0.1, 0.1], [0.7, 0.2, 0.1], [0.6, 0.3, 0.1]]) - np.eye(3) dim = A.shape[0] x = sympy.symbols([f"x{idx}" for idx in range(dim)]) # 创建未知数列表 gen_sol = sympy.solve(np.array(x) @ A, *x) # 得到 Ax = 0 的通解 cond = sympy.Eq(sum(x), 1) # 创建归一化条件 equals = [sympy.Eq(key, value) for key, value in gen_sol.items()] + [cond] # 以通解创建方程组, 附加条件 part_sol = sympy.solve(equals, x) # 得到特定条件下的特解 assert part_sol, "Ax = 0 在该条件下无解" result = np.array([part_sol[key] for key in x]) print(result)
这篇关于Python:numpy + sympy 求解 Ax = 0的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南