在 SymPy 中求解“大”方程组时出现断言错误

问题描述 投票:0回答:1

我有一个“大”线性方程组 -

2016x2015
,确切地说,在下面的示例中,我想使用 SymPy 求解它,以获得精确的解。

我尝试使用以下代码:

import sympy as sym
import numpy as np

M = sym.Matrix(np.eye(2016))
symbols = sym.symbols('a0:2015')

print(M.shape[1], len(symbols))

print(sym.solve_linear_system(M, symbols))

第一个

print
工作正常,并返回
2016 2015
,正如预期的那样。然而,当系统应该在下面解决时,却抛出了以下异常:

File /opt/anaconda3/lib/python3.11/site-packages/sympy/solvers/solvers.py:2311 in solve_linear_system
    assert system.shape[1] == len(symbols) + 1

AssertionError

我不明白为什么会这样 - 毕竟,第一个打印表明断言应该是正确的......

为什么会出现这种情况?

提前致谢!

python sympy linear-algebra
1个回答
0
投票

您应该将

sym.symbols
设置为
'a0:2016'

symbols = sym.symbols('a0:2015')
print(symbols[-1])
# >>> a2014
print(len(symbols))
# >>> 2015
print(M.shape[0])
# >>> 2016
© www.soinside.com 2019 - 2024. All rights reserved.