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

使用SymPy批量求解数组对应线性方程的变量x

批量求解线性方程的高效方案

核心思路

你的方程.85x - 元素 = 0本质是简单线性方程,解可直接通过数学推导得出:x = 元素 / 0.85。用SymPy做符号运算处理大量数值元素完全冗余,Numpy的数组批量运算才是最优选择——速度快、代码简洁,完美适配数千个元素的场景。

代码实现

推荐方案:Numpy批量运算

import numpy as np

# 你的二维输入数组
input_arr = np.array([[17.594],
                      [15.79 ],
                      [11.31 ],
                      [16.39 ],
                      [13.87 ],
                      [16.99 ]])

# 一行代码批量计算所有解
x_solutions = input_arr / 0.85

# 输出结果
print(x_solutions)

运行后直接得到对应每个元素的解:

[[20.69882353]
 [18.57647059]
 [13.30588235]
 [19.28235294]
 [16.31764706]
 [19.98823529]]

备选方案:SymPy批量处理(不推荐大量元素)

如果一定要用SymPy实现,可通过遍历数组元素完成,但效率远低于Numpy,仅适合少量元素场景:

from sympy.solvers import solve
from sympy import Symbol
import numpy as np

x = Symbol('x')
input_arr = np.array([[17.594],
                      [15.79 ],
                      [11.31 ],
                      [16.39 ],
                      [13.87 ],
                      [16.99 ]])

# 扁平化数组后逐个求解,再恢复原形状
x_solutions = [solve(0.85*x - elem, x)[0] for elem in input_arr.flatten()]
x_solutions = np.array(x_solutions).reshape(input_arr.shape)

print(x_solutions)

方案对比

  • Numpy:基于C的底层运算,处理数千个元素仅需毫秒级,代码无冗余循环,是生产环境首选。
  • SymPy:符号运算适合复杂代数推导,但处理纯数值批量计算时,每个元素都要做符号解析,速度慢且没必要。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 21:55:18