Определить угол между плоскостями a и b. Угол между двумя пересекающимися плоскостями – определение, примеры нахождения. Пирамида и ее углы

Добрый вечер.
Этот пост посвящён быстрому преобразованию Фурье. Будут рассмотрены прямое и обратное преобразования (в комплексных числах). В следующей части я планирую рассмотреть их применения в некоторых задачах олимпиадного программирования (в частности, одна задача про «похожесть» строк), а также рассказать про реализацию преобразования в целых числах.
БПФ - это алгоритм, вычисляющий значения многочлена степени n =2 k в некоторых n точках за время O (n ⋅logn ) («наивный» метод выполняет ту же задачу за время O (n 2 )). За то же время можно выполнить и обратное преобразование. Так как складывать, вычитать и умножать массивы чисел гораздо легче, чем многочлены (особенно умножать), БПФ часто применяется для ускорения вычислений с многочленами и длинными числами.

Определения и способы применения

Для начала давайте определимся, что такое многочлен:
P (x )=a 0 +x a 1 +x 2 a 2 +x 3 a 3 +... +x n -1 a n -1

Комплексные числа

Если Вы знакомы с комплексными числами, то можете пропустить этот пункт, в противном случае, вот краткое определение:
x =a +i b , где i 2 =-1
Здесь a называется вещественной (Real ) частью, а b - мнимой (Imaginary ). В этих числах, как нетрудно заметить, можно извлекать корень из отрицательных (да и вообще любых) чисел - это очень удобно при работе с многочленам - как следует из основной теоремы алгебры, у каждого многочлена степени n имеется ровно n комплексных корней (с учётом кратности).
Также их очень удобно представлять в виде точек на плоскости:

Еще одним замечательным свойством комплексных чисел является то, что их можно представить в виде x =(cosα+i sinα)r , где α - полярный угол «числа» (называется аргументом ), а r - расстояние от нуля до него (модуль ). А при умножении двух чисел:
a =(cosα+i ⋅sinα)r a
b =(cosβ+i ⋅sinβ)r b
a b =(cosα+i ⋅sinα)(cosβ+i ⋅sinβ)r a r b
a b =(cosα⋅cosβ-sinα⋅sinβ+i (sinα⋅cosβ+cosβ⋅sinα))r a r b
a b =(cos(α+β)+i ⋅sin(α+β))r a r b
Их модули перемножаются, а аргументы складываются.

Комплексные корни из 1

Теперь давайте поймём, как выглядят комплексные корни n -ой степени из 1 . Пусть x n =1 , тогда его модуль, очевидно, равен единице, а n ⋅argx =2 πk , где k - целое. Это обозначает, что после n умножений числа на самого себя (т.е. возведения в n -ю степень) его аргумент станет «кратен» 2 π (360 градусам).
Вспомним формулу числа, если известен аргумент и модуль, получаем:
α=2 π⋅x /n , где 0 x
ω i =cosα+i ⋅sinα
Т.е. если порисовать, то мы получим просто точки на окружности через равные промежутки:

Прошу заметить три вещи, которыми мы будем активно пользоваться (без них ничего не получится):
ω a ⋅ω b =ω (a +b )modn
ω 0 1 2 +... n -1 =0
ω 0 n /2 2 n /2 4 n /2 =... =1 (при чётном n )
Из-за этих свойств именно в этих точках мы и будем считать значение многочлена. Разумеется, результаты необязательно будут вещественными, поэтому в программе потребуется работать с комплексными числами.

Почему сумма корней - ноль

Доказательство очень простое: пусть φ=ω 0 1 +... . Домножим обе части на ω 1 (!= 1). Т.к. ω i ⋅ω 1 i +1 , то φ⋅ω 1 1 2 +... n -1 0 . От перестановки слагаемых сумма не меняется, поэтому φ=φ⋅ω 1 , соответственно φ⋅(ω 1 -1 )=0 . Т.к. ω 1 != 1, то φ=0 .

Как работает

Будем считать, что наш многочлен имеет степень n =2 k . Если нет, дополним старшие коэффициенты нулями до ближайшей степени двойки.
Основная идея БПФ очень проста:
Пусть:
A (x )=a 0 +x a 2 +x 2 a 4 +... +x n /2 -1 a n -2 (четные коэффициэнты P )
B (x )=a 1 +x a 3 +x 2 a 5 +... +x n /2 -1 a n -1 (нечётные коэффициенты P ).
Тогда P (x )=A (x 2 )+x B (x 2 ).
Теперь применим принцип «разделяй и властвуй»: чтобы посчитать значения P в n точках (ω 0 1 ,... ), посчитаем значения A и B рекурсивно в n /2 точках (ω 0 2 ,... ). Теперь значение P i ) восстановить достаточно просто:
P i )=A 2 i )+ω i B 2 i )
Если обозначить за ξ i 2 i точки, в которых мы считаем значения многочлена степени n /2 , формула преобразится:
P i )=A i )+ω i B i )
Её уже можно загонять в программу, не забыв что i принимает значения от 0 до n -1 , а ξ i определено лишь от 0 до n /2 -1 . Вывод - надо будет взять i по модулю n /2 .
Время работы выражается рекуррентной формулой T (n )=O (n )+2 T (n /2 ). Это довольно известное соотношение и оно раскрывается в O (n ⋅log 2 n ) (грубо говоря, глубина рекурсии - log 2 n уровней, на каждом уровне суммарно по всем вызовам выполняется O (n ) операций).

Напишем что-нибудь

Вот пример неэффективной рекурсивной реализации БПФ:
Slow FFT
#include #include using namespace std; typedef complex cd; // STL-ное комплексное число. Нам нужен double, ведь мы работает с sin и cos typedef vector vcd; vcd fft(const vcd &as) { // Возвращает вектор значений в корнях из 1 int n = as.size(); // Когда-то же надо прекратить рекурсию? if (n == 1) return vcd(1, as); vcd w(n); // Считаем корни for (int i = 0; i < n; i++) { double alpha = 2 * M_PI * i / n; w[i] = cd(cos(alpha), sin(alpha)); } // Считаем коэффициенты A и B vcd A(n / 2), B(n / 2); for (int i = 0; i < n / 2; i++) { A[i] = as; B[i] = as; } vcd Av = fft(A); vcd Bv = fft(B); vcd res(n); for (int i = 0; i < n; i++) res[i] = Av + w[i] * Bv; return res; }
Можете добавить ввод-вывод и проверить правильность своей реализации. Для многочлена P (x )=4 +3 x +2 x 2 +x 3 +0 x 4 +0 x 5 +0 x 6 +0 x 7 значения должны получиться такими:
P (w 0 )=(1 0 .0 0 0 ,0 .0 0 0 )
P (w 1 )=(5 .4 1 4 ,4 .8 2 8 )
P (w 2 )=(2 .0 0 0 ,2 .0 0 0 )
P (w 3 )=(2 .5 8 6 ,0 .8 2 8 )
P (w 4 )=(2 .0 0 0 ,0 .0 0 0 )
P (w 5 )=(2 .5 8 6 ,-0 .8 2 8 )
P (w 6 )=(2 .0 0 0 ,-2 .0 0 0 )
P (w 7 )=(5 .4 1 4 ,-4 .8 2 8 )
Если это так - можете засекать время рекурсивного и наивного метода на больших тестах.
У меня на многочлене степени 2 12 эта реализация работает 62 мс, наивная - 1800 мс. Разница налицо.

