Dada uma matriz A, na qual alguns dos elementos são funções de x, encontre x tal que det(A) = 0.
Comecei com uma matriz diagonal 5x5, mostrada no código. A função raiz na verdade deu a raiz correta (x = 1,562), mas com
DeprecationWarning: A conversão de uma matriz com ndim> 0 em um escalar está obsoleta e apresentará erros no futuro. Certifique-se de extrair um único elemento de sua matriz antes de executar esta operação.
def test(x):
A = np.zeros((5,5))
for i in range(5):
A[i,i] = x**2-4+x
return np.linalg.det(A)
root(test, 3)
No entanto, se quisermos apenas o determinante, correr test(3)
está perfeitamente bem. Não tenho ideia de como esse aviso surge e como evitá-lo. Suponho que possa haver algo a ver com a função de localização de raiz, mas não tenho certeza de como exatamente. Receio que quando o tamanho da matriz ficar muito grande, ela não encontrará a raiz verdadeira. Alguém já teve problemas semelhantes? Qualquer conselho será apreciado.