Forme quadratiche

Forma quadratica associata a \(\varphi\) l'applicazione da \(V\) in \(\mathbb{R}\) che ad ogni vettore \(v \in V\) associa \(\varphi(v,v)\) dove \(\varphi\) è un prodotto scalare (forma bilineare simmetrica).

\(Q(v) = \varphi(v,v)\)

Es nel caso del prodotto scalare canonico \(\cdot\):

\(v=(v_1,v_2) \in \mathbb{R}^2\)

\(Q(v) = v \cdot v = v_1^2 + v_2^2\)

Forme quadratiche come polinomi omogenei di secondo grado

Data una base \(\beta\), la forma quadratica \(Q(v)\) associata a \(\varphi\) si esprime mediante un polinomio omogeneo di grado 2 nelle coordinate del vettore \(v\) rispetto alla base \(\beta\).

Forma polare di una forma quadratica

Esiste una corrispondenza biunivoca tra la forma quadratica e la forma bilineare che la definisce. Infatti (vedasi dimostrazione in riferimento):

\(\varphi(v+w) = \frac{1}{2}(Q(v+w) - Q(v) - Q(w))\)

Quella sopra è la formula di polarizzazione dove \(\varphi(v+w)\) è la forma polare di \(Q\).

Funzione riassumibile - Forma polare

def formaPolareDiFormaQuadratica(Q: Callable, inc: List[tuple]) -> sp.Expr:
    q_x_y_args = [x + inc[1][i] for i,x in enumerate(inc[0])] 
    q_x_args = [x for x in inc[0]] 
    q_y_args = [y for y in inc[1]] 

    q_x_y = Q(*q_x_y_args)
    q_x = Q(*q_x_args)
    q_y = Q(*q_y_args)

    return sp.Rational('1/2')*(sp.factor(q_x_y - q_x - q_y))

Esempio

x1,x2,x3,y1,y2,y3 = sp.symbols("x1 x2 x3 y1 y2 y3")

def Q(_x1, _x2, _x3):
    return _x1**2 + 2*_x1*_x2 + 3*_x2*_x3 - 2*_x3**2

gamma = formaPolareDiFormaQuadratica(Q, [(x1,x2,x3),(y1,y2,y3)])
print(sp.latex(gamma))

\(x_{1} y_{1} + x_{1} y_{2} + x_{2} y_{1} + \frac{3 x_{2} y_{3}}{2} + \frac{3 x_{3} y_{2}}{2} - 2 x_{3} y_{3}\)

Come da esercizio.

Riferimenti

  • https://www.youmath.it/lezioni/algebra-lineare/applicazioni-lineari/3985-forma-quadratica.html