Per trovare le coordinate di un vettore rispetto a una base è sufficiente:
Considerando la base rispettivamente
Calcolare le coordinate del polinomio rispetto a .
import sympy as sp
import numpy as np
x,x2 = sp.symbols('x x2')
a1,a2,a3 = sp.symbols('a1 a2 a3')
symbolic_vars = [x, x2,a1,a2,a3]
p1 = 2*x+x**2
p2 = 1-x+2*x**2
p3 = 1+5*x
# si imposta la combinazione lineare
combinazione_lineare = a1*p1 + a2*p2 + a3*p3
comb2 = sp.expand(combinazione_lineare)
# polinomio raccolto sulle incognite dello spazio polinomiale
comb3 = sp.factor(comb2, x)
print(comb3)
a2 + a3 + x**2*(a1 + 2a2) + x(2a1 - a2 + 5a3)
Anche se in ordine sparso, si pongono le componenti uguali a quelle del polinomio di cui trovare le coordinate per creare il sistema lineare:
Si può risolvere il sistema con sympy.solve()
:
equations = [
a2 + a3 - 2,
2*a1 - a2 + 5*a3 - 6,
a1 + 2*a2 - 13
]
sol = sp.solve(equations)
print(sol)
{a1: 7, a2: 3, a3: -1}
Quindi sono le coordinate di del polinomio rispetto alla base .