26. Odległość punktu od prostej. Okręgi
Treści kształcenia: Podstawy geometrii analitycznej. Podstawy rachunku wektorów i ich zastosowania. Równania prostych i powierzchni. Równanie prostej - postać kierunkowa i ogólna, warunek równoległości i prostopadłości prostych, odległość dwóch punktów i punktu od prostej, równanie okręgu. Krzywe i powierzchnie zadane parametrycznie.
Efekty kształcenia: Potrafi wykorzystać rachunek wektorowy w odniesieniu do obiektów geometrycznych. Operuje równaniami w opisach geometrycznych.
Odległość punktów na płaszczyźnie¶
Dane są dwa punkty na płaszczyźnie: oraz . W jaki sposób znaleźć odległość między nimi? Narysujmy trójkąt prostokątny PQR, którego przyprostokątne są równoległe do osi, zaś przeciwprostokątną jest odcinek PQ (patrz rysunek poniżej).
# Ilustracja sytuacji
rysunek = point((1, 2), color= "black", size = 40)
rysunek += point((2, 4), color= "black", size = 40)
rysunek += point((2, 2), color= "black", size = 40)
rysunek += line([(1, 2), (2, 4)], linestyle = "--", color = "red")
rysunek += line([(1, 2), (2, 2)], linestyle = "--", color = "red")
rysunek += line([(2, 2), (2, 4)], linestyle = "--", color = "red")
rysunek += text("P", (1, 2+0.1), fontsize = 30)
rysunek += text("Q", (2-0.05, 4), fontsize = 30)
rysunek += text("R", (2-0.05, 2+0.1), fontsize = 30)
rysunek.show()
Długości przyprostokątnych wynoszą wtedy oraz , zatem z twierdzenia Pitagorasa:
Daje to następujący wzór na odległość punktów i :
Równość tę można wyprowadzić również za pomocą iloczynu skalarnego wektorów jako .
Podobnie dla punktów oraz w przestrzeni mamy:
Uwaga: istnieją również inne sposoby mierzenia odległości między punktami, tzw. metryki. Podana tutaj metryka to tzw. metryka euklidesowa.
Przykład - odległość między punktami¶
Niech , . Znajdź .
# Odległość możemy obliczyć jako długość wektora AB
A = vector((1, -2, 0))
B = vector((1, 3, 1))
print((A - B).norm())sqrt(26)
Własności odległości¶
Odległość między punktami jest symetryczna (tzn. ), odległość między różnymi punktami jest dodatnia, a ponadto spełniona jest nierówność trójkąta:
dla dowolnych punktów , , . Mówiąc obrazowo, “najkrótsza droga z punktu do jest bezpośrednia”. Równość w tej nierówności jest spełniona tylko, gdy punkt C należy do odcinka AB.
Przykład - najkrótsza droga¶
Ania idzie z punktu do punktu . Po drodze chce ona nabrać wody z rzeki, która płynie przez prostą . Jaka jest najkrótsza droga, która pozwoli jej na to?
Rozwiązanie nr 1:
Załóżmy, że Ania nabierze wody w punkcie . Wówczas łamana ma długość:
Narysujmy wykres tej funkcji.
var('y')
f = sqrt((-1)^2 + (2-y)^2) + sqrt((-2)^2 + (-2 - y)^2)
plot(f, xmin = -10, xmax = 10)
Z wykresu widać, że minimum występuje dla . Aby znaleźć minimalną wartość tego wyrażenia, można np. sprawdzić zachowanie pochodnej. Daje to wynik .
Rozwiązanie nr 2: Załóżmy, że Ania nabierze wody w punkcie . Niech będzie odbiciem punktu względem prostej . Wówczas:
i długość ta zostanie osiągnięta, jeżeli będzie przecięciem odcinka z “rzeką” . Łatwo obliczyć, że .
# Aplet ukazujący długość drogi dla różnych wyborów punktu poboru wody.
def rzeka(y):
image = point((-1, 2))
image += point((-2, -2))
image += point((0, y))
image += point((1, 2))
image += line([(-1, 2), (0, y)], color = "red")
image += line([(-2, -2), (0, y)], color = "red")
image += line([(1, 2), (0, y)], linestyle = "--", color = "red")
image += line([(1, 2), (-2, -2)], linestyle = "--", color = "green")
odleglosc = sqrt((-1)^2 + (2-y)^2) + sqrt((-2)^2 + (-2 - y)^2)
image += text("d(A, C) + d(C, B) = %s"%(odleglosc.n(digits=3)), (-2, 1))
image += text("A", (-1.1, 2))
image += text("C", (-0.1, y))
image += text("B", (-2.1, -2))
image += text("A'", (1.1, 2))
return(image)
@interact
def _(y = slider(-2, 2, 0.01, default = 2/3)):
rzeka(y).show()
aplet = [rzeka(y) for y in [-1, 2/3, 4/3]]# Wersja statyczna powyższego apletu.
g1=graphics_array(aplet,ncols=3)
g1.show(figsize=[10,10], aspect_ratio = 1)
Odległość punktu od prostej¶
Odległość punktu od prostej definiujemy jako najmniejszą możliwą odległość punktu od punktu leżącego na prostej . Jeżeli prosta jest zadana równaniem , zaś , to odległość ta wynosi:
Przykład - odległość punktu od prostej¶
Dane są prosta oraz punkt .
(a) Znajdź odległość punktu od prostej .
(b) Wyznacz punkt na prostej o najmniejszej odległości od punktu .
Rozwiązanie:
(a) ze wzoru: .
(b) niech . Zastanawiamy się, kiedy wartość jest najmniejsza. Na zajęciach można to sprawdzić, szukając wierzchołka paraboli . My ją narysujemy:
# Wykres paraboli
plot((x - 3)^2 + (x-5)^2, (x, -10, 10))
Zachodzi to dla i wówczas , .
# Narysujmy punkty P, R i prostą l
obrazek = plot(x-1, (x, 0, 5))
obrazek += point((3, 4), size = 20)
obrazek += point((4, 3), size = 20)
obrazek.show(aspect_ratio = 1)
Równanie okręgu¶
Okręgiem o środku w punkcie i promieniu nazywamy zbiór tych punktów, które leżą w odległości od . Wyprowadźmy równanie okręgu:
Przykładowo, równanie okręgu o środku w punkcie i promieniu 1 to:
Przykład - równanie okręgu¶
Jaki jest środek i promień okręgu zadanego równaniem ? Narysuj go w układzie współrzędnych.
Odpowiedź: środek to , promień to 3.
# Wykres okręgu
var('x', 'y')
implicit_plot(x^2 + y^2 - 6*x + 4*y + 4, (x,-1,7), (y,-5,2))
Przykład - równanie okręgu przez dany punkt¶
Znajdź równanie okręgu o środku w przechodzącego przez punkt .
Odpowiedź: .
# Wykres okręgu
var('x', 'y')
image = implicit_plot((x-1)^2 + (y + 1)^2 - 13, (x,-4,5), (y,-5,3), color = "red")
image += point((1, -1), size = 20) + point((-2, 1), size = 20)
image.show()
Przykład - okrąg opisany na trójkącie¶
Znajdź równanie okręgu opisanego na trójkącie ABC, gdzie , , .
# Musimy rozwiązać odpowiedni układ równań na środek okręgu i promień
var('a, b, r')
punkty = [(-6,1), (3, -2), (2, 5)]
solve([ [(P[0] - a)^2 + (P[1] - b)^2 == r^2] for P in punkty], [a, b, r])[[a == -1, b == 1, r == -5], [a == -1, b == 1, r == 5]]Odpowiedź:
# Wykres okręgu i punktów
var('x', 'y')
image = implicit_plot((x+1)^2 + (y-1)^2 - 5^2, (x,-7,5), (y,-5,7), color = "green")
image += point((-6,1), size = 20)
image += point((3, -2), size = 20)
image += point((2, 5), size = 20)
image.show()
Styczne do okręgu¶
Styczna do danego okręgu to prosta, która ma dokładnie jeden punkt wspólny z danym okręgiem. Aby wyznaczyć styczną do okręgu w danym punkcie, możemy wykorzystać dwie metody:
stwierdzić, kiedy układ równań definiujący przecięcie prostej i okręgu ma dokładnie jedno rozwiązanie,
wykorzystać, że środek okręgu jest w odległości równej promieniowi od dowolnej stycznej.
Przykład - styczna przechodząca przez dany punkt¶
Znajdź równanie stycznej do okręgu przechodzącej przez punkt .
Rozwiązanie nr 1: niech styczna ta będzie postaci . Wówczas (jako że leży na niej punkt ), tzn. . Znajdźmy punkty wspólne prostej z okręgiem, tzn. punkty spełniające układ równań:
Wstawiając drugie równanie do pierwszego, otrzymamy równanie kwadratowe zmiennej . Ma ono dwa rozwiązania:
# Rozwiązujemy równanie kwadratowe w zależności od parametru a.
var('a', 'x')
solve(x^2 + (a*x + 3 +2*a)^2 - 13 == 0, x)[x == -2*(a^2 + 3*a - 1)/(a^2 + 1), x == -2]W naszym przypadku punkt przecięcia musi być jeden, zatem:
Po uproszczeniu, dostajemy równanie liniowe o rozwiązaniu .
Odpowiedź: .
# Rozwiązujemy równanie na a
solve(-2 == -2*(a^2 + 3*a - 1)/(a^2 + 1), a)[a == (2/3)]Rozwiązanie nr 2: niech styczna ta będzie postaci . Wówczas, jak poprzednio, . Ponadto:
# Rozwiązujemy równanie na a. Sage nie daje rady...
var('a')
solve(sqrt((2*a + 3)^2)/sqrt(a^2 + 1) == sqrt(13), a)[sqrt(4*a^2 + 12*a + 9) == sqrt(13)*sqrt(a^2 + 1)]# ... więc musimy je podnieść do kwadratu
var('a')
solve((2*a + 3)^2/(a^2 + 1) == 13, a)[a == (2/3)]Odpowiedź: .
# Narysujmy całą sytuację.
var('x', 'y')
image = implicit_plot(x^2 + y^2 - 13, (x,-4,5), (y,-5,5), color = "green")
image += plot(2/3*x + 13/3, (x,-5,5), color = "red")
image += point((-2, 3), size = 20)
image.show()
Przykład - okrąg styczny do zadanych prostych¶
Wyznacz równanie okręgu stycznego do prostych i przechodzącego przez punkt .
Rozwiązanie: Niech będzie środkiem tego okręgu, zaś -- promieniem. Wówczas:
Stąd , czyli lub . Z pierwszej z tych równości dostajemy sprzeczność, zaś z drugiej: . Ponadto:
Stąd:
Rozwiązując, dostajemy lub :
# Rozwiązujemy rónanie zmiennej a
var('a')
solve((5-a)^2 + (6 - 2*a + 1)^2 == 5, a)[a == 3, a == (23/5)]zatem ten okrąg to lub .
# Narysujmy okręgi i proste
var('x', 'y')
xmin = -5
xmax = 10
ymin = 0
ymax = 15
image = implicit_plot((x-3)^2 + (y-5)^2 - 5, (x,xmin,xmax), (y,ymin,ymax), color = "green")
image += implicit_plot((x-23/5)^2 + (y-41/5)^2 - 5, (x,xmin,xmax), (y,ymin,ymax), color = "green")
image += plot(2*x + 4, (x,xmin,xmax), color = "red")
image += plot(2*x - 6, (x,xmin,xmax), color = "red")
image += point((5, 6), size = 20)
image.show()
Styczność okręgów¶
Mówimy, że okręgi są do siebie styczne, jeżeli mają one dokładnie jeden punkt wspólny. Mogą one być styczne wewnętrznie (jeżeli jeden z okręgów jest zawarty wewnątrz drugiego) lub zewnętrznie (w przeciwnym wypadku). Aby stwierdzić, czy są one styczne zewnętrznie lub wewnętrznie, należy obliczyć odległość między ich środkami i porównać z sumą/różnicą promieni.
Przykład - okręgi styczne¶
Czy okręgi o równaniach oraz są do siebie styczne?
Rozwiązanie: Odległość między środkami tych okręgów wynosi , zatem są one styczne zewnętrznie.
# Narysujmy podane okręgi
var('x, y')
xmin = -2
xmax = 8
ymin = -4
ymax = 6
image = implicit_plot((x-5)^2 + (y-3)^2 - 2^2, (x,xmin,xmax), (y,ymin,ymax), color = "green")
image += implicit_plot((x-2)^2 + (y+1)^2 - 3^2, (x,xmin,xmax), (y,ymin,ymax), color = "green")
image.show()
Zadania dodatkowe¶
Zadanie nr 1¶
Znajdź równania prostych stycznych do okręgu i prostopadłych do prostej .
Zadanie nr 2¶
Czy czworokąt o wierzchołkach , , , leży na okręgu? Jeżeli tak, to podaj jego równanie.
Zadanie nr 3¶
Czy okręgi o podanych równaniach są do siebie styczne wewnętrznie lub zewnętrznie?
(a) , ,
(b) , .
(c) , .
Zadanie nr 4¶
Znajdź równanie sfery o środku przechodzącej przez punkt .