Aqui está uma abordagem que funcionará para alguns polinômios, mas não é garantido que funcione para todos eles.
É garantido que funcione para todos os polinômios quadráticos multilineares. Também é garantido que funcione se houver alguma variável tal que p ( ⋯ , x , ⋯ ) não contenha um termo x 2 . No entanto, para polinômios da forma p ( x , ⋯ , z ) = c x ⋅ x 2 + ⋯ + c z ⋅ z 2 + p ′ ( x , ⋯ , z )xp ( ⋯ , x , ⋯ )x2p(x,⋯,z)=cx⋅x2+⋯+cz⋅z2+p′(x,⋯,z)onde é um polinômio quadrático multilinear (isto é, polinômios em que todas as variáveis aparecem ao quadrado), eu só sou capaz de apresentar uma heurística. A heurística geralmente pode funcionar bem na prática, mas não tenho provas.p′
(Eu sinto que deve haver uma solução mais limpa escondida aqui em algum lugar ....)
Seja um campo. Suponhamos que P ( x , y , z , ⋯ ) ∈ F [ x , y , z , ⋯ ] é um polinomial quadrática multivariada com coeficientes no campo F . Fatore os fatores de x para obterFp(x,y,z,⋯)∈F[x,y,z,⋯]Fx
p(x,y,z,⋯)=c⋅x2+q(y,z,⋯)⋅x+r(y,z,⋯).
Observe que deve ser linear / afim, r deve ser quadrático ec deve ser uma constante ( c ∈ F ). Queremos encontrar uma atribuição de valores para x , y , z , ⋯ que fazqrcc∈Fx,y,z,⋯
c⋅x2+q(y,z,⋯)⋅x+r(y,z,⋯)=0.
Agora vamos denotar o discriminante desta equação quadrática (em x ), isto é,Δx
Δ(y,z,⋯)=q(y,z,⋯)2−4c⋅r(y,z,⋯).
O polinomial original for satisfeita se e somente se pode encontrar uma atribuição de valores de que faz Δ ( y , z , ⋯ ) ser um quadrado (ou seja, um resíduo quadrático) em F . Observe que Δ ( y , z , ⋯ ) é ele próprio um polinômio quadrático multivariado (já que q é afim e r é quadrático).y,z,⋯Δ(y,z,⋯)FΔ(y,z,⋯)qr
No momento, nossa abordagem de solução será ramificada, com base em (um caso fácil) ou c ≠ 0 (o caso mais difícil).c=0c≠0
Se , resolver esta equação é fácil: é basicamente apenas uma equação linear (é linear em x , depois de corrigir todas as outras variáveis).c=0x
Como resultado, existe uma classe especial de polinômios em que esse problema é especialmente fácil de resolver: qualquer polinômio em que exista uma variável - por simplicidade, chamaremos de x - de modo que x 2 não apareça em p . Para essa classe, você terá c = 0 acima e o algoritmo a seguir é suficiente para resolver o problema:pxx2pc=0
Verificar se tem qualquer atribuição de valores de y , z , ⋯ que faz q ( y , z , ⋯ ) ≠ 0 . Como q é linear, é fácil verificar isso.qy,z,⋯q(y,z,⋯)≠0q
Se sim, escolha qualquer atribuição de valores para . Em seguida, defina x = - r ( y , z , ⋯ ) q ( y , z , ⋯ ) - 1 . Por definição, q ( y , z , ⋯ ) ≠ 0 , então q ( y , z , ⋯ ) tem um inverso (já que estamos trabalhando em um campo), então esse valor de xy,z,⋯x=−r(y,z,⋯)q(y,z,⋯)−1q(y,z,⋯)≠0q(y,z,⋯)xexiste. Isso gera imediatamente uma atribuição de valores para que faz p zero, e estamos a fazer.x,y,z,⋯p
Se não, então sabemos que para todas as atribuições possíveis de valores às variáveis de p . Efetivamente, p nunca dependeu de x em primeiro lugar, por isso foi um erro pensar nisso como uma função de x . Ou, dito de outra forma, eliminamos uma variável de p e obtemos uma nova instância do problema original. Aplique recursivamente nossos métodos a r ( y , z ,p(x,y,z,⋯)=r(y,z,⋯)ppxxp . Exceção: se p fosse uma função de uma única variável (ou seja, p ( x ) ), nesse caso, você poderá concluir que p não é satisfatório (é identicamente zero para todos os valores possíveis de suas variáveis).r(y,z,⋯)pp(x)p
Este algoritmo lida com o caso fácil: polinômios onde existe pelo menos uma variável que aparece em p, mas onde x 2 não aparece em p . Nesse caso, o algoritmo é executado no tempo polinomial e determina se existe uma atribuição de valores para as variáveis que tornam o polinômio igual a zero.xpx2p
Agora, de volta ao caso difícil. Se não se encaixar no caso fácil, devemos ter
p(x,⋯,z)=cx⋅x2+⋯+cz⋅z2+p′(x,⋯,z).
onde não possui termos ao quadrado (é multilinear). Vejamos quais métodos podemos usar para este caso.p′(x,⋯,z)
Bem, aqui está uma situação em que podemos resolver isso. Suponha que exista um par de variáveis tal que - c x / c y seja um quadrado (um resíduo quadrático) em F , digamos, - c x / c y = α 2 . Então podemos aplicar a alteração das variáveis y ′ = y + α x . Convenientemente, temosx,y−cx/cyF−cx/cy=α2y′=y+αx
$(y′)2=(y+αx)2=y2+2α⋅xy+α2⋅x2=y2+2αcdotxy−cx/cy⋅x2.
Ao conectar essa alteração de variáveis em , obtemosp
p(x,y′,⋯)=cx⋅x2+cy⋅y2+2αcy⋅xy−cy⋅(cx/cy)⋅x2+…,
ou seja,
p(x,y′,⋯)=cy⋅y2+2αcy⋅xy+…
onde a parte omitida não contém um termo (uma vez que os termos c x ⋅ x 2 e α 2 c y ⋅ x 2 são cancelados). Efetivamente, eliminamos o termo x 2 , e agora podemos aplicar o método acima a p ( x , y ′ , ⋯ ) . Observe que p ( x , y ′ , ⋯ ) = 0 é satisfatório se e somente se p ( xx2cx⋅x2α2cy⋅x2x2p(x,y′,⋯)p(x,y′,⋯)=0 é. Quando encontramos uma solução que zera esse valor, podemos resolver novamente y , e obtemos uma atribuição para x , y , z , ⋯ que torna p ( x , y , z , ⋯ ) = 0 .p(x,y,⋯)=0yx,y,z,⋯p(x,y,z,⋯)=0
É possível que nenhum par de variáveis nos permita eliminar um termo ao quadrado? Se é um resíduo quadrático (um quadrado) em F , e se tivermos pelo menos 3 variáveis, isso não é possível: - c x / c z = ( - 1 ) × ( - c x / c y ) × ( - c y / c z ) , e como o produto de um não-resíduo quadrático e de um não-resíduo quadrático é um resíduo quadrático, garantimos que pelo menos um de - c−1F−cx/cz=(−1)×(−cx/cy)×(−cy/cz) , - c y / c z , ou - c x / c z é um resíduo quadrático, pelo menos um dos termos ao quadrado pode ser cancelado. No entanto, se - 1 for um não-resíduo quadrático, ou tivermos apenas 1 ou 2 variáveis, talvez não seja possível eliminar um termo ao quadrado. Esse é o caso difícil restante. (A situação com apenas 1 ou 2 variáveis não é difícil de lidar, então, na verdade, o caso mais difícil é onde - 1 é um não-resíduo quadrático e onde cada variável aparece ao quadrado em p−cx/cz−cy/cz−cx/cz−1−1p.) Não tenho uma solução geral para este caso difícil.
No entanto, posso sugerir uma heurística que pode frequentemente funcionar, mesmo para este caso difícil.
Em qualquer campo , aproximadamente metade de todos os elementos do campo são quadrados (resíduos quadráticos); se você escolher um elemento de campo aleatório, será um quadrado com probabilidade cerca de 1 / 2 . Portanto, se nós escolhemos valores para y , z , ... aleatoriamente, podemos prever que (heurística) Δ ( y , z , ⋯ ) deve ser um quadrado com probabilidade 1 / 2 , se Δ ( y , z , ⋯ ) age como uma função aleatória. Isso sugere o seguinte algoritmo heurístico:F1/2y,z,…Δ(y,z,⋯)1/2Δ(y,z,⋯)
Escolha aleatoriamente uma variável para eliminar, diga .x
Escolha valores para aleatoriamente.y,z,…
Se é um quadrado em F , então a equação p ( x , y , z , ⋯ ) = 0 tem uma solução para x , a saber x = ( - q ( y , z , ⋯ ) ± √Δ(y,z,⋯)Fp(x,y,z,⋯)=0x(assumindo queFnão tem a característica 2). Isso nos dá uma atribuição para as variáveisx,y,z,…que fazemp(x,y,z,⋯)=0, então terminamos.x=(−q(y,z,⋯)±Δ(y,z,⋯)−−−−−−−−−√)/(2c)Fx,y,z,…p(x,y,z,⋯)=0
Se não for um quadrado, volte para a etapa 1.Δ(y,z,⋯)
Se, após várias etapas, você não encontrar nenhuma solução, poderá adivinhar que a equação é insatisfatória (mas essa é uma heurística, portanto, sua suposição pode estar errada).
Esse algoritmo pode funcionar bem para muitos dos polinômios restantes restantes, mas não tenho provas de que sempre funcionará. Em particular, existe o risco de que todos os polinômios discriminantes possíveis possam ter a propriedade de que seus valores são sempre não quadrados (não resíduos quadráticos), caso em que o algoritmo acima falhará.Δ(⋯)