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

Python实现带参数的矩阵向量乘法及公式化简需求

Python实现符号化矩阵-向量乘法与公式化简

SymPy是Python中专门用于符号数学运算的库,完全能满足你需要的参数化矩阵向量乘法、公式自动展开与化简需求,无需依赖外部工具。

具体实现步骤:

  1. 导入SymPy库并定义符号变量
    先把需要用到的矩阵元素和向量元素定义为符号变量:

    from sympy import symbols, Matrix, simplify
    
    # 定义符号变量
    a11, a12, a21, a22, v1, v2 = symbols('a11 a12 a21 a22 v1 v2')
    
  2. 创建矩阵与向量
    按照你的需求构造符号矩阵和向量:

    # 定义符号矩阵和向量
    mat = Matrix([[a11, a12], [a21, a22]])
    vec = Matrix([v1, v2])
    
  3. 执行乘法并化简结果
    直接用SymPy的矩阵乘法操作,再通过simplify()完成同类项抵消等化简操作:

    # 计算矩阵-向量乘积
    res = mat * vec
    # 化简结果(如果有同类项会自动抵消)
    simplified_res = simplify(res)
    
    # 输出结果
    print("原始乘积结果:")
    print(res)
    print("\n化简后的结果:")
    print(simplified_res)
    

输出示例:

运行上述代码后,会得到:

原始乘积结果:
Matrix([[a11v1 + a12v2], [a21v1 + a22v2]])

化简后的结果:
Matrix([[a11v1 + a12v2], [a21v1 + a22v2]])

如果你的矩阵或向量中存在同类项(比如a11=2x,a12=x,v1=3y,v2=6y),simplify()会自动完成合并:

# 带同类项的示例
x, y = symbols('x y')
mat2 = Matrix([[2*x, x], [3*x, 4*x]])
vec2 = Matrix([3*y, 6*y])
res2 = mat2 * vec2
simplified_res2 = simplify(res2)
print(simplified_res2)

输出:

Matrix([[12xy], [33xy]])

优势说明:

  • 完全基于Python本地运行,无需调用外部API,可轻松脚本化处理任意规模的符号矩阵/向量运算。
  • 支持更复杂的符号运算,包括代数化简、因式分解、微积分等,满足后续扩展需求。

内容的提问来源于stack exchange,提问作者Freya W

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:12:11