Избавляемся от рекурсии

Для того, чтобы сделать процедуру нерекурсивной, придётся подумать. Легче всего, как мне кажется, провести аналогию с MergeSort (сортировка слиянием) и нарисовать картинку, на которой показаны все рекурсивные вызовы:


Как мы видим, можно сделать один массив, заполнить его изначально значениями fft(a 0 ), fft(a 4 ), fft(a 2 ), ... . Как несложно понять, номера a i - это «развёрнутые» в двоичном представлении числа 0 ,1 ,2 ,3 ,... . Например, 1 1 0 =0 0 1 2 ,4 1 0 =1 0 0 2 или 6 =1 1 0 2 ,3 =0 1 1 2 . Понять это можно следующим образом: при спуске на нижний уровень рекурсии у нас определяется еще один младший бит (с конца). А при «нормальной» нумерации бит определяется с начала. Поэтому нужно «развернуть» число. Это можно сделать «в лоб» за O (n ⋅log 2 n ), а можно динамическим программированием за O (n ) по следующему алгоритму:
  1. Пробежимся циклом от 0 до n -1
  2. Будем хранить и динамически пересчитывать номер старшего единичного бита числа. Он меняется, только когда текущее число - степень двойки: увеличивается на 1.
  3. Когда мы знаем старший бит числа, перевернуть всё число не составляет труда: «отрезаем» старший бит (XOR), переворачиваем остаток (уже посчитанное значение) и добавляем «отрезанную» единицу
Теперь придумаем алгоритм, позволяющий нам из «ступеньки» получить ступеньку повыше. Хранить все значения с предыдущего шага мы будем в одном массиве. Как хорошо видно на рисунке, надо обрабатывать данные блоками по k , причём вначале k =1 , а потом с каждым шагом увеличивается вдвое. Мы обрабатываем два блока длиной k и получаем на выходе один блок длиной 2 k . Давайте на примере разберём, как это делалось рекурсивно, вспомним формулу из начала статьи и повторим:

