Exemplo 1: Sejam A=(0,1,8), B=(-3,0,9) e r: X=(1,2,0)+t(1,1,-3). Determine o ponto C de r tal que A, B e C sejam vértices de um triângulo com ângulo reto no vértice C.

import sympy as sp
sp.init_printing(use_latex='mathjax')

t=sp.symbols('t',real=True)

#dados
A=sp.Matrix([0,1,8])
B=sp.Matrix([-3,0,9])

#ponto genérico da reta r
C=sp.Matrix([1+t,2+t,-3*t])

#vetores que devem ser ortogonais
CA=A-C
CB=B-C

#encontrar t para que o produto vetorial seja zero
eq=sp.Eq(CA.dot(CB),0)
sol=sp.solve(eq,t)
print('Valores de t')
display(sol)

print('Pontos buscados')
C1=C.subs(t,sol[0])
display(C1)
C2=C.subs(t,sol[1])
display(C2)
Valores de t
⎡    -26 ⎤
⎢-3, ────⎥
⎣     11 ⎦
Pontos buscados
⎡-2⎤
⎢  ⎥
⎢-1⎥
⎢  ⎥
⎣9 ⎦
⎡-15  ⎤
⎢──── ⎥
⎢ 11  ⎥
⎢     ⎥
⎢-4/11⎥
⎢     ⎥
⎢ 78  ⎥
⎢ ──  ⎥
⎣ 11  ⎦

Exemplo 2: Mostre que P=(4,1,-1) não pertence ao à reta r: X=(2,4,1)+t(1,-1,2) e obenha uma equação cartesiana do plano que contém P e r.

import sympy as sp
sp.init_printing(use_latex='mathjax')

t,x,y,z=sp.symbols('t x y z',real=True)#variáveis

#dados
P=sp.Matrix([4,1,-1])

Pr=sp.Matrix([2,4,1])
v=sp.Matrix([1,-1,2])
X=Pr+t*v

#verificar se existe t tal que r=P
eq=sp.Eq(X,P)
print('Se P pertence a r, deve satisfazer')
display(eq)
sol=sp.solve(eq,t)
print('numero de soluções da equação é',len(sol),'. Portanto P não pertence a r')

#encontra o plano
#vetores paralelos ao plano que não é paralelo a v
u=P-Pr


n=u.cross(v)#vetor normal ao plano
Y=sp.Matrix([x,y,z]) #ponto genérico do plano

#equação do plano
plano=sp.Eq((Y-Pr).dot(n),0)
print('Equação cartesiana do plano:')
display(plano)
Se P pertence a r, deve satisfazer
⎡ t + 2 ⎤   ⎡4 ⎤
⎢       ⎥   ⎢  ⎥
⎢ 4 - t ⎥ = ⎢1 ⎥
⎢       ⎥   ⎢  ⎥
⎣2⋅t + 1⎦   ⎣-1⎦
numero de soluções da equação é 0 . Portanto P não pertence a r
Equação cartesiana do plano:
-8⋅x - 6⋅y + z + 39 = 0