Project DelphiTensors Workshop

Factoriza una vez, resuelve muchas

Cholesky cuesta n³/3 una vez; cada resolución posterior son dos sustituciones triangulares a O(n²). Así que m lados derechos cuestan O(n³ + mn²), no O(mn³).

np.linalg.inv(A) @ B es a la vez más lento y menos preciso que factorizar, y nunca es la decisión correcta.

Medido sobre la matriz kernel real de dígitos con 200 lados derechos:

  • factorizar una vez con cho_factor/cho_solve
  • inversa explícita — unas 5× más lenta y unas 7× menos precisa en el residuo
  • un np.linalg.solve por columna — unas 340× más lenta

La opción más rápida es también la más precisa. Eso no pasa a menudo, y vale la pena recordarlo cuando pasa.