Аргументами процедуры для слияния двух блоков будут два vector"а (естесственно, по ссылке, исходный и результат), номер стартового элемента первого блока (второй идёт сразу после) и длина блоков. Можно было бы конечно сделать и iterator"ами - для большей STL"ности, но мы ведь всё равно будем переносить эту процедуру внутрь основной для краткости.
Объединение блоков
void fft_merge(const vcd &src, vcd &dest, int start, int len) { int p1 = start; // Позиция в первом блоке int en1 = start + len; // Конец первого блока int p2 = start + len; // Позиция во втором блоке int en2 = star + len * 2; // Конец второго блока int pdest = start; // Текущая позиция в результатирующем массиве int nlen = len * 2; // Длина нового блока for (int i = 0; i < nlen; i++) { double alpha = 2 * M_PI * i / nlen; cd w = cd(cos(alpha), sin(alpha)); // Текущий корень dest = src + w * src; if (++p1 >= en1) p1 = start; if (++p2 >= en2) p2 = start + len; } }
И основная процедура преобразования:
<< k) < n) k++; vi rev(n); rev = 0; int high1 = -1; for (int i = 1; i < n; i++) { if ((i & (i - 1)) == 0) // Проверка на степень двойки. Если i ей является, то i-1 будет состоять из кучи единиц. high1++; rev[i] = rev; // Переворачиваем остаток rev[i] |= (1 << (k - high1 - 1)); // Добавляем старший бит } vcd cur(n); for (int i = 0; i < n; i++) cur[i] = as]; for (int len = 1; len < n; len <<= 1) { vcd ncur(n); for (int i = 0; i < n; i += len * 2) fft_merge(cur, ncur, i, len); cur.swap(ncur); } return cur; }

Оптимизация

На многочлене степени 2 1 6 рекурсия работает 640 мс, без рекурсии - 500. Улучшение есть, но программу можно сделать еще быстрее. Воспользуемся тем свойством, что ω i =-ω i +n /2 . Значит, можно не считать два раза корень и a i ⋅ω j - синус, косинус и умножение комплексных чисел очень затратные операции.
fft_merge()
for (int i = 0; i < len; i++) { double alpha = 2 * M_PI * i / nlen; cd w = cd(cos(alpha), sin(alpha)); // Текущий корень cd val = w * src; dest = src + val; dest = src - val; pdest++; if (++p1 >= en1) p1 = start; if (++p2 >= en2) p2 = start + len; }
Перехо с такой оптимизацией называется «преобразованием бабочки». Программа стала работать 260 мс. Для закрепления успеха давайте предподсчитаем все корни из 1 и запишем их в массив:
fft_merge()
int rstep = roots.size() / nlen; // Шаг в массиве с корнями for (int i = 0; i < len; i++) { cd w = roots; cd val = w * src;
fft()
roots = vcd(n); for (int i = 0; i < n; i++) { double alpha = 2 * M_PI * i / n; roots[i] = cd(cos(alpha), sin(alpha)); }
Теперь скорость работы - 78 мс. Оптимизация в 8 раз по сравнению с первой реализацией!

Оптимизация по коду

На данный момент весь код преобразования занимает порядка 55 строк. Не сотню, но это достаточно много - можно короче. Дляначала избавимся от кучи лишних переменных и операций в fft_merge :
void fft_merge(const vcd &src, vcd &dest, int start, int len) { int p1 = start; //int en1 = start + len; // Не используется, см. конец цикла int p2 = start + len; //int en2 = start + len * 2; // Аналогично int pdest = start; //int nlen = len * 2; // Используется только в следующей строчке //int rstep = roots.size() / nlen; int rstep = roots.size() / (len * 2); for (int i = 0; i < len; i++) { //cd w = roots; // Также используется только в следующей строчке //cd val = w * src; cd val = roots * src; dest = src + val; dest = src - val; pdest++, p1++, p2++; //if (++p1 >= en1) p1 = start; // Так как у нас теперь цикл не до 2len, а только до len, переполнения быть не может //if (++p2 >= en2) p2 = start + len; // Убираем } }
Теперь можно переместить цикл из fft_merge в основную процедуру (также можно убрать p2 , поскольку p2=p1+len - у меня это также дало небольшой выигрыш по времени. Что любопытно, если убрать p1=pdest , то у меня лично выигрыш по времени убивается):
fft()
for (int len = 1; len < n; len <<= 1) { vcd ncur(n); int rstep = roots.size() / (len * 2); for (int pdest = 0; pdest < n;) { int p1 = pdest; for (int i = 0; i < len; i++) { cd val = roots * cur; ncur = cur + val; ncur = cur - val; pdest++, p1++; } pdest += len; } cur.swap(ncur); }
Как видите, само преобразование занимает не так много - 17 строк. Всё остальное - предподсчёт корней и разворот чисел. Если Вы готовы сэкономить код в обмен на время работы (O (n ⋅log 2 n ) вместо O (n )), можете заменить 13 строк разворота чисел на следующие шесть:
В начале процедуры fft()
vcd cur(n); for (int i = 0; i < n; i++) { int ri = 0; for (int i2 = 0; i2 < k; i2++) // Перебираем биты от младших к старшим ri = (ri << 1) | !!(i & (1 << i2)); // И приписываем в конец числа cur[i] = as; }
В результате теперь код выглядит так:
vcd fft(const vcd &as) { int n = as.size(); int k = 0; // Длина n в битах while ((1 << k) < n) k++; vector rev(n); rev = 0; int high1 = -1; for (int i = 1; i < n; i++) { if ((i & (i - 1)) == 0) // Проверка на степень двойки. Если i ей является, то i-1 будет состоять из кучи единиц. high1++; rev[i] = rev; // Переворачиваем остаток rev[i] |= (1 << (k - high1 - 1)); // Добавляем старший бит } vcd roots(n); for (int i = 0; i < n; i++) { double alpha = 2 * M_PI * i / n; roots[i] = cd(cos(alpha), sin(alpha)); } vcd cur(n); for (int i = 0; i < n; i++) cur[i] = as]; for (int len = 1; len < n; len <<= 1) { vcd ncur(n); int rstep = roots.size() / (len * 2); for (int pdest = 0; pdest < n;) { int p1 = pdest; for (int i = 0; i < len; i++) { cd val = roots * cur; ncur = cur + val; ncur = cur - val; pdest++, p1++; } pdest += len; } cur.swap(ncur); } return cur; }

Обратное преобразование

Получить значения многочлена в точках - это, конечно, хорошо, но преобразование Фурье умеет больше - по этим значениям построить сам многочлен, причём за то же самое время! Оказывается, что если применить преобразование Фурье к массиву значений, как к коэффициентам многочлена, потом разделить результат на n и перевернуть отрезок с 1 до n -1 (нумерация с 0 ), то мы получим коэффициенты исходного многочлена.
Код тут предельно простой - всё уже написано. Думаю, Вы справитесь.

Доказательство

Пусть мы применяем обратное преобразование к многочлену P (x ) с коэффициентами v i (исходный многочлен имел коэффициенты a i ):
v i =a 0 i a 1 2 i a 2 3 i a +...
Посмотрим на результат преобразования:
b i =v 0 i v 1 2 i v 2 3 i v 3 +...
Подставим значения v j (помним, что ω a ω b a +b m o d n :

Теперь давайте докажем один замечательный факт: при x 0 , ω 0 x 2 x +... +ω (n -1 )x =0 .
Доказывается аналогично тому, что сумма корней - ноль: обозначим за φ сумму, домножим обе части на ω x и посмотрим, что получилось.
Теперь применим этот факт к вычислению значения b i . Заметим, что все строки, кроме одной, в которой содержится a n -i , обнулятся.

Таким образом:

b i =a n -i ⋅(ω 0 0 0 0 +... )

b i =a n -i n

Что и требовалось доказать.

Применение

Вообще говоря, о применении я уже чуть-чуть говорил в начале статьи. В частности, теперь перемножение многочленов можно выполнять следующим образом:
Быстрое перемножение многочленов
vcd a, b; // Многочлены // Чтение многочленов vcd a_vals = fft(a); vcd b_vals = fft(b); vcd c_vals(a_vals.size()); for (int i = 0; i < a_vals.size(); i++) c_vals[i] = a_vals[i] * b_vals[i]; vcd c = fft_rev(c_vals); // Вывод ответа
Легко заметить, что время работы этой программы - O (n ⋅log 2 n ) и самые трудоёмкие операции - преобразования Фурье. Также можно заметить, что если нам требуется вычислить более сложное выражение с двумя многочленами, то по-прежнему можно выполнять лишь три приобразования - сложение и вычитание также будут работать за линейное время. К сожалению, с делением не всё так просто, поскольку многочлен может случайно принять значение 0 в какой-нибудь из точек. UPD2: не забудьте, что степень произведения двух многочленов степени n будет равна 2n , поэтому при вводе следует добавить «лишние» нулевые старшие коэффициенты.
Если представить число в десятичной (или более) системе счисления, как многочлен с коэффициентами - цифрами, то умножение длинных чисел также можно выполнять очень быстро.
И, напоследок, задача, которую я разберу в следующем посте: у вас есть две строки одинаковой длины порядка 1 0 5 из букв A, T, G, C. Требуется найти такой циклический сдвиг одной из строк, чтобы совпало максимальное количество символов. Очевидно наивное решение за O (n 2 ), но есть решение при помощи БПФ.
Удачи!

UPD: Выложил код целиком на

Рассмотрим две плоскости р 1 и р 2 с нормальными векторами n 1 и n 2 . Угол φ между плоскостями р 1 и р 2 выражается через угол ψ = \(\widehat{(n_1; n_2)}\) следующим образом: если ψ < 90°, то φ = ψ (рис. 202, а); если ψ > 90°, то ψ = 180° - ψ (рис. 202,6).

Очевидно, что в любом случае справедливо равенство

cos φ = |cos ψ|

Так как косинус угла между ненулевыми векторами равен скалярному произведению этих векторов, деленному на произведение их длин, имеем

$$ cos\psi=cos\widehat{(n_1; n_2)}=\frac{n_1\cdot n_2}{|n_1|\cdot |n_2|} $$

и, следовательно, косинус угла φ между плоскостями р 1 и р 2 может быть вычислен по формуле

$$ cos\phi=\frac{n_1\cdot n_2}{|n_1|\cdot |n_2|} (1)$$

Если плоскости заданы общими уравнениями

А 1 х + B 1 y + C 1 z + D 1 = 0 и А 2 х + B 2 y + C 2 z + D 2 = 0,

то за их нормальные векторы можно взять векторы n 1 = (A 1 ; B 1 ; С 1) и n 2 = (A 2 ; B 2 ; С 2).

Записав правую часть формулы (1) через координаты, получим

$$ cos\phi=\frac{|A_1 A_2 + B_1 B-2 + C_1 C_2|}{\sqrt{{A_1}^2+{B_1}^2+{C_1}^2}\sqrt{{A_2}^2+{B_2}^2+{C_2}^2}} $$

Задача 1. Вычислить угол между плоскостями

х - √2 y + z - 2 = 0 и х+ √2 y - z + 13 = 0.

В данном случае A 1 .=1, B 1 = - √2 , С 1 = 1, A 2 =1, B 2 = √2 , С 2 = - 1.

По формуле (2) получаем

$$ cos\phi=\frac{|1\cdot 1 - \sqrt2 \cdot \sqrt2 - 1 \cdot 1|}{\sqrt{1^2+(-\sqrt2)^2+1^2}\sqrt{1^2+(\sqrt2)^2+(-1)^2}}=\frac{1}{2} $$

Следовательно, угол между данными плоскостями равен 60°.

Плоскости с нормальными векторами n 1 и n 2:

а) параллельны тогда и только тогда, когда векторы n 1 и n 2 коллинеарны;

б) перпендикулярны, тогда и только тогда, когда векторы n 1 и n 2 перпендикулярны, т. е. когда n 1 n 2 = 0.

Отсюда получаем.необходимые и достаточные условия параллельности и перпендикулярности двух плоскостей, заданных общими уравнениями.

Для того чтобы плоскости

А 1 х + B 1 y + C 1 z + D 1 = 0 и А 2 х + B 2 y + C 2 z + D 2 = 0

были параллельны, необходимо и достаточно, чтобы выполнялись равенства

$$ \frac{A_1}{A_2}=\frac{B_1}{B_2}=\frac{C_1}{C_2} \;\; (3)$$

В случае, если какой-либо из коэффициентов A 2 , B 2 , С 2 равен нулю, подразумевается, что равен нулю и соответствующий коэффициент A 1 , B 1 , С 1

Невыполнение хотя бы одного из этих двух равенств означает, что плоскости не параллельны, т. е. пересекаются.

Для перпендикулярности плоскостей

А 1 х + B 1 y + C 1 z + D 1 = 0 и А 2 х + B 2 y + C 2 z + D 2 = 0

необходимо и достаточно, чтобы выполнялось равенство

А 1 А 2 + B 1 B 2 + C 1 C 2 = 0. (4)

Задача 2. Среди следующих пар плоскостей:

2х + 5у + 7z - 1 = 0 и 3х - 4у + 2z = 0,

у - 3z + 1 = 0 и 2у - 6z + 5 = 0,

4х + 2у - 4z + 1 = 0 и 2х + у + 2z + 3 = 0

указать параллельные или перпендикулярные. Для первой пары плоскостей

А 1 А 2 + B 1 B 2 + C 1 C 2 = 2 3 + 5 (- 4) + 7 2 = 0,

т. е. выполняется условие перпендикулярности. Плоскости перпендикулярны.

Для второй пары плоскостей

\(\frac{B_1}{B_2}=\frac{C_1}{C_2}\), так как \(\frac{1}{2}=\frac{-3}{-6} \)

а коэффициенты А 1 и А 2 равны нулю. Следовательно, плоскости второй пары параллельны. Для третьей пары

\(\frac{B_1}{B_2}\neq\frac{C_1}{C_2}\), так как \(\frac{2}{1}\neq\frac{-4}{2} \)

и А 1 А 2 + B 1 B 2 + C 1 C 2 = 4 2 + 2 1 - 4 2 =/= 0, т. е. плоскости третьей пары не параллельны и не перпендикулярны.

Тип задания: 14
Тема: Угол между плоскостями

Условие

Дана правильная призма ABCDA_1B_1C_1D_1, M и N — середины ребер AB и BC соответственно, точка K — середина MN .

а) Докажите, что прямые KD_1 и MN перпендикулярны.

б) Найдите угол между плоскостями MND_1 и ABC , если AB=8, AA_1=6\sqrt 2.

Показать решение

Решение

а) В \triangle DCN и \triangle MAD имеем: \angle C=\angle A=90^{\circ}, CN=AM=\frac12AB, CD=DA.

Отсюда \triangle DCN=\triangle MAD по двум катетам. Тогда MD=DN, \triangle DMN равнобедренный. Значит, медиана DK — является также высотой. Следовательно, DK \perp MN.

DD_1 \perp MND по условию, D_1K — наклонная, KD — проекция, DK \perp MN.

Отсюда по теореме о трех перпендикулярах MN\perp D_1K.

б) Как было доказано в а) , DK \perp MN и MN \perp D_1K, но MN — линия пересечения плоскостей MND_1 и ABC , значит \angle DKD_1 — линейный угол двугранного угла между плоскостями MND_1 и ABC .

