Equazioni cartesiane da un sistema di generatori

Determinazione delle coordinate cartesiane di uno spazio vettoriale individuato da un sistema di generatori (rappresentazione cartesiana dello spazio).

Disporre i vettori del sistema di generatori in colonne su una matrice \(A\) (incompleta) e su una matrice \(A|x\) (completa) a cui si aggiunge le colonna di incognite \((x_1, x_2, ..., x_n)\) (es. \(x, y, z\) per un sottospazio di \(\mathbb{R}^3\)).

  • si pone che matrice completa e incompleta abbiano lo stesso rango effettuando la riduzione gaussiana e ottenendo due matrici in scala \(A'\) e \(A|x'\)
  • se la matrice ridotta \(A'\) non contiene righe identicamente ridotte allora \(rk(A) = rk(A|x) = n\) e quindi il sottospazio coincide con tutto lo spazio e non è possibile associare equazioni cartesiane
  • qualora invece vi fossero righe nulla in \(A'\), per far si che le matrici \(A\) e \(A|x\) abbiano lo stesso rango, si pongono le combinazioni lineari di \(A|x'\) corrispondenti alle righe nulle uguali a 0
  • l'equazione/i risultante/i (risultato combinazione lineare = 0) è/sono l'equazione/i cartesiana/e

Esempio

Dato il sottospazio vettoriale generato:

\(S = Span(v_1, v_2, v_3) \in \mathbb{R}^3\)

dove \(v_1 = (1,2,1), v_2 = (3,2,2), v_3=(5,6,4)\) determinare un sistema di equazioni cartesiane che individui tutti e soli i vettori di \(S\).

La soluzione data da YouMath è:

\(\{(x,y,z) \in \mathbb{R}^3 t.c. -\frac{1}{2}x - \frac{1}{4}y + z = 0\}\)

Passaggi in Python:

import sympy as sp
import numpy as np

x,y,z = sp.symbols('x y z')
symbolic_vars = [x, y, z]

ax_sp = sp.Matrix([[1,3,5,x], [2,2,6, y], [1,2,4,z]])
ax = np.array(ax_sp.tolist())

# riduzione gaussiana
ax_p = upper_triangular(ax)
print(ax_p)

[[1 3 5 x] [0 1 1 x/2 - y/4] [0 0 0 -x/2 - y/4 + z]]

La matrice incompleta ridotta \(A'\) è:

# tolgo l'ultima colonna delle soluzioni
a_p = np.delete(ax_p, np.s_[-1:], axis=1)
print(a_p)

[[1 3 5] [0 1 1] [0 0 0]]

Ha quindi due pivot (1,1) e quindi rango = 2. Bisogna porre tale anche il rango di \(A|x\) quindi si pone \(-\frac{1}{2}x-\frac{1}{4}y+z=0\)

print(ax_p[2][3])

-x/2 - y/4 + z

Questa è l'equazione.

Funzione riassumibile

Esistono diverse metodologie Python che sono anche comparate in termini di performance.

Riferimenti

  • https://www.youmath.it/lezioni/algebra-lineare/matrici-e-vettori/719-ricavare-le-equazioni-cartesiane-da-un-sistema-di-generatori.html