Sage 无法求解大型非线性方程组

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

我正在尝试使用 Sage Math 求解非线性方程组。该系统有 17 个方程和 11 个未知数。 Sage 不返回任何内容,没有错误,什么也没有。只是挂起。我不知道是什么问题,在网上搜索但无法解决问题。如果有人可以提供帮助,我将不胜感激。 (不确定是否可以在 StackOverlow 上询问这个问题)

A0, A1, A2, A3, A4, B1, B2, B3, B4, c, lambd = var('A0 A1 A2 A3 A4 B1 B2 B3 B4 c lambd')

eq1 = 32*A2*lambd^4 - 48*A4*lambd^2 + A0^2 - 2*A0*c + B1^2 == 0
eq2 = -10*B1*lambd^4 + 56*B3*lambd^4 - 2*B1*lambd^2 + 4*B3*lambd^2 + 2*A0*B1 - 2*B1*c == 0
eq3 = -32*A1*lambd^4 + 240*A3*lambd^4 - 4*A1*lambd^2 + 12*A3*lambd^2 + 2*A0*A1 - 2*A1*c == 0
eq4 = -272*A2*lambd^4 + 960*A4*lambd^4 - 16*A2*lambd^2 + 24*A2*lambd^2 + 2*A0*A2 + A1^2 - 2*A2*c == 0
eq5 = 80*A1*lambd^4 - 1152*A3*lambd^4 + 4*A1*lambd^2 - 36*A3*lambd^2 + 2*A0*A3 + 2*A1*A2 - 2*A3*c == 0
eq6 = 480*A2*lambd^4 - 3392*A4*lambd^4 + 12*A2*lambd^2 - 64*A4*lambd^2 + 2*A0*A4 + 2*A1*A3 + A2^2 - 2*A4*c == 0
eq7 = -48*A1*lambd^4 + 1632*A3*lambd^4 + 24*A3*lambd^2 + 2*A1*A4 + 2*A2*A3 == 0
eq8 = -240*A2*lambd^4 + 4160*A4*lambd^4 + 40*A4*lambd^2 + 2*A2*A4 + A3^2 == 0
eq9 = -720*A3*lambd^4 + 2*A3*A4 - 2*B3*B4 == 0
eq10 = -1680*A4*lambd^4 + A4^2 - B4^2 == 0
eq11 = -122*B2*lambd^4 + 360*B4*lambd^4 - 10*B2*lambd^2 + 12*B4*lambd^2 + 2*A0*B2 + 2*A1*B1 - 2*B2*c == 0
eq12 = 56*B1*lambd^4 - 634*B3*lambd^4 + 4*B1*lambd^2 - 26*B3*lambd^2 + 2*A0*B3 + 2*A1*B2 + 2*A2*B1 - 2*B3*c == 0
eq13 = 360*B2*lambd^4 - 2122*B4*lambd^4 + 12*B2*lambd^2 - 50*B4*lambd^2 + 2*A0*B4 + 2*A1*B3 + 2*A2*B2 + 2*A3*B1 - 2*B4 == 0
eq14 = -48*B1*lambd^4 + 1296*B3*lambd^4 + 24*B3*lambd^2 + 2*A1*B4 + 2*A2*B3 + 2*A3*B2 + 2*A4*B1 == 0
eq15 = -240*B2*lambd^4 + 3440*B4*lambd^4 + 40*B4*lambd^2 + 2*A2*B4 + 2*A3*B3 + 2*A4*B2 == 0
eq16 = -720*B3*lambd^4 + 2*A3*B4 + 2*A4*B3 == 0
eq17 = -1680*B4*lambd^4 + 2*A4*B4 == 0

solutions = solve([eq1, eq2, eq3, eq4, eq5, eq6, eq7, eq8, eq9, eq10, eq11, eq12, eq13, eq14, eq15, eq16, eq17], A0, A1, A2, A3, A4, B1, B2, B3, B4, c, lambd)

顺便说一句,MAPLE 仅用了几毫秒就完成了这件事。

提前致谢。

python math symbolic-math sage
1个回答
0
投票