В \triangle DAM по теореме Пифагора DM= \sqrt {DA^2+AM^2}= \sqrt {64+16}= 4\sqrt 5, MN= \sqrt {MB^2+BN^2}= \sqrt {16+16}= 4\sqrt 2. Следовательно, в \triangle DKM по теореме Пифагора DK= \sqrt {DM^2-KM^2}= \sqrt {80-8}= 6\sqrt 2. Тогда в \triangle DKD_1, tg\angle DKD_1=\frac{DD_1}{DK}=\frac{6\sqrt 2}{6\sqrt 2}=1.

Значит, \angle DKD_1=45^{\circ}.

Ответ

45^{\circ}.

Тип задания: 14
Тема: Угол между плоскостями

Условие

В правильной четырёхугольной призме ABCDA_1B_1C_1D_1 стороны основания равны 4 , боковые рёбра равны 6 . Точка M — середина ребра CC_1, на ребре BB_1 отмечена точка N , такая, что BN:NB_1=1:2.

а) В каком отношении плоскость AMN делит ребро DD_1?

б) Найдите угол между плоскостями ABC и AMN .

Показать решение

Решение

а) Плоскость AMN пересекает ребро DD_1 в точке K , являющейся четвёртой вершиной сечения данной призмы этой плоскостью. Сечением является параллелограмм ANMK , потому что противоположные грани данной призмы параллельны.

BN =\frac13BB_1=2. Проведём KL \parallel CD, тогда треугольники ABN и KLM равны, значит ML=BN=2, LC=MC-ML=3-2=1, KD=LC=1. Тогда KD_1=6-1=5. Теперь можно найти отношение KD:KD_1=1:5.

б) F — точка пересечения прямых CD и KM . Плоскости ABC и AMN пересекаются по прямой AF . Угол \angle KHD =\alpha — линейный угол двугранного угла (HD\perp AF, тогда по теореме, обратной теореме о трех перпендикулярах, KH \perp AF ) , и является острым углом прямоугольного треугольника KHD , катет KD=1.

