弧垂多项式组的单解

2024-04-27 01:11:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过比较不同多项式的系数来求解多项式方程组。你知道吗

# Statement of Problem:
# We are attempting to find complex numbers a, b, c, d, e, J, u, v, r, s where
# ((a*x + c)^2)*(x^3 + (3K)*x + 2K) - ((b*x^2 + d*x + e)^2)     = a^2*(x - r)^2*(x - s)^3 and 
# ((a*x + c)^2)*(x^3 + (3K)*x + 2K)) - ((b*x^2 + d*x + e - 1)^2) = a^2*(x - u)*(x - v)^4


R.<x> = CC['x']
a, b, c, d, e, r, s, u, v, K = var('a, b, c, d, e, r, s, u, v, K')
y2 = x^3 + (3*K)*x + 2*K
q0 = ((a*x + c)^2)*(y2) - ((b*x^2 + d*x + e)^2)
p0 = (a^2)*((x-r)^2)*((x-s)^3)
t = (b^2 - 2*a*c)/a^2
Q0 = q0.expand()
P0 = p0.expand()
P0 = P0.substitute(s = ((t - 2*r)/3))

Relations0 = []
i = 0
while i < 6:
    Relations0.append(P0.coefficient(x, n = i) - Q0.coefficient(x, n = i))
    i = i+1 

q1 = ((a*x + c)^2)*(y2) - ((b*x^2 + d*x + e - 1)^2)
p1 = (a^2)*(x-u)*((x-v)^4)
Q1 = q1.expand()
P1 = p1.expand()
P1 = P1.substitute(u = t - 4*v)

Relations1 = []
i = 0
while i < 6:
    Relations1.append(P1.coefficient(x, n = i) - Q1.coefficient(x, n = i))
    i = i+1
Relations = Relations0 + Relations1

告诉Sage用solve(Relations, a,b,c,d,e,r,v,K)解多项式系统似乎效率很低,只会导致Sage的内存限制被超过。此外,试图通过求解某些变量来减少方程和变量的数目也是低效的,也没有取得任何成果。既然试图找到所有的解决方案已经被证明是如此困难,有没有办法只提取一个单一的解决方案?你知道吗


Tags: expandp1appendwhileq1q0y2p0
1条回答
网友
1楼 · 发布于 2024-04-27 01:11:53

两个方程的阶数都是5,这就形成了12个恒等式。然而,5次恒等式是相同的,并且总是满足这两个方程。因此,对于10个变量,实际上只有10个或更少的方程。你知道吗

除以a^2,即用c/a, b/a, d/a, e/a替换c, b, d, e,并引入f=1/a以降低系数方程的阶数。你知道吗

然后得到的系数方程

(x + c)^2*(x^3 + 3*K*x + 2*K) - (b*x^2 + d*x + e)^2  =  (x - r)^2*(x - s)^3;
(x + c)^2*(x^3 + 3*K*x + 2*K) - (b*x^2 + d*x + e - f)^2  =  (x - u)*(x - v)^4;

或在http://magma.maths.usyd.edu.au/calc/

A<b, c, d, e, f, r, s, u, v, K> :=PolynomialRing(Rationals(),10,"glex");
P<x> := PolynomialRing(A);

eq1 := (x + c)^2*(x^3 + 3*K*x + 2*K) - (b*x^2 + d*x + e)^2  -  (x - r)^2*(x - s)^3;
eq2 := (x + c)^2*(x^3 + 3*K*x + 2*K) - (b*x^2 + d*x + e - f)^2  -  (x - u)*(x - v)^4;

I := ideal<A|Coefficients(eq1) cat Coefficients(eq2-eq1)>; I;

给予

Ideal of Polynomial ring of rank 10 over Rational Field
Order: Graded Lexicographical
Variables: b, c, d, e, f, r, s, u, v, K
Basis:
[
    r^2*s^3 + 2*c^2*K - e^2,
    -3*r^2*s^2 - 2*r*s^3 + 3*c^2*K + 4*c*K - 2*d*e,
    3*r^2*s + 6*r*s^2 + s^3 - 2*b*e + 6*c*K - d^2 + 2*K,
    -2*b*d + c^2 - r^2 - 6*r*s - 3*s^2 + 3*K,
    -b^2 + 2*c + 2*r + 3*s,
    -r^2*s^3 + u*v^4 + 2*e*f - f^2,
    3*r^2*s^2 + 2*r*s^3 - 4*u*v^3 - v^4 + 2*d*f,
    -3*r^2*s - 6*r*s^2 - s^3 + 6*u*v^2 + 4*v^3 + 2*b*f,
    r^2 + 6*r*s + 3*s^2 - 4*u*v - 6*v^2,
    -2*r - 3*s + u + 4*v
]

度为5,4,3,2,2,5,4,3,2,1,给出了解决方案数量的上限28800。由于常用的Groebner基算法的复杂度界是O(d^(n^2)),因此对于更好的算法,运行时的优化特征是28800^10(Bezout界而不是(d^n)^n中的d^n),无论常量多么小,它都相当大。即使去掉线性方程的一个变量,这些估计也不会有太大的变化。你知道吗

因此,任何符号解都需要很长的时间,并且会产生相当高阶的一元多项式,作为任何三角多项式基的一部分。你知道吗

相关问题 更多 >