Sage 的符号环(使用

var
时得到的结构)基于 sympy,并不特别擅长求解多项式方程。我相信 Maple 使用 F4 算法的实现来解决这些系统,您可以通过使用多项式环来在 Sage 中访问它:

sage: R = PolynomialRing(QQ, 'A0, A1, A2, A3, A4, B1, B2, B3, B4, c, lambd')
sage: A0, A1, A2, A3, A4, B1, B2, B3, B4, c, lambd = R.gens()
sage: 
sage: eq1 = 32*A2*lambd^4 - 48*A4*lambd^2 + A0^2 - 2*A0*c + B1^2
....: eq2 = -10*B1*lambd^4 + 56*B3*lambd^4 - 2*B1*lambd^2 + 4*B3*lambd^2 + 2*A0*B1 - 2*B1*c
....: eq3 = -32*A1*lambd^4 + 240*A3*lambd^4 - 4*A1*lambd^2 + 12*A3*lambd^2 + 2*A0*A1 - 2*A1*c
....: eq4 = -272*A2*lambd^4 + 960*A4*lambd^4 - 16*A2*lambd^2 + 24*A2*lambd^2 + 2*A0*A2 + A1^2 - 2*A2*c
....: eq5 = 80*A1*lambd^4 - 1152*A3*lambd^4 + 4*A1*lambd^2 - 36*A3*lambd^2 + 2*A0*A3 + 2*A1*A2 - 2*A3*c
....: eq6 = 480*A2*lambd^4 - 3392*A4*lambd^4 + 12*A2*lambd^2 - 64*A4*lambd^2 + 2*A0*A4 + 2*A1*A3 + A2^2 - 2*A4*c
....: eq7 = -48*A1*lambd^4 + 1632*A3*lambd^4 + 24*A3*lambd^2 + 2*A1*A4 + 2*A2*A3
....: eq8 = -240*A2*lambd^4 + 4160*A4*lambd^4 + 40*A4*lambd^2 + 2*A2*A4 + A3^2
....: eq9 = -720*A3*lambd^4 + 2*A3*A4 - 2*B3*B4
....: eq10 = -1680*A4*lambd^4 + A4^2 - B4^2
....: eq11 = -122*B2*lambd^4 + 360*B4*lambd^4 - 10*B2*lambd^2 + 12*B4*lambd^2 + 2*A0*B2 + 2*A1*B1 - 2*B2*c
....: eq12 = 56*B1*lambd^4 - 634*B3*lambd^4 + 4*B1*lambd^2 - 26*B3*lambd^2 + 2*A0*B3 + 2*A1*B2 + 2*A2*B1 - 2*B3*c
....: eq13 = 360*B2*lambd^4 - 2122*B4*lambd^4 + 12*B2*lambd^2 - 50*B4*lambd^2 + 2*A0*B4 + 2*A1*B3 + 2*A2*B2 + 2*A3*B1 - 2*B4
....: eq14 = -48*B1*lambd^4 + 1296*B3*lambd^4 + 24*B3*lambd^2 + 2*A1*B4 + 2*A2*B3 + 2*A3*B2 + 2*A4*B1
....: eq15 = -240*B2*lambd^4 + 3440*B4*lambd^4 + 40*B4*lambd^2 + 2*A2*B4 + 2*A3*B3 + 2*A4*B2
....: eq16 = -720*B3*lambd^4 + 2*A3*B4 + 2*A4*B3
....: eq17 = -1680*B4*lambd^4 + 2*A4*B4
....: 
sage: I = R.ideal([eq1, eq2, eq3, eq4, eq5, eq6, eq7, eq8, eq9, eq10, eq11, eq12, eq13, eq14, eq15, eq16, eq17])

在我的笔记本电脑上几秒钟内即可计算出 Gröbner 基:

sage: %time I.groebner_basis()
CPU times: user 34.1 s, sys: 53.6 ms, total: 34.2 s
Wall time: 34.1 s
Polynomial Sequence with 169 Polynomials in 11 Variables

品种是3维的:

sage: I.dimension()
3

我不确定您想要什么形式的答案,但是适当单项式顺序的 Gröbner 基础将为您提供答案。

© www.soinside.com 2019 - 2024. All rights reserved.