Треугольники FKD и FMC подобны (KD \parallel MC), поэтому FD:FC=KD:MC, решая пропорцию FD:(FD+4)=1:3, получим FD=2. В прямоугольном треугольнике AFD (\angle D=90^{\circ}) с катетами 2 и 4 вычислим гипотенузу AF=\sqrt {4^2+2^2}=2\sqrt 5, DH= AD\cdot FD:AF= \frac{4\cdot 2}{2\sqrt 5}= \frac4{\sqrt 5}.

В прямоугольном треугольнике KHD найдём tg \alpha =\frac{KD}{DH}=\frac{\sqrt 5}4, значит, искомый угол \alpha =arctg\frac{\sqrt 5}4.

Ответ

а) 1:5;

б) arctg\frac{\sqrt 5}4.

Источник: «Математика. Подготовка к ЕГЭ-2017. Профильный уровень». Под ред. Ф. Ф. Лысенко, С. Ю. Кулабухова.

Тип задания: 14
Тема: Угол между плоскостями

Условие

Дана правильная четырёхугольная пирамида KMNPQ со стороной основания MNPQ , равной 6 , и боковым ребром 3\sqrt {26}.

а) Постройте сечение пирамиды плоскостью, проходящей через прямую NF параллельно диагонали MP , если точка F — середина ребра MK .

б) Найдите величину угла между плоскостью сечения и плоскостью KMP .

Показать решение

Решение

а) Пусть KO — высота пирамиды, F — середина MK ; FE \parallel MP (в плоскости PKM ) . Так как FE — средняя линия \triangle PKM, то FE=\frac{MP}2.

Построим сечение пирамиды плоскостью, проходящей через NF и параллельной MP , то есть плоскостью NFE . L — точка пересечения EF и KO . Так как точки L и N принадлежат искомому сечению и лежат в плоскости KQN , то точка T , полученная как пересечение LN и KQ , является также точкой пересечения искомого сечения и ребра KQ . NETF — искомое сечение.

б) Плоскости NFE и MPK пересекаются по прямой FE . Значит, угол между этими плоскостями равен линейному углу двугранного угла OFEN , построим его: LO \perp MP, MP \parallel FE, следовательно, LO \perp FE; \triangle NFE — равнобедренный (NE=NF как соответствующие медианы равных треугольников KPN и KMN ) , NL — его медиана (EL=LF, так как PO=OM, а \triangle KEF \sim \triangle KPM ) . Отсюда NL \perp FE и \angle NLO — искомый.

ON=\frac12QN=\frac12MN\sqrt 2=3\sqrt 2.

\triangle KON — прямоугольный.

Катет KO по теореме Пифагора равен KO=\sqrt {KN^2-ON^2}.

OL= \frac12KO= \frac12\sqrt{KN^2-ON^2}= \frac12\sqrt {9\cdot 26-9\cdot 2}= \frac12\sqrt{9(26-2)}= \frac32\sqrt {24}= \frac32\cdot 2\sqrt 6= 3\sqrt 6.

tg\angle NLO =\frac{ON}{OL}=\frac{3\sqrt 2}{3\sqrt 6}=\frac1{\sqrt 3},

\angle NLO=30^{\circ}.

Ответ

Источник: «Математика. Подготовка к ЕГЭ-2017. Профильный уровень». Под ред. Ф. Ф. Лысенко, С. Ю. Кулабухова.

Тип задания: 14
Тема: Угол между плоскостями

Условие

Все рёбра правильной треугольной призмы ABCA_{1}B_{1}C_{1} равны 6 . Через середины рёбер AC и BB_{1} и вершину A_{1} проведена секущая плоскость.

а) Докажите, что ребро BC делится секущей плоскостью в отношении 2:1, считая от вершины C .

б) Найдите угол между плоскостью сечения и плоскостью основания.

Показать решение

Решение

а) Пусть D и E — середины ребер AC и BB_{1} соответственно.

В плоскости AA_{1}C_{1} проведем прямую A_{1}D, которая пересекает прямую CC_{1} в точке K , в плоскости BB_{1}C_{1} — прямую KE , которая пересекает ребро BC в точке F . Соединие точки A_{1} и E , лежащие в плоскости AA_{1}B_{1}, а также D и F , лежащие в плоскости ABC , получим сечение A_{1}EFD.

\bigtriangleup AA_{1}D=\bigtriangleup CDK по катету AD=DC и острому углу.

\angle ADA_{1}=\angle CDK — как вертиальные, отсюда следует, что AA_{1}=CK=6. \bigtriangleup CKF и \bigtriangleup BFE подобны по двум углам \angle FBE=\angle KCF=90^\circ, \angle BFE=\angle CFK — как вертикальные.

\frac{CK}{BE}=\frac{6}{3}=2, то есть коэффициент подобия равен 2 , откуда следует, что CF:FB=2:1.

б) Проведём AH \perp DF. Угол между плоскостью сечения и плоскостью основания равен углу AHA_{1}. Действительно, отрезок AH \perp DF (DF — линия пересечения этих плоскостей) и является проекцией отрезка A_{1}H на плоскость основания, следовательно, по теореме о трёх перпендикулярах, A_{1}H \perp DF. \angle AHA_{1}=arctg\frac{AA_{1}}{AH}. AA_{1}=6.

Найдём AH . \angle ADH =\angle FDC (как вертикальные).

По теореме косинусов в \bigtriangleup DFC:

DF^2=FC^2+DC^2- 2FC \cdot DC \cdot \cos 60^\circ,

DF^2=4^2+3^2-2 \cdot 4 \cdot 3 \cdot \frac{1}{2}=13.

FC^2=DF^2+DC^2- 2DF \cdot DC \cdot \cos \angle FDC,

4^2=13+9-2\sqrt{13} \cdot 3 \cdot \cos \angle FDC,

\cos \angle FDC=\frac{6}{2\sqrt{13} \cdot 3}=\frac{1}{\sqrt{13}}.

По следствию из основного тригонометрического тождества

\sin \angle FDC=\sqrt{1-\left (\frac{1}{\sqrt{13}}\right)^2}=\frac{2\sqrt{3}}{\sqrt{13}}. Из \bigtriangleup ADH найдём AH :

AH=AD \cdot \sin \angle ADH, (\angle FDC=\angle ADH). AH=3 \cdot \frac{2\sqrt{3}}{\sqrt{13}}=\frac{6\sqrt{13}}{\sqrt{13}}.

\angle AHA_{1}= arctg\frac{AA_{1}}{AH}= arctg\frac{6 \cdot \sqrt{13}}{6\sqrt{3}}= arctg\frac{\sqrt{39}}{3}.

