Posizioni retta-piano

  • retta parallela al piano (parallela esterna): nessun punto in comune con esso;
  • retta incidente il piano: un punto in comune con esso;
  • retta giacente sul piano (parallela interna): infiniti punti in comune con esso.

Studio tramite sistema lineare

Avendo l'equazione cartesiana del piano

\(ax+by+cz+d=0\)

e le equazioni cartesiane della retta

\(a_1x+b_1y+c_1z+d_1 = 0\)

\(a_2x+b_2y+c_2z+d_2 = 0\)

(nel caso fossero fornite in forma parametrica va fatta la conversione, vedi sezioni relative). Si studia la compatbilità del sistema lineare formato dalle tre equzioni:

\(ax+by+cz+d=0\)

\(a_1x+b_1y+c_1z+d_1 = 0\)

\(a_2x+b_2y+c_2z+d_2 = 0\)

Tramite teorema di Rouché Capelli si può studiare la compatibilità: si pone la matrice incompleta \(A\) e la matrice completa \(A|b\) con la colonna risultati (\(-d_i\)).

  • se \(rk(A) = rk(A|b) = 3\) il sistema ammette un unica soluzione, dunque piano e retta sono incidenti (la soluzione è il punto di intersezione);
  • se \(rk(A) \ne rk(A|b)\) il sistema è incompatibile, per cui retta e piano sono paralleli;
  • se \(rk(A) = rk(A|b) = 2\) il sistema ammette \(\infty^1\) soluzioni, quindi la retta giace sul piano.

Studio tramite coefficienti direttori

Date equazioni (parametriche o cartesiane) di un piano \(\alpha\) e di una retta \(r\), fissare un sist. di rif. cartesiano ortonormale e trovare i coefficienti direttori del piano e i parametri direttori della retta:

  • \({\textbf n}=(a,b,c)\) vettori i cui componenti sono i parametri direttori del piano \(\alpha\) (vedi sezione "6")
  • \({\textbf v}=(l,m,n)\) vettore che individua la direzione della retta \(r\) (vedi sezione "12) Applicando il prodotto scalare \(\cdot\) e prendendo in considerazione un punto \(P_0\) qualsiasi di \(r\) da sostituire nelle equazioni:
  • se \({\textbf n} \cdot {\textbf v} \ne 0\): retta e piano sono coincidenti;
  • se \({\textbf n} \cdot {\textbf ld v} = 0\):
    • sostituire le coordinate di un generico punto della retta \(P_0\) che appartiene al piano se soddisfa l'equazione del piano \(\alpha\):
    • se \({\textbf n} \cdot {\textbf v} = 0\) e \(P_0 \notin \alpha\): retta e piano sono paralleli esterni;
    • se \({\textbf n} \cdot {\textbf v} = 0\) e \(P_0 \in \alpha\): la retta e contenuta nel piano (parallela interna).

Retta e piano perpendicolari

Dati:

  • \({\textbf n}_{\alpha}=(a,b,c)\) vettori i cui componenti sono i parametri direttori del piano \(\alpha\) (vedi pagina)
  • \({\textbf v}_r=(l,m,n)\) vettore che individua la direzione della retta \(r\) (vedi pagina)

\(r \perp \alpha \iff rk(\begin{bmatrix}l&m&n\\a&b&c\end{bmatrix}) = 1\)

Funzione riassumibile

import sympy as sp
from typing import List
from ipynb.fs.full.piano_equazioni_parametriche_equazione_cartesiana import equazioniParametrichePianoToEquazioneCartesiana
from ipynb.fs.full.retta_equazioni_parametriche_equazioni_cartesiane import equazioniParametricheRettaToEquazioniCartesiane
from ipynb.fs.full.piano_coefficienti_direttori import coefficientiDirettori
from ipynb.fs.full.retta_direzione_nello_spazio import direzioneRetta
from ipynb.fs.full.retta_posizioni_tra_rette import puntoQualsiasiRetta

def posizioneTraRettaEPianoByCoefficientiDirettori(equazione_cartesiana_piano: sp.Expr = None, equazioni_parametriche_piano: sp.Expr = None, equazioni_cartesiane_retta: List[sp.Expr] = None, equazioni_parametriche_retta: List[sp.Expr] = None):

    if equazioni_parametriche_piano is not None:
        equazione_cartesiana_piano = equazioniParametrichePianoToEquazioneCartesiana(equazioni_parametriche_piano, sp.Symbol("s"), sp.Symbol("t"))
    if equazioni_parametriche_retta is not None:
        equazioni_cartesiane_retta = equazioniParametricheRettaToEquazioniCartesiane(equazioni_parametriche_retta)

    n = coefficientiDirettori(equazione_cartesiana=equazione_cartesiana_piano)
    v = direzioneRetta(equazioni_cartesiane=equazioni_cartesiane_retta)

    rango_r_alpha = sp.Matrix([
        [n[0,0], n[0,1], n[0,2]],
        [v[0,0], v[0,1], v[0,2]]
    ]).rank()

    if rango_r_alpha is 1:
        return "PERPENDICOLARI"
    elif sp.N(n.dot(v)) is 0:
        return "COINCIDENTI"
    else:
        return "PARALLELI"
def posizioneTraRettaEPianoBySistemaLineare(equazione_cartesiana_piano: sp.Expr = None, equazioni_parametriche_piano: sp.Expr = None, equazioni_cartesiane_retta: List[sp.Expr] = None, equazioni_parametriche_retta: List[sp.Expr] = None):

    if equazioni_parametriche_piano is not None:
        equazione_cartesiana_piano = equazioniParametrichePianoToEquazioneCartesiana(equazioni_parametriche_piano, sp.Symbol("s"), sp.Symbol("t"))
    if equazioni_parametriche_retta is not None:
        equazioni_cartesiane_retta = equazioniParametricheRettaToEquazioniCartesiane(equazioni_parametriche_retta)

    sistema_lineare = [
        equazione_cartesiana_piano,
        equazioni_cartesiane_retta[0],
        equazioni_cartesiane_retta[1]
    ]

    A, b = sp.linear_eq_to_matrix(sistema_lineare, sp.symbols("x y z"))
    Ab = sp.Matrix([[A, b]])
    rangoA = int(sp.N(A.rank()))
    rangoAb = int(sp.N(Ab.rank()))

    if rangoA is 3 and rangoA is rangoAb:
        result = sp.solve(sistema_lineare)
        return sp.Matrix([[
            result.get(sp.Symbol("x")),
            result.get(sp.Symbol("y")),
            result.get(sp.Symbol("z"))
        ]])
    elif rangoA is 2 and rangoA is rangoAb:
        return "PARALLELI_INTERNAMENTE"
    elif rangoA is not rangoAb:
        return "PARALLELI_ESTERNAMENTE"

Esempio tramite coefficienti direttori

x,y,z = sp.symbols("x y z")

alpha = x + 5*y - 3*z + 5
r = [
    x - y - 1,
    2*y - z + 2
]

posizioneTraRettaEPianoByCoefficientiDirettori(equazione_cartesiana_piano=alpha, equazioni_cartesiane_retta=r)
'PARALLELI'

Esempio tramite sistema lineare

alpha = x + 5*y - 3*z + 5
r = [
    x - y - 1,
    2*y - z + 2
]

posizioneTraRettaEPianoBySistemaLineare(equazione_cartesiana_piano=alpha, equazioni_cartesiane_retta=r)
'PARALLELI_INTERNAMENTE'

Riferimenti

  • https://www.youmath.it/lezioni/algebra-lineare/geometria-dello-spazio/2642-posizione-tra-retta-e-piano.html