You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用SymPy获取Ax=0的两个独立特解向量?

解决SymPy输出齐次方程组独立特解的问题

直接用SymPy矩阵的nullspace()方法就能搞定,这个方法会直接返回齐次方程组Ax=0零空间的线性无关基向量,也就是你要的两个独立特解,比用linsolve后再拆分参数化结果方便多了。

修正后的完整代码

from sympy import Matrix

# 直接用SymPy构造系数矩阵,无需依赖numpy
Vec = Matrix([
    [1, 5, 7, 9],
    [0, 4, 1, 7],
    [2, -2, 11, -3]
])

# 获取零空间基向量(即独立特解)
basis_vectors = Vec.nullspace()

# 分别输出两个特解
print("对应tau0的特解:")
print(basis_vectors[0])
print("\n对应tau1的特解:")
print(basis_vectors[1])

输出结果示例

对应tau0的特解:
Matrix([[-23/4], [-1/4], [1], [0]])

对应tau1的特解:
Matrix([[-1/4], [-7/4], [0], [1]])

说明

  1. nullspace()返回的是一个列表,每个元素都是SymPy矩阵对象,正好对应你需要的独立特解——这两个向量就是原输出中tau0和tau1各自的系数向量。
  2. 原代码里导入solve却没用到,而且用np.matrix转SymPy矩阵属于多余操作,直接用SymPy的Matrix构造更简洁。
  3. 如果你需要验证,把任意一个基向量代入Ax计算,结果都会是零向量,符合齐次方程组的解的要求。

内容的提问来源于stack exchange,提问作者Ben G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 19:39:58