Ответ

arctg\frac{\sqrt{39}}{3}.

Источник: «Математика. Подготовка к ЕГЭ-2017. Профильный уровень». Под ред. Ф. Ф. Лысенко, С. Ю. Кулабухова.

Тип задания: 14
Тема: Угол между плоскостями

Условие

Основанием прямой призмы ABCDA_{1}B_{1}C_{1}D_{1} является ромб с тупым углом B , равным 120^\circ. Все ребра этой призмы равны 10 . Точки P и K — середины ребер CC_{1} и CD соответственно.

а) Докажите, что прямые PK и PB_{1} перпендикулярны.

б) Найдите угол между плоскостями PKB_{1} и C_{1}B_{1}B.

Показать решение

Решение

а) Будем использовать метод координат. Найдём скалярное произведение векторов \vec{PK} и \vec{PB_{1}}, а затем косинус угла между этими векторами. Направим ось Oy вдоль CD , ось Oz вдоль CC_{1}, и ось Ox \perp CD . C — начало координат.

Тогда C (0;0;0); C_{1}(0;0;10); P(0;0;5); K(0;5;0); B(BC \cos 30^\circ; BC\sin 30^\circ; 0), то есть B(5\sqrt{3}; 5;0), B_{1}(5\sqrt{3}; 5;10).

Найдём координаты векторов: \vec{PK}=\{0;5;-5\}; \vec{PB_{1}}=\{5\sqrt{3}; 5;5\}.

Пусть угол между \vec{PK} и \vec{PB_{1}} равен \alpha.

Получаем \cos \alpha=\frac{\vec{PK} \cdot \vec{PB_{1}}}{|\vec{PK}| \cdot |\vec{PB_{1}}|}= \frac{0 \cdot 5\sqrt{3} + 5 \cdot 5-5 \cdot 5}{|\vec{PK}| \cdot |\vec{PB_{1}}|}=0.

\cos \alpha =0, значит, \vec{PK} \perp \vec{PB_{1}} и прямые PK и PB_{1} перпендикулярны.

б) Угол между плоскостями равен углу между ненулевыми векторами, перпендикулярными этим плоскостям (или, если угол тупой, смежному с ним углу). Такие векторы называют нормалями к плоскостям. Найдём их.

Пусть \vec{n_{1}}=\{x; y; z\} перпендикулярен плоскости PKB_{1}. Найдем его, решив систему \begin{cases} \vec{n_{1}} \perp \vec{PK}, \\ \vec{n_{1}} \perp \vec{PB_{1}}. \end{cases}

\begin{cases} \vec{n_{1}} \cdot \vec{PK}=0, \\ \vec{n_{1}} \cdot \vec{PB_{1}}=0; \end{cases}

\begin{cases} 0x+5y-5z=0, \\ 5\sqrt{3}x+5y+5z=0; \end{cases}

\begin{cases}y=z, \\ x=\frac{-y-z}{\sqrt{3}}. \end{cases}

Возьмем y=1; z=1; x=\frac{-2}{\sqrt{3}}, \vec{n_{1}}=\left \{ \frac{-2}{\sqrt{3}}; 1;1 \right \}.

Пусть \vec{n_{2}}=\{x; y; z\} перпендикулярен плоскости C_{1}B_{1}B. Найдем его, решив систему \begin{cases} \vec{n_{2}} \perp \vec{CC_{1}}, \\ \vec{n_{2}} \perp \vec{CB}. \end{cases}

\vec{CC_{1}}=\{0;0;10\}, \vec{CB}=\{5\sqrt{3}; 5; 0\}.

\begin{cases} \vec{n_{2}} \cdot \vec{CC_{1}}=0, \\ \vec{n_{2}} \cdot \vec{CB}=0; \end{cases}

\begin{cases} 0x+0y+10z=0, \\ 5\sqrt{3}x+5y+0z=0; \end{cases}

\begin{cases}z=0, \\ y=-\sqrt{3}x. \end{cases}

Возьмем x=1; y=-\sqrt{3}; z=0, \vec{n_{2}}=\{1; -\sqrt{3};0\}.

Найдем косинус искомого угла \beta (он равен модулю косинуса угла между \vec{n_{1}} и \vec{n_{2}} ).

\cos \beta= \frac{|\vec{n_{1}} \cdot \vec{n_{2}}|}{|\vec{n_{1}}| \cdot |\vec{n_{2}}|}= \frac{\left |-\dfrac{2}{\sqrt{3}}\cdot 1+1 \cdot (-\sqrt{3})+1 \cdot 0 \right |}{\sqrt{\dfrac{4}{3}+1+1} \cdot \sqrt{1+3+0}}= \frac{\dfrac{5}{\sqrt{3}}}{2\sqrt{\dfrac{10}{3}}}= \frac{\sqrt{10}}{4}.

\cos \beta =\frac{\sqrt{10}}{4}, \beta=\arccos\frac{\sqrt{10}}{4}.

Ответ

\arccos\frac{\sqrt{10}}{4}

Источник: «Математика. Подготовка к ЕГЭ-2017. Профильный уровень». Под ред. Ф. Ф. Лысенко, С. Ю. Кулабухова.

ABCD — квадрат и боковые грани — равные прямоугольники.

Так как плоскость сечения проходит через точки M и D параллельно диагонали AC , то для её построения в плоскости A_{1}AC через точку M проведём отрезок MN параллельный AC . Получим AC \parallel (MDN) по признаку параллельности прямой и плоскости.

Плоскость MDN пересекает параллельные плоскости A_{1}AD и B_{1}BC, тогда, по свойству параллельных плоскостей, линии пересечения граней A_{1}ADD_{1} и B_{1}BCC_{1} плоскостью MDN параллельны.

Проведём отрезок NE параллельно отрезку MD .

Четырехугольник DMEN — искомое сечение.

б) Найдём угол между плоскостью сечения и плоскостью основания. Пусть плоскость сечения пересекает плоскость основания по некоторой прямой p , проходящей через точку D . AC \parallel MN, следовательно, AC \parallel p (если плоскость проходит через прямую, параллельную другой плоскости, и пересекает эту плоскость, то линия пересечения плоскостей параллельна этой прямой). BD \perp AC как диагонали квадрата, значит, BD \perp p. BD — проекция ED на плоскость ABC , тогда по теореме о трех перпендикулярах ED \perp p, следовательно, \angle EDB — линейный угол двугранного угла между плоскостью сечения и плоскостью основания.

