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

Numpy中求解Ax=b时固定部分x元素值的简便方法

带固定元素的线性方程组Ax=b求解方法

当你需要求解线性方程组Ax=b,同时要求x的部分元素取固定值时,不需要复杂的矩阵修改技巧,直接通过拆分转化就能简便解决,以下是具体思路和步骤:

核心思路

把固定元素对应的项从原方程中分离出来,将问题转化为只包含未知元素的新线性方程组,求解后再补回固定元素即可。

具体步骤(以x₁固定为4的3×3矩阵为例)

  1. 拆分原方程
    设A是3×3矩阵,列向量为A=[a₁, a₂, a₃],x=[4, x₂, x₃]^T,b是3×1右端项。原方程Ax=b可展开为:
    4a₁ + x₂a₂ + x₃a₃ = b
    
  2. 构造新方程组
    将固定项移到等式右侧,得到只含未知变量x₂、x₃的方程:
    x₂a₂ + x₃a₃ = b - 4a₁
    
    此时:
    • 新系数矩阵A':去掉原矩阵A的第一列,即A'=[a₂, a₃](3×2矩阵)
    • 新右端项b':计算b - 4*a₁(3×1向量)
    • 新未知向量x':[x₂, x₃]^T(2×1向量)
  3. 求解新方程组
    求解A'x' = b',根据A'的秩情况:
    • 若A'列满秩且方程组相容,可直接求出精确解x'
    • 若方程组超定(方程数多于未知量),可通过最小二乘法求最优近似解
  4. 补回固定元素
    将解得的x₂、x₃与固定值4组合,得到原问题的解x=[4, x₂, x₃]^T

一般化方法(适用于任意固定元素)

假设x的第k个元素固定为常数c:

  • 取出A的第k列,记为a_k
  • 计算新右端项:b' = b - c*a_k
  • 生成新系数矩阵A':删除A的第k列
  • 生成新未知向量x':删除x的第k个元素
  • 求解A'x' = b',最后将c补回x'的对应位置得到原解

这种方法的优势在于无需对原矩阵做复杂的增广或修改,仅通过简单的向量运算拆分问题,计算效率高且逻辑清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:25:33