Установим вид четырехугольника DMEN . MD \parallel EN, аналогично ME \parallel DN, значит, DMEN — параллелограмм, а так как MD=DN (прямоугольные треугольники MAD и NCD равны по двум катетам: AD=DC как стороны квадрата, AM=CN как расстояния между параллельными прямыми AC и MN ), следовательно, DMEN — ромб. Отсюда, F — середина MN .

По условию AM:MA_{1}=2:3, тогда AM=\frac{2}{5}AA_{1}=\frac{2}{5} \cdot 5\sqrt{6}=2\sqrt{6}.

AMNC — прямоугольник, F — середина MN , O — середина AC . Значит, FO\parallel MA, FO \perp AC, FO=MA=2\sqrt{6}.

Зная, что диагональ квадрата равна a\sqrt{2}, где a — сторона квадрата, получим BD=4\sqrt{2}. OD=\frac{1}{2}BD=\frac{1}{2} \cdot 4\sqrt{2}=2\sqrt{2}.

В прямоугольном треугольнике FOD\enspace tg \angle FDO=\frac{FO}{OD}=\frac{2\sqrt{6}}{2\sqrt{2}}=\sqrt{3}. Следовательно, \angle FDO=60^\circ.

При решении геометрических задач в пространстве часто встречаются такие, где необходимо рассчитать углы между разными пространственными объектами. В данной статье рассмотрим вопрос нахождения углов между плоскостями и между ними и прямой.

Прямая в пространстве

Известно, что совершенно любая прямая на плоскости может быть определена следующим равенством:

Здесь a и b - некоторые числа. Если представить тем же самым выражением прямую в пространстве, то получится уже плоскость, параллельная оси z. Для математического определения пространственной прямой применяют иной способ решения, чем в двумерном случае. Он заключается в использовании понятия "направляющий вектор".

Направляющий вектор прямой показывает ее ориентацию в пространстве. Этот параметр принадлежит прямой. Поскольку существует бесконечное множество параллельных в пространстве векторов, то для однозначного определения рассматриваемого геометрического объекта необходимо также знать координаты точки, принадлежащей ему.

Предположим, что имеется точка P(x 0 ; y 0 ; z 0) и направляющий вектор v¯(a; b; c), тогда уравнение прямой может быть задано следующим образом:

(x; y; z) = P + α * v¯ или

(x; y; z) = (x 0 ; y 0 ; z 0) + α * (a; b; c)

Это выражение называется параметрическим векторным уравнением прямой. Коэффициент α является параметром, который может принимать абсолютно любые действительные значения. Координаты прямой можно представить явно, раскрывая это равенство:

x = x 0 + α * a;

y = y 0 + α * b;

z = z 0 + α * c

Уравнение плоскости

Известно несколько форм записи уравнения для Здесь же рассмотрим одну из них, которая чаще всего используется при расчете углов между двумя плоскостями или между одной из них и прямой.

Если известен некоторый вектор n¯(A; B; C), который перпендикулярен искомой плоскости, а также указана точка P(x 0 ; y 0 ; z 0), которая принадлежит ей же, то общее уравнение для последней имеет вид:

A * x + B * y + C * z + D = 0, где D = -1 * (A * x 0 + B * y 0 + C * z 0)

Мы опустили вывод этого выражения, который является достаточно простым. Здесь лишь заметим, что, зная коэффициенты при переменных в уравнении плоскости, можно с легкостью найти все вектора, которые ей перпендикулярны. Последние называются нормалями и используются при расчетах углов между наклонной и плоскостью и между произвольными аналогами.

Расположение плоскостей и формула угла между ними

Допустим, имеются две плоскости. Какие существуют варианты их взаимного расположения в пространстве. Поскольку плоскость имеет два бесконечных размера и один нулевой, то возможны лишь два варианта их взаимной ориентации:

  • они будут параллельными друг другу;
  • они могут пересекаться.

Углом между плоскостями называется показатель между их то есть между их нормалями n 1 ¯ и n 2 ¯.

Очевидно, что если являются параллельными плоскости, то угол пересечения равен нулю между ними. Если же они пересекаются, то он отличен от нуля, но всегда является острым. Частным случаем пересечения будет угол 90 o , когда плоскости взаимно перпендикулярны друг другу.

Угол α между n 1 ¯ и n 2 ¯ легко определяется из произведения скалярного этих векторов. То есть имеет место формула:

α = arccos((n 1 ¯ * n 2 ¯)/(|n 1 ¯| * |n 2 ¯|))

Предположим, что координаты этих векторов следующие: n 1 ¯(a 1 ; b 1 ; c 1), n 2 ¯(a 2 ; b 2 ; c 2). Тогда, используя формулы для расчета скалярного произведения и модулей векторов через их координаты, выражение выше можно переписать в виде:

α = arccos(|a 1 * a 2 + b 1 * b 2 + c 1 * c 2 | / (√(a 1 2 + b 1 2 + c 1 2) * √(a 2 2 + b 2 2 + c 2 2)))

Модуль в числителе появился потому, чтобы исключить значения

Примеры решения задач на определение угла пересечения плоскостей

Зная, как найти между плоскостями угол, решим следующую задачу. Даны две плоскости, уравнения которых имеют вид:

3 * x + 4 * y - z + 3 = 0;

X - 2 * y + 5 * z +1 = 0

Чему между плоскостями равен угол?

Чтобы ответить на вопрос задачи, вспомним, что коэффициенты, стоящие при переменных в уравнении плоскости общем, являются координатами вектора направляющего. Для указанных плоскостей имеем следующие координаты их нормалей:

n 1 ¯(3; 4; -1);

n 2 ¯(-1; -2; 5)

Теперь найдем произведение скалярное этих векторов и их модули, имеем:

(n 1 ¯ * n 2 ¯) = -3 -8 -5 = -16;

|n 1 ¯| = √(9 + 16 + 1) = √26;

|n 2 ¯| = √(1 + 4 + 25) = √30

Теперь можно подставить найденные числа в приведенную в предыдущем пункте формулу. Получаем:

α = arccos(|-16 | / (√26 * √30) ≈ 55,05 o

Полученное значение соответствует острому углу пересечения плоскостей, указанных в условии задачи.

Теперь рассмотрим другой пример. Даны две плоскости:

Пересекаются ли они? Выпишем значения координат их направляющих векторов, посчитаем скалярное произведение их и модули:

n 1 ¯(1; 1; 0);

n 2 ¯(3; 3; 0);

(n 1 ¯ * n 2 ¯) = 3 + 3 + 0 = 6;

|n 1 ¯| = √2;

|n 2 ¯| = √18

Тогда угол пересечения равен:

α = arccos(|6| / (√2 * √18) =0 o .

Этот угол говорит о том, что плоскости не пересекаются, а являются параллельными. Тот факт, что они не совпадают друг с другом проверить просто. Возьмем для этого произвольную точку, принадлежащую первой из них, например, P(0; 3; 2). Подставим ее координаты во второе уравнение, получим:

3 * 0 +3 * 3 + 8 = 17 ≠ 0

То есть точка P принадлежит только первой плоскости.

Таким образом, две плоскости параллельными являются, когда таковыми будут их нормали.

Плоскость и прямая

В случае рассмотрения взаимного расположения между плоскостью и прямой существует несколько больше вариантов, чем с двумя плоскостями. Связан этот факт с тем, что прямая является одномерным объектом. Прямая и плоскость могут быть:

  • взаимно параллельными, в этом случае плоскость не пересекает прямую;
  • последняя может принадлежать плоскости, при этом она также будет параллельна ей;
  • оба объекта могут пересекаться под некоторым углом.

Рассмотрим сначала последний случай, поскольку он требует введения понятия об угле пересечения.

Прямая и плоскость, значение угла между ними

Если плоскость прямая пересекает, то она называется наклонной по отношению к ней. Точку пересечения принято называть основанием наклонной. Чтобы определить между этими геометрическими объектами угол, необходимо опустить из любой точки прямой перпендикуляр на плоскость. Тогда точка пересечения перпендикуляра с плоскостью и место пересечения с ней наклонной образуют прямую. Последняя называется проекцией исходной прямой на рассматриваемую плоскость. Острый и проекцией ее является искомым.

Несколько запутанное определение угла между плоскостью и наклонной прояснит рисунок ниже.

Здесь угол ABO - это угол между AB прямой и a плоскостью.

Чтобы записать формулу для него, рассмотрим пример. Пусть имеется прямая и плоскость, которые описываются уравнениями:

(x ; y ; z) = (x 0 ; y 0 ; z 0) + λ * (a; b; c);

A * x + B * x + C * x + D = 0

Рассчитать искомый угол для этих объектов можно легко, если найти скалярное произведение между направляющими векторами прямой и плоскости. Полученный острый угол следует вычесть из 90 o , тогда он получается между прямой и плоскостью.

Рисунок выше демонстрирует описанный алгоритм нахождения рассматриваемого угла. Здесь β - это угол между нормалью и прямой, а α - между прямой и ее проекцией на плоскость. Видно, что их сумма равна 90 o .

Выше была представлена формула, дающая ответ на вопрос, как между плоскостями найти угол. Теперь приведем соответствующее выражение для случая прямой и плоскости:

α = arcsin(|a * A + b * B + c * C| / (√(a 2 + b 2 + c 2) * √(A 2 + B 2 + C 2)))

Модуль в формуле позволяет вычислять только острые углы. Функция арксинуса появилась вместо арккосинуса благодаря использованию соответствующей формулы приведения между тригонометрическими функциями (cos(β) = sin(90 o-β) = sin(α)).

Задача: плоскость пересекает прямую

Теперь покажем, как работать с приведенной формулой. Решим задачу: необходимо вычислить угол между осью y и плоскостью, заданной уравнением:

Эта плоскость показана на рисунке.

Видно, что она пересекает оси y и z в точках (0; -12; 0) и (0; 0; 12) соответственно и параллельна оси x.

Направляющий вектор прямой y имеет координаты (0; 1; 0). Вектор, перпендикулярный заданной плоскости, характеризуется координатами (0; 1; -1). Применяем формулу для угла пересечения прямой и плоскости, получаем:

α = arcsin(|1| / (√1 * √2)) = arcsin(1 / √2) = 45 o

Задача: параллельная плоскости прямая

Теперь решим аналогичную предыдущей задачу, вопрос которой поставлен иначе. Известны уравнения плоскости и прямой:

x + y - z - 3 = 0;

(x; y; z) = (1; 0; 0) + λ * (0; 2; 2)

Необходимо выяснить, являются ли эти геометрические объекты параллельными друг другу.

Имеем два вектора: направляющий прямой равен (0; 2; 2) и направляющий плоскости равен (1; 1; -1). Находим их скалярное произведение:

0 * 1 + 1 * 2 - 1 * 2 = 0

Полученный ноль говорит о том, что угол между этими векторами равен 90 o , что доказывает прямой и плоскости параллельность.

Теперь проверим, является эта прямая только параллельной или же еще и лежит в плоскости. Для этого следует выбрать произвольную точку на прямой и проверить, принадлежит ли она плоскости. Например, примем λ = 0, тогда точка P(1; 0; 0) прямой принадлежит. Подставляем в уравнение плоскости P:

Точка P плоскости не принадлежит, а значит, и вся прямая в ней не лежит.

Где важно знать углы между рассмотренными геометрическими объектами?

Приведенные выше формулы и примеры решения задач представляют собой не только теоретический интерес. Они часто применяются для определения важных физических величин реальных объемных фигур, например призмы или пирамиды. Важно уметь определить между плоскостями угол при расчете объемов фигур и площадей их поверхностей. При этом, если в случае прямой призмы можно не использовать эти формулы для определения указанных величин, то для любого вида пирамиды их применение оказывается неизбежным.

Ниже рассмотрим пример использования изложенной теории для определения углов пирамиды с квадратным основанием.

Пирамида и ее углы

Ниже рисунок демонстрирует пирамиду, в основании которой лежит квадрат со стороной а. Высота фигуры составляет h. Нужно найти два угла:

  • между боковой поверхностью и основанием;
  • между боковым ребром и основанием.

Чтобы решить поставленную задачу, сначала следует ввести систему координат и определить параметры соответствующих вершин. На рисунке показано, что начало координат совпадает с точкой в центре квадратного основания. В этом случае плоскость основания описывается уравнением:

То есть для любых x и y значение третьей координаты всегда равно нулю. Боковая плоскость ABC пересекает ось z в точке B(0; 0; h), а ось y в точке с координатами (0; a/2; 0). Ось x она не пересекает. Это означает, что уравнение плоскости ABC можно записать в виде:

y / (a / 2) + z / h = 1 или

2 * h * y + a * z - a * h = 0

Вектор AB¯ является боковым ребром. Координаты его начала и конца равны: A(a/2; a/2; 0) и B(0; 0; h). Тогда координаты самого вектора:

Мы нашли все необходимые уравнения и вектора. Теперь остается воспользоваться рассмотренными формулами.

Рассчитаем сначала в пирамиде угол между плоскостями основания и боковой стороны. Соответствующие нормальные вектора равны: n 1 ¯(0; 0; 1) и n 2 ¯(0; 2*h; a). Тогда угол составит:

α = arccos(a / √(4 * h 2 + a 2))

Угол между плоскостью и ребром AB будет равен:

β = arcsin(h / √(a 2 / 2 + h 2))

Остается подставить конкретные значения стороны основания a и высоты h, чтобы получить необходимые углы.