В геометрии вектором называется всякий направленный отрезок. Учение о действиях над векторами называется векторной алгеброй.
Вектор, началом которого служит точка А, а концом точка В, обозначается $$\overrightarrow{AB}$$ или $$\vec{a}$$. Если начало и конец вектора совпадают, то отрезок превращается в точку и теряет направление, такой отрезок называют нуль-вектором.
Если вектор задан точками $$A(x_1, y_1)$$ и $$B(x_2, y_2)$$, то его координаты: $$\overrightarrow{AB}=\{(x_2-x_1), (y_2-y_1)\}=\{X,Y\}$$. Длина вектора называется также его модулем, обозначается $$|\overrightarrow{AB}|$$ или $$|\vec{a}|$$ и вычисляется по формуле:
$$|\vec{a}|=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}=\sqrt{X^2+Y^2}$$Формулы
$$M_x=\frac{x_1+x_2}{2},M_y=\frac{y_1+y_2}{2}$$служат для вычисления координат середины отрезка $$\overrightarrow{AB}$$.
Разделить отрезок $$\overrightarrow{AB}$$ в заданном отношении λ можно так: $$L_{x}=\frac{x_{1}+\lambda x_{2}}{1+\lambda},L_{y}=\frac{y_{1}+\lambda y_{2}}{1+\lambda }$$, здесь $$L_x$$ и $$L_y$$ — координаты точки L, делящей отрезок в отношении $$AL:LB=l_{1}:l_{2}=\lambda$$.
Напомним, что векторы в Octave задаются путём поэлементного ввода:
>>> a =[1 0 3] % Вектор-строка a = 1 0 3 >>> b = [0; 1; 4] % Вектор-столбец b = 0 1 4
Пример 6.1. Построить вектор $$|\vec{a}| = \{5, 7\}$$.
Решение примера показано на рис. 6.1 . Листинг 6.1 содержит команды Octave, с помощью которых был выполнен рисунок.
clear all; clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector’) set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0: 10]); set(gca, ’ytick’, [0: 10]); grid on; xlabel(’x’); ylabel(’y’); a =[5 7]; L1=line([0, a (1)], [0, a(2)]); set(L1, ’LineWidth’, 3, ’Color’, ’k’); L1_=line([a(1), a(1)], [a(2), a(2)]); set(L1_, ’LineWidth’, 5, ’Color’, ’k’); set(L1_, ’marker’, ’<’, ’markersize’, 16);
Пример 6.2. Построить векторы, заданные координатами начала и конца:
$$\begin{array}{ccc} \vec{a}=\{(2,3),(4,6)\}, \vec{b}=\{(9,7),(6,5)\}, \vec{c}=\{(1,8),(4,8)\},\\ \vec{d}=\{(6,7),(6,9)\}, \vec{k}=\{(8,4),(8,1)\}, \vec{p}=\{(7,3),(5,3)\}. \end{array}$$Решение примера показано в листинге 6.2 и на рис. 6.2. Обратите внимание, что для изображения вектора была создана специальная функция $$vector(A, B)$$. Эта функция изображает направленный отрезок $$|\overrightarrow{AB}|$$ в декартовой системе координат и возвращает координаты его середины. В данном случае координаты середины отрезка нужны для нанесения соответствующей надписи, обозначающей вектор на рисунке.
(рис 6.1) Вектор на плоскости
clear all; % Функция рисует направленный отрезок АВ, в качестве результата выдаёт % координаты середины отрезка АВ. function [M]= vector(A,B) x1=A(1); x2=B(1); y1=A(2); y2=B(2); alf =30*pi/180;% Угол в вершине стрелки в радианах L=15; % Деление отрезка в заданном отношении xm=(x1+L*x2)/(1+L); ym=(y1+L*y2)/(1+L); k1=(y2-y1)/( x2-x1); % Угол наклона прямой АВ if (k1==Inf ) | (k1==-inf) % Отрезок перпендикулярен оси Ох % Координаты основания треугольника, образующего стрелку x4=xm-0.2; y4=ym; x3=xm+0.2; y3=ym; elseif k1==0 % Отрезок перпендикулярен оси Оу x4=xm; y4=ym-0.2; x3=xm; y3=ym+0.2; else % Уравнение прямой АВ k1=(y2-y1)/(x2-x1); m1=y1-x1*(y2-y1)/(x2-x1); % Уравнение прямой перпендикулярной АВ k3=-1/k1; m3=1/k1*xm+ym; % Уравнение прямой, проходящей через точку В под углом alf к прямой АВ k2=(-k1*tan(alf))/(tan(alf)*k1-1); m2=y2-k2*x2; % Уравнение прямой, проходящей через точку В под углом -alf к прямой АВ k4=(-k1*tan(-alf))/(tan(-alf)*k1-1); m4=y2-k4*x2; % Координаты основания треугольника, образующего стрелку x4=(m3-m2)/(k2-k3); y4=k2*x4+m2; x3=(m3-m4)/(k4-k3); y3=k3*x3+m3; end; % Изображение прямой АВ line([A(1),B(1)], [A(2), B(2)], ’LineWidth’, 3, ’Color’, ’k’); % Изображение стрелки в точке В patch([x2, x3, x4], [y2, y3, y4], ’k’); % Координаты середины отрезка АВ M(1) =(x1+x2)/2; M(2) =(y1+y2)/2; end; clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’); set(gcf, ’name’, ’Vector’); set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0: 10]); set(gca, ’ytick’, [0 : 10]); grid on; xlabel(’x’); ylabel(’y’); ma=vector([2, 3], [4, 6]); % Построение вектора a T=text(ma(1)+0.3,ma(2)-0.3, ’a’); set (T, ’FontSize’, 20) mb=vector([9, 7], [6, 5]); % Построение вектора b T=text(mb(1)+0.3,mb(2)-0.3, ’b’); set(T, ’FontSize’, 20) mc=vector([1, 8], [4, 8]); % Построение вектора c T=text(mc(1) +0.3,mc(2)-0.3, ’c’); set(T, ’FontSize’, 20) md=vector([6, 7], [6, 9]); % Построение вектора d T=text(md(1)+0.3,md(2)-0.3, ’d’); set(T, ’FontSize’, 20) mk=vector([8, 4], [8, 1]); % Построение вектора k T=text(mk(1)+0.3,mk(2)-0.3, ’k’); set (T, ’FontSize’, 20) mp=vector([7, 3], [5, 3]); % Построение вектора p T=text(mp(1) +0.3,mp(2)-0.3, ’p’); set(T, ’FontSize’, 20)
(рис 6.2) Геометрическое решение примера 6.2
Два ненулевых вектора $$\vec{a}$$ и $$\vec{b}$$ равны, если они равнонаправлены и имеют один и тот же модуль. Все нулевые векторы равны. Во всех остальных случаях векторы не равны. Два вектора имеющие равные модули и противоположные направления, называются противоположными . Векторы лежащие на параллельных прямых называются коллинеарными.
Пример 6.3. Сравнить векторы $$\overrightarrow{AB}$$ и $$\overrightarrow{CD}$$, $$\overrightarrow{ON}$$, $$\overrightarrow{OM}$$ и $$\overrightarrow{KL}$$, $$\overrightarrow{PR}$$ и $$\overrightarrow{UV}$$ заданные координатами начала и конца: $$A(1, 2), B(3, 5), C(3, 2), D(5, 5), O(7, 9), M(6, 6), N(8, 6), K(4, 9), L(3, 6), P(9, 2), R(6, 2), U(6, 3), V(9, 3)$$.
Текст файла-сценария представлен в листинге 6.3. При решении примера была создана функция $$dlina(X, Y)$$, которая вычисляет длину отрезка XY, заданного координатами точек $$X(x_1, x_2)$$ и $$Y(y_1, y_2)$$. Для изображения векторов использовалась функция $$vector(A, B)$$, описанная в примере 6.2.
Решение примера показано в конце листинга 6.3 и на рис. 6.3 . По полученным числовым результатам и геометрической интерпретации примера можно сделать вывод, что векторы $$\overrightarrow{AB}$$ и $$\overrightarrow{CD}$$ равны. Векторы $$\overrightarrow{ON}$$ и $$\overrightarrow{OM}$$ не равны, хотя у них и одинаковые длины, но направления различны. Векторы $$\overrightarrow{ON}$$ и $$\overrightarrow{KL}$$ неравны по той же причине, а векторы $$\overrightarrow{OM}$$ и $$\overrightarrow{KL}$$ равны. Векторы $$\overrightarrow{PR}$$ и $$\overrightarrow{UV}$$ — противоположные, так как имеют одинаковый модуль и противоположные направления.
function d=dlina(X,Y) % Функция возвращает длину отрезка XY d=sqrt((Y(1)-X(1))^2+(Y(2)-X(2))^2); end; clf; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector’) cla; set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0 : 10]); set(gca, ’ytick’, [0 : 10]); grid on; xlabel(’x’); ylabel(’y’); % Исходные данные A= [1, 2];B= [3, 5];C= [3, 2];D= [5, 5];O= [7, 9];M= [6, 6];N= [8, 6]; K= [4, 9]; L= [3, 6];P= [9, 2];R= [6, 2];U= [6, 3];V= [9, 3]; % Длины отрезков dAB=dlina(A,B) dCD=dlina(C,D) dON=dlina(O,N) dOM=dlina(O,M) dKL=dlina(K,L) dPR=dlina(P,R) dUV=dlina(U,V) % Построение вектора AB vector(A,B); A_=text(A(1)+0.3,A(2)-0.3, ’A’); set(A_, ’FontSize’, 20) B_=text(B(1)+0.3,B(2)-0.3, ’B’); set(B_, ’FontSize’, 20) % Построение вектора CD vector(C,D); C_=text(C(1)+0.3,C(2)-0.3, ’C’); set(C_, ’FontSize’, 20) D_=text(D(1)+0.3,D(2)-0.3, ’D’); set(D_, ’FontSize’, 20) % Построение вектора OM vector(O,M); O_=text(O(1)+0.3,O(2)-0.3, ’O’); set(O_, ’FontSize’, 20) M_=text(M(1)+0.3,M(2)-0.3, ’M’); set(M_, ’FontSize’, 20) % Построение вектора ON vector(O,N); O_=text(O(1)+0.3,O(2)-0.3, ’O’); set(O_, ’FontSize’, 20) N_=text(N(1)+0.3,N(2)-0.3, ’N’); set(N_, ’FontSize’, 20) % Построение вектора KL vector(K,L); K_=text(K(1)+0.3,K(2)-0.3, ’K’); set(K_, ’FontSize’, 20) L_=text(L(1)+0.3,L(2)-0.3, ’L’); set(L_, ’FontSize’, 20) % Построение вектора PR vector(P,R); P_=text(P(1)+0.3,P(2)-0.3, ’P’); set(P_, ’FontSize’, 20) R_=text(R(1)+0.3,R(2)-0.3, ’R’); set(R_, ’FontSize’, 20) % Построение вектора UV vector(U,V); U_=text(U(1)+0.3,U(2)-0.3, ’U’); set(U_, ’FontSize’, 20) V_=text(V(1)+0.3,V(2)-0.3, ’V’); set(V_, ’FontSize’, 20) % Решение примера 6.3 % Длины отрезков: AB = 3.6056 CD = 3.6056 ON = 3.1623 OM = 3.1623 KL = 3.1623 PR = 3 UV = 3
Пример 6.4. Проверить коллинеарны ли векторы $$\overrightarrow{AB}$$ и $$\overrightarrow{CD}$$,$$\overrightarrow{NM}$$ и $$\overrightarrow{KL}$$, $$\overrightarrow{PR}$$ и $$\overrightarrow{UV}$$. Координаты точек: $$A(4, 2), B(2, 3), C(3, 2), D(7, 0), M(2, 1), N(6, 1), K(1, 2), L(7, 2), P(3, 3), R(5, 3), U(1, 4), V(5, 4)$$.
Текст файла-сценария представлен в листинге 6.4. При решении примера была создана функция $$kollin(a, b)$$, которая определяет коллинеарны ли векторы $$\vec{a}=\{x_{1}, y_{1}\}$$ и $$\vec{b}=\{x_{2}, y_{2}\}$$. Результатом работы функции является коэффициент пропорциональности векторов. Если векторы коллинеарны, то их соответствующие координаты пропорциональны: $$\pm\lambda =\frac{x_{2}}{x_{1}}=\frac{y_{2}}{y_{1}}$$. Знак коэффициента пропорциональности говорит о направлении векторов: "+" — в одну сторону, "_" — в разные. Для изображения векторов использовалась функция $$vector(A, B)$$, описанная в листинге 6.2 к примеру 6.2.
(рис 6.3) Изображение векторов примера 6.3
Решение примера показано в конце листинга 6.4 и на рис. 6.4. По полученным числовым результатам и геометрической интерпретации примера можно сделать вывод, что векторы $$\overrightarrow{AB}$$ и $$\overrightarrow{CD}$$ коллинеарны, но направлены в разные стороны. Векторы $$\overrightarrow{NM}$$ и $$\overrightarrow{KL}$$ не являются коллинеарными. Векторы $$\overrightarrow{PR}$$ и $$\overrightarrow{UV}$$ — коллинеарны и имеют одно направление.
function[lam]= kollin(a, b) if (a(2)==0) (b(2)==0) lam=a(1)/b(1); elseif (a(1)==0) (b(1)==0) lam=a(2)/b(2); elseif a(1)/b(1)==a(2)/b(2) lam=a(1)/b(1); else lam=Inf; end; end; clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector’) set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0 : 10]); set(gca, ’ytick’, [0 : 10]); grid on; xlabel(’x’); ylabel(’y’); A= [3, 3];B= [1, 4];C= [2, 2];D= [6, 0];M= [2, 6];N= [6, 6]; K= [1, 7]; L= [7, 8];P= [7, 3];R= [9, 3];U= [5, 4];V= [9, 4]; AB_CD=kollin(B-A, D-C) MN_KL=kollin(N-M, L-K) PR_UV=kollin(R-P, V-U) vector(A,B);% Построение вектора AB A_=text(A(1),A(2)+0.3, ’A’); set(A_, ’FontSize’, 20) B_=text(B(1),B(2)+0.3, ’B’); set(B_, ’FontSize’, 20) vector(C,D); % Построение вектора CD C_=text(C(1),C(2)+0.3, ’C’); set(C_, ’FontSize’, 20) D_=text(D(1),D(2)+0.3, ’D’); set(D_, ’FontSize’, 20) vector(N,M); % Построение вектора NM N_=text(N(1),N(2)+0.3, ’N’); set(N_, ’FontSize’, 20) M_=text(M(1),M(2)+0.3, ’M’); set(M_, ’FontSize’, 20) vector(K, L); % Построение вектора KL K_=text(K(1)+0.3,K(2)-0.3, ’K’); set(K_, ’FontSize’, 20) L_=text(L(1)+0.3,L(2)-0.3, ’L’); set(L_, ’FontSize’, 20) vector(P,R); % Построение вектора PR P_=text(P(1)+0.3,P(2)-0.3, ’P’); set(P_, ’FontSize’, 20) R_=text(R(1)+0.3,R(2)-0.3, ’R’); set(R_, ’FontSize’, 20) vector(U,V); % Построение вектора UV U_=text(U(1)+0.3,U(2)-0.3, ’U’); set(U_, ’FontSize’, 20) V_=text(V(1)+0.3,V(2)-0.3, ’V’); set(V_, ’FontSize’, 20) % Результаты — коэффициенты пропорциональности векторов AB_CD = -0.50000 MN_KL = Inf PR_UV = 0.50000
Геометрической проекций вектора $$\overrightarrow{AB}$$ на ось OX называется вектор $$\overrightarrow{A^{'}B^{'}}$$, начало которого $$A^{'}$$ есть проекция точки $$A$$ на ось OX, а конец $$B^{'}$$ — проекция точки $$B$$ на ту же ось. Обозначается: $$\overrightarrow{A^{'}B^{'}}=\text{Пр}_{OX}\overrightarrow{AB}$$. Алгебраической проекций вектора $$\overrightarrow{AB}$$ на ось OX называется длина вектора $$\overrightarrow{A^{'}B^{'}}$$, взятая со знаком "+", если направление вектора $$\overrightarrow{AB}$$ совпадает с направлением оси OX, или со знаком "-" в противном случае.
(рис 6.4) Геометрическая интерпретация примера 6.4
Пример 6.5. Найти проекции векторов $$\overrightarrow{AB}$$ и $$\overrightarrow{PR}$$ на ось OX. Координаты точек, задающих векторы: $$A(1, 2), B(3, 5), P (9, 2), R(6, 2)$$.
Текст файла-сценария и значения алгебраических проекций векторов представлены в листинге 6.5. При решении примера была создана функция $$pr\_OX(X)$$, которая вычисляет длину проекции вектора на ось OX. Аргументом функции является массив абсцисс $$X(x_1, x_2)$$ заданного вектора. Для изображения векторов и их проекций использовалась функция $$vector(A, B)$$, описанная в примере 6.2. Геометрические проекции показаны на рис. 6.5.
function pr=pr_OX(X) % Длина проекции вектора на ось ОХ pr=X(2)-X(1); end; clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector’) set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0 : 10]); set(gca, ’ytick’, [0 : 10]); grid on; xlabel(’x’); ylabel(’y’); A= [1, 2];B= [3, 5];P= [9, 2];R= [6, 2]; % Длины проекций prAB=pr_OX([A(1),B(1)]) prPR=pr_OX([P(1),R(1)]) vector(A,B);% Построение вектора AB A_=text(A(1)+0.3,A(2)-0.3, ’A’); set(A_, ’FontSize’, 20) B_=text(B(1)+0.3,B(2)-0.3, ’B’); set(B_, ’FontSize’, 20) % Построение проекции вектора АВ на ось ОХ mAB=vector([A(1), 0], [B(1), 0]); text(mAB(1),mAB(2)+0.5, ’prAB’, ’FontSize’, 18); vector(P,R); % Построение вектора PR P_=text(P(1)+0.3,P(2)-0.3, ’P’); set(P_, ’FontSize’, 20) R_=text(R(1)+0.3,R(2)-0.3, ’R’); set(R_, ’FontSize’, 20) % Построение проекции вектора PR на ось ОХ mPR=vector([P(1), 0], [R(1), 0]); text(mPR(1),mPR(2)+0.3, ’prPR’, ’FontSize’, 18); % Вычисление проекций prAB = 2 prPR = -3
(рис 6.5) Проекции векторов на ось OX
Любые векторы можно привести к общему началу, то есть построить векторы равные данным и имеющие общее начало в некоторой точке О.
Над векторами производят различные действия: сложение, вычитание, умножение.
При сложении\ (вычитании ) векторов их координаты складываются (вычитаются): $$\vec{a}\pm\vec{b}=\{(a_{1}\pm b_{1}),(a_{2}\pm b_{2})\}$$.
При умножении\ (делении ) вектора на число все координаты умножаются (делятся) на это число: $$\lambda \vec{a}=\{\lambda a_{1,}\lambda a_{2}\}$, $\frac{\vec{a}}{\lambda}=\{\frac{a_{1}}{\lambda },\frac{a_{2}}{\lambda }\}$$.
(рис 6.6) Геометрическое представление суммы векторов
Пример 6.6. Найти сумму векторов $$\vec{a}=\{1,4\}$$ и $$\vec{b}=\{5,3\}$$.
Если векторы $$\vec{a}$$ и $$\vec{b}$$ не коллинеарны, то геометрически вектор $$\vec{c}=\vec{a}+\vec{b}$$ является диагональю параллелограмма построенного на векторах $$\vec{a}$$ и $$\vec{b}$$ (правило параллелограмма).
Листинг 6.7 содержит команды Octave, с помощью которых был решён пример и результаты их работы. Функция $$vector(A, B)$$, описана в примере 6.2. Геометрическое решение примера показано на рис. 6.6.
clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector c=a+b’) set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0 : 10]); set(gca, ’ytick’, [0 : 10]); grid on; xlabel(’x’); ylabel(’y’); a = [1, 4]; b = [5, 3]; c =[a(1)+b(1), a(2)+b(2)]% Сумма векторов ma=vector([0, 0], a); % Построение вектора a text (ma(1)+0.3,ma(2)-0.3, ’a’, ’FontSize’, 20); mb=vector([0, 0], b); % Построение вектора b text (mb(1)+0.3,mb(2)-0.3, ’b’, ’FontSize’, 20); mc=vector([0, 0], c); % Построение вектора c=a+b text (mc(1)+0.3,mc(2)-0.3, ’c’, ’FontSize’, 20); line([a(1), c(1)], [a(2), c(2)], ’LineWidth’, 1, ’Color’, ’k’); line([b(1), c(1)], [b(2), c(2)], ’LineWidth’, 1, ’Color’, ’k’); % Результаты работы программы. Координаты вектора c=a+b: c = 67
(рис 6.7) Геометрическое представление действий над векторами
Пример 6.7. Выполнить действия над векторами $$\vec{c}=3\vec{a}-2\vec{b}$$, где $$\vec{a}=\{1,2\}$$ и $$\vec{b}=\{3,1\}$$.
Геометрически вычесть из вектора $$\vec{a}$$ вектор $$\vec{b}$$, значит найти такой вектор $$\vec{x}$$ для которого $$\vec{x}+\vec{b}=\vec{a}$$. Иначе говоря, если на векторах $$\vec{x}$$ и $$\vec{b}$$ построить треугольник, то $$\vec{a}$$ — его третья сторона (правило треугольника).
Листинг 6.7 содержит команды Octave и результаты работы файла-сценария. Функция $$vector(A, B)$$, описана в задаче 6.2. Решение примера показано на рис. 6.7.
clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector c=4a-3b’) set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0 : 10]); set(gca, ’ytick’, [0 : 10]); grid on; xlabel(’x’); ylabel(’y’); a = [1, 2]; b = [3, 1]; c =[4*a(1)-3*b(1),4*a(2)-3*b(2)] % Действия над векторами for i =1:4 % Построение вектора 4a ma=vector([0, 0], i*a); end; text(ma(1)+0.3,ma(2)-0.3, ’4a’, ’FontSize’, 20); for i =1:3 % Построение вектора 3b mb=vector([0, 0], i*b); end; text(mb(1)+0.3,mb(2)-0.3, ’3b’, ’FontSize’, 20); % Построение вектора c=4a-3b mc=vector([3*b(1),3*b(2)], [4*a(1),4*a(2)]); text(mc(1)+0.3,mc(2)+0.3, ’c=4a-3b’, ’FontSize’, 20); % Результаты работы программы — координаты отрезка c=4a-3b c = -55
Пример 6.8. Найти углы образуемые осями координат с вектором $$\vec{a}=\{2,-2,-1\}$$.
Углы, образуемые положительными направлениями осей с вектором ~a можно рассчитать по
Листинг 6.8 содержит команды Octave и результаты работы файла-сценария.
function[U]= ugol(X) % Углы, образуемые осями координат с вектором Х m=sqrt(X(1)^2+X(2)^2+X(3)^2); U=acos(X/m); end; function gr=rad_gr(rad) % Перевод радиан в градусы и минуты gr(1)= round(rad*180/pi); % Градусы gr(2)= round((rad*180/pi-gr(1))*60); % Минуты end; u=ugol([2, -2, -1]) % Вычисление углов в радианах % Углы в градусах и минутах alf=rad_gr(u(1)) bet=rad_gr(u(2)) gam=rad_gr(u(3)) % Результаты работы — углы в радианах u = 0.84107 2.30052 1.91063 % Углы в градусах и минутах alf = 48 11 bet = 132 -11 gam = 109 28
Скалярным произведением вектора $$\vec{a}$$ на вектор $$\vec{b}$$ называется произведение их модулей и косинуса угла между ними: $$\overrightarrow{ab}=|\vec{a}|\cdot |\vec{b}|\cos (\widehat {{a,b}})$$. Если $$\vec{a}=\{a_{1,}a_{2,}a_{3}\}$$ и $$\vec{b}=\{b_{1,}b_{2,}b_{3}\}$$, то $$\overrightarrow{ab}=a_{1}b_{1}+a_{2}b_{2}+a_{3}b_{3}$$.
Пример 6.9. Найти угол между векторами $$\vec{a}=\{-2,1,2\}$$ и $$\vec{b}=\{-2,-2,1\}:\cos (\widehat {{a,b}})=\frac{\overrightarrow{ab}}{|\vec{a}|\cdot |\vec{b}|}$$.
Текст файла-сценария и результат его работы представлены в листинге 6.9
function gr=rad_gr(rad) % Перевод радиан в градусы и минуты gr(1)= round(rad*180/pi); % Градусы gr(2)= round((rad*180/pi_gr(1))*60); % Минуты end; a = [-2, 1, 2]; b=[-2, -2, 1]; da=sqrt(a(1)^2+a(2)^2+a(3)^2); db=sqrt(b(1)^2+b(2)^2+b(3)^2); ab=sum(a. *b); alf=acos(ab/(da*db)) rad_gr(alf) % Результат — угол в радианах alf = 1.1102 % Угол в градусах ans = 64 -23
Пример 6.10. Проверить, являются ли векторы $$\overrightarrow{NM}$$ и $$\overrightarrow{KL}$$, $$\overrightarrow{PR}$$ и $$\overrightarrow{UV}$$ взаимно перпендикулярными. Координаты точек: $$M(2, 1), N(6, 1), K(1, 2), L(7, 2), P (3, 3), R(5, 3), U(1, 4), V(5, 4)$$.
Если $$\vec{a}=\{a_{1,}a_{2}\}$$ и $$\vec{b}=\{b_{1,}b_{2}\}$$, то их скалярное произведение равно нулю: $$\overrightarrow{ab}=a_{1}b_{1}+a_{2}b_{2}=0$$. На рис. 6.8 видно, что векторы $$\overrightarrow{NM}$$ и $$\overrightarrow{KL}$$ перпендикулярны, а $$\overrightarrow{PR}$$ и $$\overrightarrow{UV}$$ нет. Аналитические вычисления подтверждают это (листинг 6.10).
% Вычисление скалярного произведения векторов a и b function[ab]= scal(a, b) ab=a(1)*b(1)+a(2)*b(2); end; clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector’) set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0 : 10]); set(gca, ’ytick’, [0 : 10]); grid on; xlabel(’x’); ylabel(’y’); M= [2, 6];N= [6, 6];K= [4, 4]; L = [4, 8]; P= [7, 3];R= [9, 3];U= [5, 4];V= [9, 4]; MN_KL=scal(N-M, L-K) PR_UV=scal(R-P, V-U) vector(N,M); % Построение вектора NM N_=text(N(1),N(2)+0.3, ’N’); set(N_, ’FontSize’, 20) M_=text(M(1),M(2)+0.3, ’M’); set(M_, ’FontSize’, 20) vector(K,L); % Построение вектора KL K_=text(K(1)+0.3,K(2)-0.3, ’K’); set(K_, ’FontSize’, 20) L_=text(L(1)+0.3,L(2)-0.3, ’L’); set(L_, ’FontSize’, 20) % Построение вектора PR vector(P,R); % Построение вектора PR P_=text(P(1)+0.3,P(2)-0.3, ’P’); set(P_, ’FontSize’, 20) R_=text(R(1)+0.3,R(2)-0.3, ’R’); set(R_, ’FontSize’, 20) vector(U,V);% Построение вектора UV U_=text(U(1)+0.3,U(2)-0.3, ’U’); set(U_, ’FontSize’, 20) V_=text(V(1)+0.3,V(2)-0.3, ’V’); set(V_, ’FontSize’, 20) % Результат работы программы MN_KL = 0 PR_UV = 8
(рис 6.8) Графическое решение примера 6.10
Векторным произведением вектора $$\vec{a}$$ на не коллинеарный с ним вектор $$\vec{b}$$ называется вектор $$\vec{c}$$, модуль которого численно равен площади параллелограмма построенного на векторах $$\vec{a}$$ и $$\vec{b}$$: $$\vec{a}\times \vec{b}=|\vec{a}|\cdot |\vec{b}|\sin (\widehat {{a,b}})$$. Направление вектора $$\vec{c}$$ перпендикулярно плоскости параллелограмма. Если векторы $$\vec{a}=\{x_{1,}y_{1,}z_{1}\}$$ и $$\vec{b}=\{x_{1,}y_{2,}z_{2}\}$$, то $$\vec{a}\times\vec{b}=\left\{\left|\begin{smallmatrix}y_{1}z_{1}\\y_{2}z_{2}\end{smallmatrix}\right|,\left|\begin{smallmatrix}z_{1}x_{1}\\z_{2}x_{2}\end{smallmatrix}\right|,\left|\begin{smallmatrix}x_{1}y_{1}\\x_{2}y_{2}\end{smallmatrix}\right|\right\}$$.
(рис 6.9) Геометрическая интерпретация векторного произведения
Пример 6.11. Найти векторное произведение векторов $$\vec{a}=\{1,4\}$$ и $$\vec{b}=\{5,3\}$$. Вычислить угол между векторами.
Графическое решение показано на рис. 6.9. Листинг 6.11 содержит текст программы и результаты её работы.
clear all; clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector’) set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’zlim’, [0, 10]); set(gca, ’xtick’, [0 : 10]); set(gca, ’ytick’, [0 : 10]); set(gca, ’ztick’, [0 : 10]); set(gca, ’View’, [30 30], ’box’, ’on’); xlabel(’x’); ylabel(’y’); zlabel(’z’); axis([0, 10, 0, 10, 0, 10]); grid on; function D=dlin(x) % Длина вектора D=(x(1)^2+x(2)^2+x(3)^2)^(1/2); end; function gr=rad_gr(rad) % Перевод радиан в градусы и минуты gr(1)= round(rad*180/pi); % Градусы gr(2)= round((rad*180/pi_gr(1))*60); % Минуты end; % Исходные данные x1 =4; y1 =2; z1 =0; x2 =1; y2 =3; z2 =0; a=[x1, y1, z1]; b=[x2, y2, z2]; % Расчёт координат векторного произведения M=[a; b]; M1=M(1:2, 2:3);M2=[M(:, 1),M(:, 3)]; M3=M(1:2, 1:2); c(1)=det(M1); c(2)=-det(M2); c(3)=(det(M3)); % Расчёт угла между векторами a и b da=dlin(a); db=dlin(b); dc=dlin(c); alf=asin(dc/(da*db)); % Изображение векторов a,b,c line([0, a(1)], [0, a(2)], [0, a(3)], ’LineWidth’, 5, ’Color’, ’k’); line([0, b(1)], [0, b(2)], [0, b(3)], ’LineWidth’, 5, ’Color’, ’k’); line([0, c(1)], [0, c(2)], [0, c(3)], ’LineWidth’, 5, ’Color’, ’k’); % Изображение стрелок на векторах line([c(1), c(1)], [c(2), c(2)], [c(3), c(3)], ’LineWidth’, 5, ’Color’ , ’k’, ’marker’, ’^’, ’markersize’, 16); line([b(1), b(1)], [b(2), b(2)], [b(3), b(3)], ’LineWidth’, 5, ’Color’ , ’k’, ’marker’, ’<’, ’markersize’, 10); line([a(1), a(1)], [a(2), a(2)], [a(3), a(3)], ’LineWidth’, 5, ’Color’ , ’k’, ’marker’, ’<’, ’markersize’, 10); % Расчёт координат вершины параллелограмма k1=y1/x1; k2=y2/x2; d(1) =(y1-y2+k1*x2-k2*x1)/(k1-k2); d(2)=k1*d(1)+y2-k1*x2; d(3) =0; % Стороны параллелограмма line([a(1),d(1)],[a(2),d(2)],[a(3),d(3)], ’LineWidth’, 2, ’Color’, ’k’); line([b(1),d(1)],[b(2),d(2)],[b(3),d(3)], ’LineWidth’, 2, ’Color’, ’k’); c % Координаты векторного произведения alfa=rad_gr(alf) % Угол между векторами a и b % Результаты работы программы — координаты векторного произведения c = 0 -0 10 % Угол между векторами alfa = 45 -0
Три вектора называют компланарными, если они, будучи приведены к общему началу, лежат в одной плоскости. Смешанным или векторно-скалярным произведением трёх векторов $$\vec{a}$$,$$\vec{b}$$ и $$\vec{c}$$ называется скалярное произведение вектора $$\vec{a}$$ на векторное произведение $$\vec{b}\times\vec{c}$$, то есть число $$\overrightarrow{abc}=\vec{a}\cdot (\vec{b}\times\vec{c})=(\vec{b}\times \vec{c})\cdot \vec{a}$$. Если векторы $$\vec{a}=\{x_{1,}y_{1,}z_{1}\}$$, $$\vec{b}=\{x_{1,}y_{2,}z_{2}\}$$ и $$\vec{\text{с}}=\{x_{3,}y_{3,}z_{3}\}$$ даны своими координатами, то смешанное произведение вычисляют по формуле:
$$\overrightarrow{abc}= \displaystyle\left\arrowvert{ \begin{array}{ccc} x_{1}y_{1}z_{1}\\ x_{2}y_{2}z_{2}\\ x_{3}y_{3}z_{3} \end{array} }\right\arrowvert.$$Необходимым и достаточным условием компланарности векторов $$\vec{a}$$, $$\vec{b}$$ и $$\vec{c}$$ является равенство нулю их смешанного произведения $$\overrightarrow{abc}=0$$.
Пример 6.12. Проверить компланарность векторов (листинг 6.12):
$$\begin{aligned} \text{а) } \vec{a}=\{-2,-1,-3\}, \vec{b}=\{-1,4,6\} \text{ и } \vec{c}=\{1,5,9\};\\ \text{б) } \vec{a}=\{1,2,3\}, \vec{b}=\{-1,3,4\} \text{ и } \vec{c}=\{2,5,2\}. \end{aligned}$$function d=komp(A, B,C) M=[A;B;C ]; d=det (M); if d==0 disp(’Векторы компланарны’); else disp(’Векторы не компланарны’); end; end; a =[-2, -1, -3];b = [-1, 4, 6]; c = [1, 5, 9]; d1=komp(a, b, c) a = [ 1, 2, 3 ]; b = [ -1, 3, 4 ]; c = [ 2, 5, 2 ]; d2=komp( a, b, c ) % Результат работы программы Векторы компланарны d1 = 0 Векторы не компланарны d2 = -27
Плоскость, проходящая через точку $$M_{0}(x_{0}, y_{0}, z_{0})$$ и перпендикулярная к вектору $$\vec{N}\{A,B,C\}$$ представляется уравнением $$A(x-x_{0})+B(y-y_{0})+C(z-z_{0})=0$$ или $$Ax+By+Cz+D=0$$.
Вектор $$\vec{N}\{A,B,C\}$$ называется нормальным вектором плоскости.
Пример 6.13. Записать уравнение и построить плоскость, проходящую через точку $$M_0 (2, 0, 4)$$ и перпендикулярную вектору $$\vec{N}\{3,0,-3\}$$.
Исходя из условия примера уравнение плоскости имеет вид $$3(x-2)+0(y-1)-3(z-4)=0\Rightarrow 3x-6-3z+12=0\Rightarrow 3x-3z+6=0$$.
Для построения плоскости средствами Octave преобразуем уравнение плоскости к виду функции двух переменных:
$$Ax+By+Cz+D=0\Rightarrow z(x,y)=-{\frac{A}{C}}x-\frac{B}{C}y-\frac{D}{C},\\ z(x,y)=b_{0}+b_{1}x+b_{2}y,b_{0}=-{\frac{A}{C}},b_{1}=\frac{-{B}}{C},b_{2}=\frac{-{D}}{C}.$$
(рис 6.10) Изображение плоскости и её направляющего вектора
Решение примера представлено в листинге 6.13 и на рис. 6.10
clf; cla; set(gcf, ’Position’, [ 20, 20, 400, 400 ] ); axis ( [ 0, 1 0, 0, 1 0, 0, 1 0 ] ) A=3;B=0;C=_3;D=6;N=[A, B,C ]; % Параметры плоскости b0= - D/C; b1= - A/C; b2= - B/C; % Параметры уравнения плоскости, преобразо% ванного к функции двух переменных % Построение плоскости xk=5;yk=5; X= 0 : 0.5 : xk;Y= 0 : 0.5 : yk; [ x, y]= meshgrid(X,Y); z=b0+b1*x+b2 * y; surf( x, y, z ), colormap gray grid on; xlabel ( ’x’, ’FontSize’, 2 0 ); ylabel( ’y’, ’FontSize’, 2 0 ); zlabel( ’z’, ’FontSize’, 2 0 ); set( gca, ’FontSize’, 1 2 ); set ( gca, ’box’, ’on’ ); % Построение направляющего вектора line( [ xk, 0 ], [ 0, 0 ], [ b0, yk+b0 ], ’LineWidth’, 5, ’Color’, ’k’ ); line( [ 0, 0 ], [ 0, 0 ], [ yk+b0, yk+b0 ], ’LineWidth’, 5, ’Color’, ’k’, ’ marker’, ’v’, ’markersize’, 1 6 ); text(0+0.3,0+0.3, yk+b0 _1, ’N’, ’FontSize’, 2 0 ); title( ’3x-3z+6=0’, ’FontSize’, 2 0 ) % Заголовок
Если плоскость проходит через заданную точку $$M_{1}(x_{1,}y_{1,}z_{1})$$ и параллельна плоскости $$Ax + By + Cz + D = 0$$, то её уравнение записывают так $$A(x-x_{1})+B(y-y_{1})+C(z-z_{1})=0$$.
(рис 6.11) Параллельные плоскости
Пример 6.14. Записать уравнение и построить плоскость, проходящую через точку $$M_0 (1, 3, 5)$$ параллельно плоскости $$3x - 3z + 6 = 0$$.
Уравнение плоскости имеет вид: $$3(x-1)-3(z-5)=0\Rightarrow 3x-3-3z+15=0\Rightarrow 3x-3z+12=0$$.
Решение примера показано на рис. 6.11 и в листинге 6.14.
function p=plos(A, B, C,D) % Параметры уравнения плоскости, преобразованного b0= - D/C; b1= - A/C; b2= - B/C; % к функции двух переменных % Построение плоскости xk=5;yk=5; X= 0 : 0.5 : xk;Y= 0 : 0.5 : yk; [ x, y]= meshgrid(X,Y); z=b0+b1 * x+b2 * y; surf( x, y, z ), colormap gray grid on; p=0; end; clf; cla; set( gcf, ’Position’, [ 20, 20, 400, 400 ] ); axis( [ 0, 10, 0, 10, 0, 10 ] ) A1=3;B1=0;C1=_3;D1=6; % Параметры плоскости % Построение плоскостей plos(A1, B1, C1, D1) hold on A2=3;B2=0;C2=_3;D2=12; p=plos(A2, B2, C2, D2) xlabel( ’x’, ’FontSize’, 2 0 ); ylabel( ’y’, ’FontSize’, 2 0 ); zlabel( ’z’, ’FontSize’, 2 0 ); set( gca, ’FontSize’, 1 2 ); set( gca, ’box’, ’on’ ); M= [ 1, 3, 5 ]; % Изображение точки line( [M( 1 ),M( 1 ) ], [M( 2 ),M( 2 ) ], [M( 3 ),M( 3 ) ], ’LineWidth’, 5, ’Color’ , ’k’, ’marker’, ’o’, ’markersize’, 1 6 ); text(M( 1 ) _0.5,M( 2 ) +0.5,M( 3 ) +1, ’M(1,3,5)’, ’FontSize’, 2 0 ); title( ’3x-3z+6=0,3x-3z+12=0’, ’FontSize’, 2 0 )
Если три точки $$M_{0}(x_{0}, y_{0}, z_{0}),M_{1}(x_{1}, y_{1}, z_{1})$$ и $$M_{2}(x_{2}, y_{2}, z_{2})$$ не лежат на одной прямой, то уравнение плоскости, проходящей через них, представляется уравнением:
$$\left\arrowvert\begin{matrix}x-x_{0}y-y_{0}z-z_{0}\\x_{1}-x_{0}y_{1}-y_{0}z_{1}-z_{0}\\x_{2}-x_{0}y_{2}-y_{0}z_{2}-z_{0}\end{matrix}\right\arrowvert=0.$$Пример 6.15. Записать уравнение и построить плоскость, проходящую через точки $$M_0(1, 2, 3), M_1(2, 1, 2)$$ и $$M_2(3, 3, 1)$$.
Заданные точки не лежат на одной прямой, так как векторы $$\overrightarrow{{M_{0}M_{1}}}$$
и $$\overrightarrow{{M_{0}M_{2}}}$$ не коллинеарны. ли. 6.12 и рис. 6.13 иллюстрируют это утверждение. Изображение на рис. 6.12 получено в результате работы программы показанной в листинге 6.15. Рис. 6.13 получен из ррис. 6.12ис путём
clf; cla; set( gcf, ’Position’, [ 20, 20, 400, 400 ] ); set( gca, ’Position’, [ . 1, . 1, . 8, . 8 ] ); set( gca, ’xlim’,[0,3]); set ( gca, ’ylim’,[0,3]); set ( gca, ’zlim’,[0,3]); set( gca, ’xtick’,[0:3]); set ( gca, ’ytick’,[0:3]); set ( gca, ’ztick’,[0:3]); set( gca, ’box’, ’on’ ); xlabel ( ’x’ ); ylabel ( ’y’ ); zlabel ( ’z’ ); axis( [ 0, 3, 0, 3, 0, 3 ] ) grid on; M0= [ 1, 2, 3 ];M1= [ 2, 1, 2 ];M2= [ 3, 3, 1 ]; % Исходные данные % Изображение векторов M0M1 и M0M2 line ([M1(1),M0(1)],[M1(2),M0(2)],[M1(3),M0(3)],’LineWidth’,5,’Color’,’k’); line ([M2(1),M0(1)],[M2(2),M0(2)],[M2(3),M0(3)],’LineWidth’,5,’Color’,’k’); % Изображение стрелок на векторах line ([M1(1),M1(1)],[M1(2),M1(2)],[M1(3),M1(3)], ’LineWidth’, 5, ’Color’, ’k ’, ’marker’, ’>’, ’markersize’, 10 ); line ([M2(1),M2(1)],[M2(2),M2(2)],[M2(3),M2(3)], ’LineWidth’, 5, ’Color’, ’k ’, ’marker’, ’<’, ’markersize’, 10 ); line ([M0(1),M0(1)],[M0(2),M0(2)],[M0(3),M0(3)], ’LineWidth’, 5, ’Color’, ’k ’, ’marker’, ’o’, ’markersize’, 10 ); % Подписи text(M0( 1 ),M0( 2 ) +0.3,M0( 3 ), ’M0’, ’FontSize’, 2 0 ); text(M1( 1 ),M1( 2 ) +0.3,M1( 3 ), ’M1’, ’FontSize’, 2 0 ); text(M2( 1 ),M2( 2 ) +0.3,M2( 3 ), ’M2’, ’FontSize’, 2 0 );
(рис 6.12) Иллюстрация к примеру 6.15 (векторы на плоскости)
(рис 6.13) Иллюстрация примеру 6.15 (векторы в пространстве)
(рис 6.14) Плоскость, проходящая через три точки
Плоскость представлена уравнением:
$$\left\arrowvert\begin{matrix}x-1y-2z-3\\1-1-1\\21-2\end{matrix}\right\arrowvert =0\Rightarrow x+z-4=0.$$Графическое изображение плоскости показано на рис. 6.14. Текст программы в листинге 6.16.
clf; cla; set ( gcf, ’Position’, [ 20, 20, 400, 400] ); axis ( [ 0, 10, 0, 10, 0, 10 ] ) A=1;B=0;C=1;D=-4;N=[A, B,C ]; % Параметры плоскости % Параметры уравнения плоскости, преобразованного % к функции двух переменных b0= - D/C; b1= - A/C; b2= - B/C; % Построение плоскости xk=3;yk=3;X= 0 : 0.5 : xk;Y= 0 : 0.5 : yk; [ x, y]= meshgrid(X,Y); z=b0+b1*x+b2 * y; surf ( x, y, z ), colormap gray grid on; xlabel ( ’x’, ’FontSize’, 20 ); ylabel ( ’y’, ’FontSize’, 20 ); zlabel ( ’z’, ’FontSize’, 20 ); set ( gca, ’FontSize’, 12 ); set ( gca, ’box’, ’on’ ); % Построение направляющего вектора line ( [ xk, 0 ], [ 0, 0 ], [ b0, b0_yk ], ’LineWidth’, 5, ’Color’, ’k’ ); line ( [ xk, xk ], [ 0, 0 ], [ b0, b0 ], ’LineWidth’, 5, ’Color’, ’k’, ’marker’, ’v’, ’markersize’, 16 ); text (0+0.3,0+0.3, b0-yk, ’N’, ’FontSize’, 20 ); % Исходные данные M0= [ 1, 2, 3 ];M1= [ 2, 1, 2 ];M2= [ 3, 3, 1 ]; % Нанесение точек на график line ( [M1( 1 ),M1( 1 ) ], [ M1( 2 ),M1( 2 ) ], [ M1( 3 ),M1( 3 ) ], ’LineWidth’, 5, ’ Color’, ’k’, ’marker’, ’o’, ’markersize’, 10 ); line ( [M2( 1 ),M2( 1 ) ], [ M2( 2 ),M2( 2 ) ], [ M2( 3 ),M2( 3 ) ], ’LineWidth’, 5, ’ Color’, ’k’, ’marker’, ’o’, ’markersize’, 10 ); line ( [M0( 1 ),M0( 1 ) ], [ M0( 2 ),M0( 2 ) ], [ M0( 3 ),M0( 3 ) ], ’LineWidth’, 5, ’ Color’, ’k’, ’marker’, ’o’, ’markersize’, 10 ); % Подписи text (M0( 1 ) -0.3,M0( 2 ) -0.3,M0( 3 ), ’M0’, ’FontSize’, 20 ); text (M1( 1 ) -0.3,M1( 2 ) -0.3,M1( 3 ), ’M1’, ’FontSize’, 20 ); text (M2( 1 ) -0.3,M2( 2 ) -0.3,M2( 3 ), ’M2’, ’FontSize’, 20 ); % Заголовок title ( ’x+z-4=0’, ’FontSize’, 20 )
Если плоскость $$Ax + By + Cz + D = 0$$ не параллельна оси OX $$(A\neq 0)$$, то она отсекает на этой оси отрезок $$a=-{\frac{D}{A}}$$. Аналогично отрезки на осях OY, OZ будут $$b=-{\frac{D}{B}},(B\neq 0)$$ и $$\text{с}=-{\frac{D}{C}},(C\neq 0)$$. Таким образом, плоскость отсекающую на осях отрезки $$a, b$$ и $$c$$ можно представить уравнением
$$\frac{x}{a}+\frac{y}{b}+\frac{z}{c}=1,$$которое называется уравнением плоскости в отрезках.
Пример 6.16. Написать уравнение плоскости $$3x - 6y +2z - 12 = 0$$ в отрезках и построить эту плоскость.
Найдём длины отрезков: $$a=-{\frac{D}{A}}=-{\frac{-12}{3}}=4$, $b=-{\frac{D}{B}}=-{\frac{-12}{-6}}=-2$, $\text{с}=-{\frac{D}{C}}=-{\frac{-12}{3}}=6$$.
Запишем уравнение плоскости в отрезках:
$$\frac{x}{4}+\frac{y}{-2}+\frac{z}{6}=1.$$Решение примера показано на рис. 6.15 и в листинге 6.17.
clf; cla; a =4;b=_2;c =6; set( gcf, ’Position’, [ 50, 50, 400, 400 ] ); axis ( [ 0, a, 0, b, 0, c ] ); X= 0 : 0.2 : a;Y=b : 0.2 : 0; [ x y]= meshgrid(X,Y); z=c-c /a * x-c /b * y; hfig=surf ( x, y, z ); set( hfig, ’FaceColor’, ’none’, ’EdgeColor’, ’k’ ) % Изображение векторов a, b и c line( [ 0, a ], [ 0, 0 ], [ 0, 0 ], ’LineWidth’, 5, ’Color’, ’k’ ); line( [ 0, 0 ], [ 0, b ], [ 0, 0 ], ’LineWidth’, 5, ’Color’, ’k’ ); line( [ 0, 0 ], [ 0, 0 ], [ 0, c ], ’LineWidth’, 5, ’Color’, ’k’ ); % Подписи text( a / 2, 0, 1, ’a’, ’FontSize’, 20 ); text( 0, b / 2, 1, ’b’, ’FontSize’, 20 ); text( 0.2, 0, c /2, ’c’, ’FontSize’, 20 ); % Заголовок title( ’a=4, b=-2, c=6’, ’FontSize’, 14 ) xlabel( ’x’ ); ylabel ( ’y’ ); zlabel ( ’z’ ); set( gca, ’Position’, [ .1, .1, .8, .8 ] ); set( gca, ’View’, [ 25 22 ] )
(рис 6.15) Плоскость, заданная отрезками
Рассмотрим особые случаи положения плоскости относительно системы координат:
Пример 6.17. Построить плоскости $$x + y - 1 = 0, x - z + 1 = 0, y + z + 2 = 0, x - y + 2 = 0, 2x + 3 = 0, 3y - 2 = 0$$.
Ход решения примера описан в листинге 6.18. Графическое решение показано на рис. 6.16.
function p=plos1 (A, B, C,D) M=[A, B,C ]; % Параметры плоскости d = [ 0.1, 0.1, 0.1 ]; if A==0 M( 1 ) =1; end; if B==0 M( 2 ) =1; end; if C==0 M( 3 ) =1; end; if A<0 d ( 1 ) = -0.1; end; if B<0 d ( 2 ) = -0.1; end; if C<0 d ( 3 ) = -0.1; end; X=0:d ( 1 ) :M( 1 ); Y=0:d ( 2 ) :M( 2 ); Z=0:d ( 3 ) :M( 3 ); % Построение плоскости if C!=0 % Плоскость не параллельна OZ % Уравнение плоскости преобразовано к функции двух переменных z(x,y) [ x, y]= meshgrid(X,Y); b0= - D/C; b1= - A/C; b2= - B/C; z=b0+b1 _ x+b2 _ y; f1=surf ( x, y, z ); colormap gray else if B!=0 % Плоскость не параллельна OY % Уравнение плоскости преобразовано к функции двух переменных y(x,z) [ x, z ]= meshgrid(X, Z); b0= - D/B; b1= - A/B; b2= - C/B; y=b0+b1 * x+b2 * z; f1=surf ( x, y, z ); colormap gray else % Плоскость не параллельна OX % Уравнение плоскости преобразовано к функции двух переменных x(y,z) [ y, z ]= meshgrid(Y, Z); b0= - D/A; b1= - B/A; b2= - C/A; x=b0+b1 * y+b2 * z; f1=surf( x, y, z ); colormap gray end; end; grid on; xlabel ( ’x’ ); ylabel ( ’y’ ); zlabel ( ’z’ ); set( gca, ’xtick’, [ 0 :M( 1 ) ] ); set( gca, ’ytick’, [ 0 :M( 2 ) ] ); set( gca, ’ztick’, [ 0 :M( 3 ) ] ); set( gca, ’box’, ’on’ ); p=f1; end; % конец функции % Изображение плоскостей заданных в примере 6.17 clf; cla; subplot ( 3, 2, 1 ); A1=1;B1=1;C1=0;D1=-1; % Плоскость x+y-1=0 plos1 (A1, B1, C1, D1); title ( ’x+y-1=0, (C=0)’ ); subplot ( 3, 2, 2 ); A2=1;B2=0;C2=_1;D2=1; % Плоскость x-z+1=0 plos1 (A2, B2, C2, D2); title ( ’x-z+1=0, (B=0)’ ); subplot ( 3, 2, 3 ); A3=0;B3=1;C3=1;D3=2; % Плоскость y+z+2=0 plos1 (A3, B3, C3, D3); title ( ’y+z+2=0, (A=0)’ ); set ( gca, ’View’, [ 1 3 0 3 0 ] ); subplot ( 3, 2, 4 ); A4=1;B4=-1;C4=1;D4=0; % Плоскость x-y+z-2=0 plos1 (A4, B4, C4, D4); set ( gca, ’View’, [ 4 0 3 0 ] ); title ( ’x-y+z=0,D=0’ ); subplot ( 3, 2, 5 ); A5=2;B5=0;C5=0;D5=3; % Плоскость 2x+3=0 plos1 (A5, B5, C5, D5); set ( gca, ’View’, [ 4 0 3 0 ] ); title ( ’2x+3=0, (B=0,C=0)’ ) subplot ( 3, 2, 6 ); A6=0;B6=3;C6=0;D6=_2; % Плоскость 3y-2=0 plos1 (A6, B6, C6, D6); set ( gca, ’View’, [ 4 0 3 0 ] ); title ( ’3y-2=0,(A=0,C=0)’ );
Расстояние от точки $$M_1(x_1, y_1, z-1)$$ до плоскости $$Ax + By + Cz + D = 0$$ равно абсолютному значению величины
$$d=\frac{|Ax_1+By_2+Cz_3+D|}{\sqrt{A^{2}+B^{2}+C^{2}}}.$$Пример 6.18. Найти расстояние от точки M1 (3, 9, 1) до плоскости $$x - 2y + 2z + 3 = 0$$.
Решение показано в листинге 6.19.
% Исходные данные A=1;B=-2;C=2;D=-3;M= [ 3, 9, 1 ];N=[A;B;C ]; % Расстояние от точки М(3,9,1) до плоскости x-2y+2z-3=0 d=abs (M *N+D) /norm(N) d = 5.3333
(рис 6.16) Особые случаи положения плоскости относительно системы координат
Две плоскости $$A_1x+B_1y+C_1z+D_1=0$ и $A_2x+B_2y+C_2z+D_2=0$$ образуют четыре двугранных угла равных попарно. Один из них всегда равен углу между нормальными векторами $$\vec{N}_{1}\{A_{1,}B_{1,}C_{1}\}$$. Вычисляют любой из двугранных углов по формуле
$$\cos (\phi )=\pm{\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}}}},$$причём, выбирая "+" получаем $$\cos (\angle \vec{N}_{1}\vec{N}_{2})$$, выбирая "–" получаем $$\cos (180-\angle \vec{N}_{1}\vec{N}_{2})$$.
Пример 6.19. Найти угол между плоскостями $$x-y+\sqrt{2}z+2=0$$ и $$x+y+\sqrt{2}z-3=0$$.
Решение показано в листинге 6.20.
% Исходные данные N1=[1, -1, sqrt( 2 ) ]; N2=[1,1, sqrt( 2 ) ]; % Угол между плоскостями fi =acos( dot (N1, N2) /norm(N1) /norm(N2) ); fi_1= round( f i * 180/ pi ) fi_2=180-fi_1 % Решение fi_1 = 60 fi_2 = 120
Два уравнения $$A_1x+B_1y+C_1z+D_1=0$$ и $$A_2x+B_2y+C_2z+D_2=0$$ представляют прямую линию, если коэффициенты $$A_1, B_1, C_1$$ не пропорциональны коэффициентам $$A_2, B_2, C_2$$ (то есть плоскости не параллельны). Если коэффициенты $$A_1, B_1, C_1$$ пропорциональны коэффициентам $$A_2, B_2, C_2$$, но свободные члены не подчинены той же пропорции $$\frac{A_2}{A_1}=\frac{B_2}{B_1}=\frac{C_2}{C_1}\neq \frac{D_2}{D_1}$$, то заданные уравнения не представляют никакого геометрического образа. Если все четыре величины пропорциональны $$\frac{A_2}{A_1}=\frac{B_2}{B_1}=\frac{C_2}{C_1}=\frac{D_2}{D_1}$$, то заданные уравнения представляют одну и ту же плоскость.
Пример 6.20. Построить прямые линии, заданные уравнениями:
a) $$2x - y = 0 и x + y - 1 = 0$$;
b) $$x - y + z - 1 = 0 и 2x - 2y + 2z - 2 = 0$$;
c) $$2x - 7y + 12z - 4 = 0 и 4x - 14y + 24z - 12 = 0$$.
Решение показано в листинге 6.21. Для построения плоскости применялась функция $$plos1(A, B, C, D)$$, описанная в примере 6.17.
function flag=l i n e _ (N1, N2) if N1 ( 1 )==0 k1 =0; else k1=N2 ( 1 ) /N1 ( 1 ); end; if N1 ( 2 )==0 k2 =0; else k2=N2 ( 2 ) /N1 ( 2 ); end; if N1 ( 3 )==0 k3 =0; else k3=N2 ( 3 ) /N1 ( 3 ); end; if N1 ( 4 )==0 k4 =0; else k4=N2 ( 4 ) /N1 ( 4 ); end; if ( k1 ! = k2 ) | ( k2 != k3 ) flag =0 clf; cla; plos1 (N1 ( 1 ),N1 ( 2 ),N1 ( 3 ),N1 ( 4 ) ); hold on plos1 (N2 ( 1 ),N2 ( 2 ),N2 ( 3 ),N2 ( 4 ) ); elseif ( k1 == k2 ) ( k2 == k3 ) ( k3 == k4 ) flag =1; clf; cla; plos1 (N1 ( 1 ),N1 ( 2 ),N1 ( 3 ),N1 ( 4 ) ); elseif ( k1 == k2 ) ( k2 == k3 ) ( k3!= k4 ) flag =2; disp ( ’Геометрическая фигура не определена!’ ) end; end; % Случай a) A1=2;B1=-1;C1=0;D1=0;A2=1;B2=1;C2=0;D2=-1; n1=[A1, B1, C1, D1 ]; n2=[A2, B2, C2, D2 ]; line _ ( n1, n2 ) title ( ’2x-y=0, x+y-1=0’ ); set ( gca, ’View’, [ 110 30 ] ); % Случай b) A1=1;B1=_1;C1=1;D1=_1;A2=2;B2=_2;C2=2;D2=_2; n1=[A1, B1, C1, D1 ]; n2=[A2, B2, C2, D2 ]; line _ ( n1, n2 ) title ( ’x-y+z-1=0, 2x-2y+2z-2=0’ ); set ( gca, ’View’, [ 60 30 ] ); % Случай c) A1=2;B1=-7;C1=12;D1=-4;A2=4;B2=-14;C2=24;D2=-12; n1=[A1, B1, C1, D1 ]; n2=[A2, B2, C2, D2 ]; line _ ( n1, n2 ) % Результат работы в случае с) Геометрическая фигура не определена!
Всякий вектор $$\vec{a}\{l,m,n\}$$, лежащий на прямой (или параллельный ей), называется направляющим вектором этой прямой. Координаты $$\{l, m, n\}$$ называются направляющими коэффициентами прямой. За направляющий вектор прямой $$A_{1}x+B_{1}y+C_{1}z+D_{1}=0, A_{2}x+B_{2}y+C_{2}z+D_{2}=0$$ можно принять векторное произведение $$\vec{N}_{1}\times \vec{N}_{2}$$, где $$\vec{N}_{1}=\{A_{1,}B_{1,}C_{1}\},\vec{N}_{2}=\{A_{2,}B_{2,}C_{2}\}$$ — нормальные векторы плоскостей, образующих прямую.
Пример 6.21. Найти направляющие коэффициенты прямой $$2x - 2y - z + 8 = 0 и x + 2y - 2z + 1 = 0$$ (листинг 6.24).
N1=[2, -2, -1];N2= [ 1, 2, -2 ]; % Расчёт координат векторного произведения M=[N1; N2 ]; M1=M( 1 : 2, 2 : 3 );M2=[M( :, 1 ),M( :, 3 ) ]; M3=M( 1 : 2, 1 : 2 ); a ( 1 )=det (M1); a ( 2 )= _det (M2); a ( 3 ) =( det (M3) ); a % Векторное произведение a = 6 3 6
(рис 6.17) Геометрическая интерпретация примера 6.20, случай a)
(рис 6.18) Геометрическая интерпретация примера 6.20, случай b)
Прямая $$L$$, проходящая через точку $$M_0(x_0,y_0,z_0)$$ и имеющая направляющий вектор $$\vec{a}\{l,m,n\}$$ представляется уравнениями $$\frac{x-x_{0}}{l}=\frac{y-y_{0}}{m}=\frac{z-z_{0}}{n}$$. Эти уравнения выражают коллинеарность векторов $$\overrightarrow{{M_{0}M_{1}}}\{x-x_{0,}y-y_{0,}z-z_{0}\},\vec{a}\{l,m,n\}$$ и называются каноническими уравнениями прямой.
Уравнения $$x = x_0 + lt, y = y_0 + mt, z = z_0 + nt$$ называют параметрическими уравнениями прямой. Здесь величина $$t$$ является параметром и принимает различные значения.
Пример 6.22. Записать параметрическое уравнение прямой, проходящей через две точки $$A(5, -3, 2)$$ и $$B(3, 1, -2)$$.
Если в качестве направляющего вектора выбрать вектор $$\overrightarrow{AB}=\{3-5,1-(-3),-2-2\}=\{-2,4,-4\}$$, то каноническое уравнение будет иметь вид $$\frac{x-5}{-2}=\frac{y+3}{4}=\frac{z-2}{-4}$$, следовательно параметрическое уравнение запишем так $$x = 5 + 2t, y = -3 + 4t, z = 2 - 4t$$.
Команды, которые применялись для графического решения примера (рис. 6.19) показаны в листинге 6.23.
clf; cla; set( gcf, ’Position’, [ 20, 20, 400, 400 ] ); set( gca, ’Position’, [ . 1, . 1, . 8, . 8 ] ); xlabel( ’x’ ); ylabel ( ’y’ ); zlabel ( ’z’ ); axis( [ 3, 5, - 3, 2, -2, 3 ] ); grid on; % Исходные данные A= [ 5, - 3, 2 ];B= [ 3, 1, - 2 ]; t = 0 : 0.1 : 1; x=5-2* t; y= -3+4* t; z=2-4* t; % Изображение прямой line( x, y, z, ’LineWidth’, 5, ’Color’, ’k’ ); % Изображение точек line( [A( 1 ),A( 1 ) ], [ A( 2 ),A( 2 ) ], [ A( 3 ),A( 3 ) ], ’LineWidth’, 5, ’Color’ , ’k’, ’marker’, ’o’, ’markersize’, 1 0 ); line ( [ B( 1 ),B( 1 ) ], [ B( 2 ),B( 2 ) ], [ B( 3 ),B( 3 ) ], ’LineWidth’, 5, ’Color’ , ’k’, ’marker’, ’o’, ’markersize’, 1 0 ); % Подписи text(A( 1 ),A( 2 ) +0.3,A( 3 ) +0.5, ’A’, ’FontSize’, 20 ); text(B( 1 ),B( 2 ) +0.3,B( 3 ) +0.3, ’B’, ’FontSize’, 20 ); set( gca, ’View’, [ 120 50 ] );
(рис 6.19) Прямая, проходящая через две точки
Если известны направляющие векторы двух прямых $$\vec{a}\{l,m,n\}$$ и $$\vec{b}\{l',m',n'\}$$, то угол между этими прямыми можно вычислить по формуле
$$\cos (\phi )=\pm {\frac{ll'+mm'+nn'}{\sqrt{l^{2}+m^{2}+n^{2}}\sqrt{l'^{2}+m'^{2}+'^{2}}}}.$$Пример 6.23. Найти угол между прямыми $$x = t, y = 2t, z = 3t$$ и $$x = -1 + 2t, y = 1 + t, z = -1 + 4t$$ (истинг 6.24л, рис. 6.20).
a = [ 1, 2, 3 ]; b = [ 2, 1, 4 ]; % Исходные данные fi =acos ( dot ( a, b ) /norm( a ) /norm( b ) ); fi_1= round ( f i _ 180/ pi ) clf; cla; set( gcf, ’Position’, [ 20, 20, 400, 400 ] ); set( gca, ’Position’, [ .1, .1, .8, .8 ] ); set( gca, ’box’, ’off’ ); xlabel( ’x’ ); ylabel ( ’y’ ); zlabel ( ’z’ ); axis( [ -1, 1, 0, 2, -1, 4 ] ); grid on; t = 0 : 0.1 : 1; x=-1+2* t; y=1+t; z= -1+4* t; % Изображение прямой line ( x, y, z, ’LineWidth’, 5, ’Color’, ’k’ ); % Подписи text( -0.8,1, -1, ’b’, ’FontSize’, 20 ); x=t; y=2* t; z=3* t; % Изображение прямой line( x, y, z, ’LineWidth’, 5, ’Color’, ’k’ ); % Подписи text( 0.2, 0, 0, ’a’, ’FontSize’, 20 ); set( gca, ’View’, [ 30 30 ] ) % Результат fi_1 = 21
(рис 6.20) Угол между прямыми
Прямая $$x = x_0 + lt, y = y_0 + mt, z = z_0 + nt$$ и плоскость$$ Ax + By + Cz + D = 0$$ могут иметь одну общую точку, могут не иметь общих точек (прямая параллельна плоскости) и иметь бесконечное множество общих точек (прямая лежит на плоскости).
Общую точку (если такая существует) плоскости и прямой можно вычислить, если подставить уравнение прямой в уравнение плоскости и найти значение параметра $$t$$.
Пример 6.24. Найти точку пересечения прямой $$x = -5 + 3t, y = 3 - t, z = -3 + 2t$$ с плоскостью $$2x + 3y + 3z - 8 = 0$$.
Выполним расчёты в технике символьных вычислений (листинг 6.25).
symbols % Определение символьных переменных x = sym( "x" ); y = sym( "y" ); z = sym( "z" ); t = sym( "t" ); % Параметрическое уравнение прямой x = -5+3*t; y = 3-t; z = -3+2*t; % Уравнение плоскости f = 2 * x+3*y+3*z -8 % Вычисление значения параметра t t = symfsolve( f, 0 ) % Определение точки пересечения прямой и плоскости x = -5+3*t y = 3-t z = -3+2*t % Результаты вычислений % Уравнение плоскости, выраженное через параметр t f = -18.0+(9.0) * t % Значение параметра t t = 2.0000 % Точка пересечения прямой и плоскости x = 1.00000 y = 1.00000 z = 1.00000
В геометрии вектором называется всякий направленный отрезок. Учение о действиях над векторами называется векторной алгеброй.
Вектор, началом которого служит точка А, а концом точка В, обозначается $$\overrightarrow{AB}$$ или $$\vec{a}$$. Если начало и конец вектора совпадают, то отрезок превращается в точку и теряет направление, такой отрезок называют нуль-вектором.
Если вектор задан точками $$A(x_1, y_1)$$ и $$B(x_2, y_2)$$, то его координаты: $$\overrightarrow{AB}=\{(x_2-x_1), (y_2-y_1)\}=\{X,Y\}$$. Длина вектора называется также его модулем, обозначается $$|\overrightarrow{AB}|$$ или $$|\vec{a}|$$ и вычисляется по формуле:
$$|\vec{a}|=\sqrt{(x_2-x_1)^2+(y_2-y_1)^2}=\sqrt{X^2+Y^2}$$Формулы
$$M_x=\frac{x_1+x_2}{2},M_y=\frac{y_1+y_2}{2}$$служат для вычисления координат середины отрезка $$\overrightarrow{AB}$$.
Разделить отрезок $$\overrightarrow{AB}$$ в заданном отношении λ можно так: $$L_{x}=\frac{x_{1}+\lambda x_{2}}{1+\lambda},L_{y}=\frac{y_{1}+\lambda y_{2}}{1+\lambda }$$, здесь $$L_x$$ и $$L_y$$ — координаты точки L, делящей отрезок в отношении $$AL:LB=l_{1}:l_{2}=\lambda$$.
Напомним, что векторы в Octave задаются путём поэлементного ввода:
>>> a =[1 0 3] % Вектор-строка a = 1 0 3 >>> b = [0; 1; 4] % Вектор-столбец b = 0 1 4
Пример 6.1. Построить вектор $$|\vec{a}| = \{5, 7\}$$.
Решение примера показано на рис. 6.1 . Листинг 6.1 содержит команды Octave, с помощью которых был выполнен рисунок.
clear all; clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector’) set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0: 10]); set(gca, ’ytick’, [0: 10]); grid on; xlabel(’x’); ylabel(’y’); a =[5 7]; L1=line([0, a (1)], [0, a(2)]); set(L1, ’LineWidth’, 3, ’Color’, ’k’); L1_=line([a(1), a(1)], [a(2), a(2)]); set(L1_, ’LineWidth’, 5, ’Color’, ’k’); set(L1_, ’marker’, ’<’, ’markersize’, 16);
Пример 6.2. Построить векторы, заданные координатами начала и конца:
$$\begin{array}{ccc} \vec{a}=\{(2,3),(4,6)\}, \vec{b}=\{(9,7),(6,5)\}, \vec{c}=\{(1,8),(4,8)\},\\ \vec{d}=\{(6,7),(6,9)\}, \vec{k}=\{(8,4),(8,1)\}, \vec{p}=\{(7,3),(5,3)\}. \end{array}$$Решение примера показано в листинге 6.2 и на рис. 6.2. Обратите внимание, что для изображения вектора была создана специальная функция $$vector(A, B)$$. Эта функция изображает направленный отрезок $$|\overrightarrow{AB}|$$ в декартовой системе координат и возвращает координаты его середины. В данном случае координаты середины отрезка нужны для нанесения соответствующей надписи, обозначающей вектор на рисунке.
(рис 6.1) Вектор на плоскости
clear all; % Функция рисует направленный отрезок АВ, в качестве результата выдаёт % координаты середины отрезка АВ. function [M]= vector(A,B) x1=A(1); x2=B(1); y1=A(2); y2=B(2); alf =30*pi/180;% Угол в вершине стрелки в радианах L=15; % Деление отрезка в заданном отношении xm=(x1+L*x2)/(1+L); ym=(y1+L*y2)/(1+L); k1=(y2-y1)/( x2-x1); % Угол наклона прямой АВ if (k1==Inf ) | (k1==-inf) % Отрезок перпендикулярен оси Ох % Координаты основания треугольника, образующего стрелку x4=xm-0.2; y4=ym; x3=xm+0.2; y3=ym; elseif k1==0 % Отрезок перпендикулярен оси Оу x4=xm; y4=ym-0.2; x3=xm; y3=ym+0.2; else % Уравнение прямой АВ k1=(y2-y1)/(x2-x1); m1=y1-x1*(y2-y1)/(x2-x1); % Уравнение прямой перпендикулярной АВ k3=-1/k1; m3=1/k1*xm+ym; % Уравнение прямой, проходящей через точку В под углом alf к прямой АВ k2=(-k1*tan(alf))/(tan(alf)*k1-1); m2=y2-k2*x2; % Уравнение прямой, проходящей через точку В под углом -alf к прямой АВ k4=(-k1*tan(-alf))/(tan(-alf)*k1-1); m4=y2-k4*x2; % Координаты основания треугольника, образующего стрелку x4=(m3-m2)/(k2-k3); y4=k2*x4+m2; x3=(m3-m4)/(k4-k3); y3=k3*x3+m3; end; % Изображение прямой АВ line([A(1),B(1)], [A(2), B(2)], ’LineWidth’, 3, ’Color’, ’k’); % Изображение стрелки в точке В patch([x2, x3, x4], [y2, y3, y4], ’k’); % Координаты середины отрезка АВ M(1) =(x1+x2)/2; M(2) =(y1+y2)/2; end; clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’); set(gcf, ’name’, ’Vector’); set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0: 10]); set(gca, ’ytick’, [0 : 10]); grid on; xlabel(’x’); ylabel(’y’); ma=vector([2, 3], [4, 6]); % Построение вектора a T=text(ma(1)+0.3,ma(2)-0.3, ’a’); set (T, ’FontSize’, 20) mb=vector([9, 7], [6, 5]); % Построение вектора b T=text(mb(1)+0.3,mb(2)-0.3, ’b’); set(T, ’FontSize’, 20) mc=vector([1, 8], [4, 8]); % Построение вектора c T=text(mc(1) +0.3,mc(2)-0.3, ’c’); set(T, ’FontSize’, 20) md=vector([6, 7], [6, 9]); % Построение вектора d T=text(md(1)+0.3,md(2)-0.3, ’d’); set(T, ’FontSize’, 20) mk=vector([8, 4], [8, 1]); % Построение вектора k T=text(mk(1)+0.3,mk(2)-0.3, ’k’); set (T, ’FontSize’, 20) mp=vector([7, 3], [5, 3]); % Построение вектора p T=text(mp(1) +0.3,mp(2)-0.3, ’p’); set(T, ’FontSize’, 20)
(рис 6.2) Геометрическое решение примера 6.2
Два ненулевых вектора $$\vec{a}$$ и $$\vec{b}$$ равны, если они равнонаправлены и имеют один и тот же модуль. Все нулевые векторы равны. Во всех остальных случаях векторы не равны. Два вектора имеющие равные модули и противоположные направления, называются противоположными . Векторы лежащие на параллельных прямых называются коллинеарными.
Пример 6.3. Сравнить векторы $$\overrightarrow{AB}$$ и $$\overrightarrow{CD}$$, $$\overrightarrow{ON}$$, $$\overrightarrow{OM}$$ и $$\overrightarrow{KL}$$, $$\overrightarrow{PR}$$ и $$\overrightarrow{UV}$$ заданные координатами начала и конца: $$A(1, 2), B(3, 5), C(3, 2), D(5, 5), O(7, 9), M(6, 6), N(8, 6), K(4, 9), L(3, 6), P(9, 2), R(6, 2), U(6, 3), V(9, 3)$$.
Текст файла-сценария представлен в листинге 6.3. При решении примера была создана функция $$dlina(X, Y)$$, которая вычисляет длину отрезка XY, заданного координатами точек $$X(x_1, x_2)$$ и $$Y(y_1, y_2)$$. Для изображения векторов использовалась функция $$vector(A, B)$$, описанная в примере 6.2.
Решение примера показано в конце листинга 6.3 и на рис. 6.3 . По полученным числовым результатам и геометрической интерпретации примера можно сделать вывод, что векторы $$\overrightarrow{AB}$$ и $$\overrightarrow{CD}$$ равны. Векторы $$\overrightarrow{ON}$$ и $$\overrightarrow{OM}$$ не равны, хотя у них и одинаковые длины, но направления различны. Векторы $$\overrightarrow{ON}$$ и $$\overrightarrow{KL}$$ неравны по той же причине, а векторы $$\overrightarrow{OM}$$ и $$\overrightarrow{KL}$$ равны. Векторы $$\overrightarrow{PR}$$ и $$\overrightarrow{UV}$$ — противоположные, так как имеют одинаковый модуль и противоположные направления.
function d=dlina(X,Y) % Функция возвращает длину отрезка XY d=sqrt((Y(1)-X(1))^2+(Y(2)-X(2))^2); end; clf; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector’) cla; set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0 : 10]); set(gca, ’ytick’, [0 : 10]); grid on; xlabel(’x’); ylabel(’y’); % Исходные данные A= [1, 2];B= [3, 5];C= [3, 2];D= [5, 5];O= [7, 9];M= [6, 6];N= [8, 6]; K= [4, 9]; L= [3, 6];P= [9, 2];R= [6, 2];U= [6, 3];V= [9, 3]; % Длины отрезков dAB=dlina(A,B) dCD=dlina(C,D) dON=dlina(O,N) dOM=dlina(O,M) dKL=dlina(K,L) dPR=dlina(P,R) dUV=dlina(U,V) % Построение вектора AB vector(A,B); A_=text(A(1)+0.3,A(2)-0.3, ’A’); set(A_, ’FontSize’, 20) B_=text(B(1)+0.3,B(2)-0.3, ’B’); set(B_, ’FontSize’, 20) % Построение вектора CD vector(C,D); C_=text(C(1)+0.3,C(2)-0.3, ’C’); set(C_, ’FontSize’, 20) D_=text(D(1)+0.3,D(2)-0.3, ’D’); set(D_, ’FontSize’, 20) % Построение вектора OM vector(O,M); O_=text(O(1)+0.3,O(2)-0.3, ’O’); set(O_, ’FontSize’, 20) M_=text(M(1)+0.3,M(2)-0.3, ’M’); set(M_, ’FontSize’, 20) % Построение вектора ON vector(O,N); O_=text(O(1)+0.3,O(2)-0.3, ’O’); set(O_, ’FontSize’, 20) N_=text(N(1)+0.3,N(2)-0.3, ’N’); set(N_, ’FontSize’, 20) % Построение вектора KL vector(K,L); K_=text(K(1)+0.3,K(2)-0.3, ’K’); set(K_, ’FontSize’, 20) L_=text(L(1)+0.3,L(2)-0.3, ’L’); set(L_, ’FontSize’, 20) % Построение вектора PR vector(P,R); P_=text(P(1)+0.3,P(2)-0.3, ’P’); set(P_, ’FontSize’, 20) R_=text(R(1)+0.3,R(2)-0.3, ’R’); set(R_, ’FontSize’, 20) % Построение вектора UV vector(U,V); U_=text(U(1)+0.3,U(2)-0.3, ’U’); set(U_, ’FontSize’, 20) V_=text(V(1)+0.3,V(2)-0.3, ’V’); set(V_, ’FontSize’, 20) % Решение примера 6.3 % Длины отрезков: AB = 3.6056 CD = 3.6056 ON = 3.1623 OM = 3.1623 KL = 3.1623 PR = 3 UV = 3
Пример 6.4. Проверить коллинеарны ли векторы $$\overrightarrow{AB}$$ и $$\overrightarrow{CD}$$,$$\overrightarrow{NM}$$ и $$\overrightarrow{KL}$$, $$\overrightarrow{PR}$$ и $$\overrightarrow{UV}$$. Координаты точек: $$A(4, 2), B(2, 3), C(3, 2), D(7, 0), M(2, 1), N(6, 1), K(1, 2), L(7, 2), P(3, 3), R(5, 3), U(1, 4), V(5, 4)$$.
Текст файла-сценария представлен в листинге 6.4. При решении примера была создана функция $$kollin(a, b)$$, которая определяет коллинеарны ли векторы $$\vec{a}=\{x_{1}, y_{1}\}$$ и $$\vec{b}=\{x_{2}, y_{2}\}$$. Результатом работы функции является коэффициент пропорциональности векторов. Если векторы коллинеарны, то их соответствующие координаты пропорциональны: $$\pm\lambda =\frac{x_{2}}{x_{1}}=\frac{y_{2}}{y_{1}}$$. Знак коэффициента пропорциональности говорит о направлении векторов: "+" — в одну сторону, "_" — в разные. Для изображения векторов использовалась функция $$vector(A, B)$$, описанная в листинге 6.2 к примеру 6.2.
(рис 6.3) Изображение векторов примера 6.3
Решение примера показано в конце листинга 6.4 и на рис. 6.4. По полученным числовым результатам и геометрической интерпретации примера можно сделать вывод, что векторы $$\overrightarrow{AB}$$ и $$\overrightarrow{CD}$$ коллинеарны, но направлены в разные стороны. Векторы $$\overrightarrow{NM}$$ и $$\overrightarrow{KL}$$ не являются коллинеарными. Векторы $$\overrightarrow{PR}$$ и $$\overrightarrow{UV}$$ — коллинеарны и имеют одно направление.
function[lam]= kollin(a, b) if (a(2)==0) (b(2)==0) lam=a(1)/b(1); elseif (a(1)==0) (b(1)==0) lam=a(2)/b(2); elseif a(1)/b(1)==a(2)/b(2) lam=a(1)/b(1); else lam=Inf; end; end; clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector’) set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0 : 10]); set(gca, ’ytick’, [0 : 10]); grid on; xlabel(’x’); ylabel(’y’); A= [3, 3];B= [1, 4];C= [2, 2];D= [6, 0];M= [2, 6];N= [6, 6]; K= [1, 7]; L= [7, 8];P= [7, 3];R= [9, 3];U= [5, 4];V= [9, 4]; AB_CD=kollin(B-A, D-C) MN_KL=kollin(N-M, L-K) PR_UV=kollin(R-P, V-U) vector(A,B);% Построение вектора AB A_=text(A(1),A(2)+0.3, ’A’); set(A_, ’FontSize’, 20) B_=text(B(1),B(2)+0.3, ’B’); set(B_, ’FontSize’, 20) vector(C,D); % Построение вектора CD C_=text(C(1),C(2)+0.3, ’C’); set(C_, ’FontSize’, 20) D_=text(D(1),D(2)+0.3, ’D’); set(D_, ’FontSize’, 20) vector(N,M); % Построение вектора NM N_=text(N(1),N(2)+0.3, ’N’); set(N_, ’FontSize’, 20) M_=text(M(1),M(2)+0.3, ’M’); set(M_, ’FontSize’, 20) vector(K, L); % Построение вектора KL K_=text(K(1)+0.3,K(2)-0.3, ’K’); set(K_, ’FontSize’, 20) L_=text(L(1)+0.3,L(2)-0.3, ’L’); set(L_, ’FontSize’, 20) vector(P,R); % Построение вектора PR P_=text(P(1)+0.3,P(2)-0.3, ’P’); set(P_, ’FontSize’, 20) R_=text(R(1)+0.3,R(2)-0.3, ’R’); set(R_, ’FontSize’, 20) vector(U,V); % Построение вектора UV U_=text(U(1)+0.3,U(2)-0.3, ’U’); set(U_, ’FontSize’, 20) V_=text(V(1)+0.3,V(2)-0.3, ’V’); set(V_, ’FontSize’, 20) % Результаты — коэффициенты пропорциональности векторов AB_CD = -0.50000 MN_KL = Inf PR_UV = 0.50000
Геометрической проекций вектора $$\overrightarrow{AB}$$ на ось OX называется вектор $$\overrightarrow{A^{'}B^{'}}$$, начало которого $$A^{'}$$ есть проекция точки $$A$$ на ось OX, а конец $$B^{'}$$ — проекция точки $$B$$ на ту же ось. Обозначается: $$\overrightarrow{A^{'}B^{'}}=\text{Пр}_{OX}\overrightarrow{AB}$$. Алгебраической проекций вектора $$\overrightarrow{AB}$$ на ось OX называется длина вектора $$\overrightarrow{A^{'}B^{'}}$$, взятая со знаком "+", если направление вектора $$\overrightarrow{AB}$$ совпадает с направлением оси OX, или со знаком "-" в противном случае.
(рис 6.4) Геометрическая интерпретация примера 6.4
Пример 6.5. Найти проекции векторов $$\overrightarrow{AB}$$ и $$\overrightarrow{PR}$$ на ось OX. Координаты точек, задающих векторы: $$A(1, 2), B(3, 5), P (9, 2), R(6, 2)$$.
Текст файла-сценария и значения алгебраических проекций векторов представлены в листинге 6.5. При решении примера была создана функция $$pr\_OX(X)$$, которая вычисляет длину проекции вектора на ось OX. Аргументом функции является массив абсцисс $$X(x_1, x_2)$$ заданного вектора. Для изображения векторов и их проекций использовалась функция $$vector(A, B)$$, описанная в примере 6.2. Геометрические проекции показаны на рис. 6.5.
function pr=pr_OX(X) % Длина проекции вектора на ось ОХ pr=X(2)-X(1); end; clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector’) set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0 : 10]); set(gca, ’ytick’, [0 : 10]); grid on; xlabel(’x’); ylabel(’y’); A= [1, 2];B= [3, 5];P= [9, 2];R= [6, 2]; % Длины проекций prAB=pr_OX([A(1),B(1)]) prPR=pr_OX([P(1),R(1)]) vector(A,B);% Построение вектора AB A_=text(A(1)+0.3,A(2)-0.3, ’A’); set(A_, ’FontSize’, 20) B_=text(B(1)+0.3,B(2)-0.3, ’B’); set(B_, ’FontSize’, 20) % Построение проекции вектора АВ на ось ОХ mAB=vector([A(1), 0], [B(1), 0]); text(mAB(1),mAB(2)+0.5, ’prAB’, ’FontSize’, 18); vector(P,R); % Построение вектора PR P_=text(P(1)+0.3,P(2)-0.3, ’P’); set(P_, ’FontSize’, 20) R_=text(R(1)+0.3,R(2)-0.3, ’R’); set(R_, ’FontSize’, 20) % Построение проекции вектора PR на ось ОХ mPR=vector([P(1), 0], [R(1), 0]); text(mPR(1),mPR(2)+0.3, ’prPR’, ’FontSize’, 18); % Вычисление проекций prAB = 2 prPR = -3
(рис 6.5) Проекции векторов на ось OX
Любые векторы можно привести к общему началу, то есть построить векторы равные данным и имеющие общее начало в некоторой точке О.
Над векторами производят различные действия: сложение, вычитание, умножение.
При сложении\ (вычитании ) векторов их координаты складываются (вычитаются): $$\vec{a}\pm\vec{b}=\{(a_{1}\pm b_{1}),(a_{2}\pm b_{2})\}$$.
При умножении\ (делении ) вектора на число все координаты умножаются (делятся) на это число: $$\lambda \vec{a}=\{\lambda a_{1,}\lambda a_{2}\}$, $\frac{\vec{a}}{\lambda}=\{\frac{a_{1}}{\lambda },\frac{a_{2}}{\lambda }\}$$.
(рис 6.6) Геометрическое представление суммы векторов
Пример 6.6. Найти сумму векторов $$\vec{a}=\{1,4\}$$ и $$\vec{b}=\{5,3\}$$.
Если векторы $$\vec{a}$$ и $$\vec{b}$$ не коллинеарны, то геометрически вектор $$\vec{c}=\vec{a}+\vec{b}$$ является диагональю параллелограмма построенного на векторах $$\vec{a}$$ и $$\vec{b}$$ (правило параллелограмма).
Листинг 6.7 содержит команды Octave, с помощью которых был решён пример и результаты их работы. Функция $$vector(A, B)$$, описана в примере 6.2. Геометрическое решение примера показано на рис. 6.6.
clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector c=a+b’) set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0 : 10]); set(gca, ’ytick’, [0 : 10]); grid on; xlabel(’x’); ylabel(’y’); a = [1, 4]; b = [5, 3]; c =[a(1)+b(1), a(2)+b(2)]% Сумма векторов ma=vector([0, 0], a); % Построение вектора a text (ma(1)+0.3,ma(2)-0.3, ’a’, ’FontSize’, 20); mb=vector([0, 0], b); % Построение вектора b text (mb(1)+0.3,mb(2)-0.3, ’b’, ’FontSize’, 20); mc=vector([0, 0], c); % Построение вектора c=a+b text (mc(1)+0.3,mc(2)-0.3, ’c’, ’FontSize’, 20); line([a(1), c(1)], [a(2), c(2)], ’LineWidth’, 1, ’Color’, ’k’); line([b(1), c(1)], [b(2), c(2)], ’LineWidth’, 1, ’Color’, ’k’); % Результаты работы программы. Координаты вектора c=a+b: c = 67
(рис 6.7) Геометрическое представление действий над векторами
Пример 6.7. Выполнить действия над векторами $$\vec{c}=3\vec{a}-2\vec{b}$$, где $$\vec{a}=\{1,2\}$$ и $$\vec{b}=\{3,1\}$$.
Геометрически вычесть из вектора $$\vec{a}$$ вектор $$\vec{b}$$, значит найти такой вектор $$\vec{x}$$ для которого $$\vec{x}+\vec{b}=\vec{a}$$. Иначе говоря, если на векторах $$\vec{x}$$ и $$\vec{b}$$ построить треугольник, то $$\vec{a}$$ — его третья сторона (правило треугольника).
Листинг 6.7 содержит команды Octave и результаты работы файла-сценария. Функция $$vector(A, B)$$, описана в задаче 6.2. Решение примера показано на рис. 6.7.
clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector c=4a-3b’) set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0 : 10]); set(gca, ’ytick’, [0 : 10]); grid on; xlabel(’x’); ylabel(’y’); a = [1, 2]; b = [3, 1]; c =[4*a(1)-3*b(1),4*a(2)-3*b(2)] % Действия над векторами for i =1:4 % Построение вектора 4a ma=vector([0, 0], i*a); end; text(ma(1)+0.3,ma(2)-0.3, ’4a’, ’FontSize’, 20); for i =1:3 % Построение вектора 3b mb=vector([0, 0], i*b); end; text(mb(1)+0.3,mb(2)-0.3, ’3b’, ’FontSize’, 20); % Построение вектора c=4a-3b mc=vector([3*b(1),3*b(2)], [4*a(1),4*a(2)]); text(mc(1)+0.3,mc(2)+0.3, ’c=4a-3b’, ’FontSize’, 20); % Результаты работы программы — координаты отрезка c=4a-3b c = -55
Пример 6.8. Найти углы образуемые осями координат с вектором $$\vec{a}=\{2,-2,-1\}$$.
Углы, образуемые положительными направлениями осей с вектором ~a можно рассчитать по
Листинг 6.8 содержит команды Octave и результаты работы файла-сценария.
function[U]= ugol(X) % Углы, образуемые осями координат с вектором Х m=sqrt(X(1)^2+X(2)^2+X(3)^2); U=acos(X/m); end; function gr=rad_gr(rad) % Перевод радиан в градусы и минуты gr(1)= round(rad*180/pi); % Градусы gr(2)= round((rad*180/pi-gr(1))*60); % Минуты end; u=ugol([2, -2, -1]) % Вычисление углов в радианах % Углы в градусах и минутах alf=rad_gr(u(1)) bet=rad_gr(u(2)) gam=rad_gr(u(3)) % Результаты работы — углы в радианах u = 0.84107 2.30052 1.91063 % Углы в градусах и минутах alf = 48 11 bet = 132 -11 gam = 109 28
Скалярным произведением вектора $$\vec{a}$$ на вектор $$\vec{b}$$ называется произведение их модулей и косинуса угла между ними: $$\overrightarrow{ab}=|\vec{a}|\cdot |\vec{b}|\cos (\widehat {{a,b}})$$. Если $$\vec{a}=\{a_{1,}a_{2,}a_{3}\}$$ и $$\vec{b}=\{b_{1,}b_{2,}b_{3}\}$$, то $$\overrightarrow{ab}=a_{1}b_{1}+a_{2}b_{2}+a_{3}b_{3}$$.
Пример 6.9. Найти угол между векторами $$\vec{a}=\{-2,1,2\}$$ и $$\vec{b}=\{-2,-2,1\}:\cos (\widehat {{a,b}})=\frac{\overrightarrow{ab}}{|\vec{a}|\cdot |\vec{b}|}$$.
Текст файла-сценария и результат его работы представлены в листинге 6.9
function gr=rad_gr(rad) % Перевод радиан в градусы и минуты gr(1)= round(rad*180/pi); % Градусы gr(2)= round((rad*180/pi_gr(1))*60); % Минуты end; a = [-2, 1, 2]; b=[-2, -2, 1]; da=sqrt(a(1)^2+a(2)^2+a(3)^2); db=sqrt(b(1)^2+b(2)^2+b(3)^2); ab=sum(a. *b); alf=acos(ab/(da*db)) rad_gr(alf) % Результат — угол в радианах alf = 1.1102 % Угол в градусах ans = 64 -23
Пример 6.10. Проверить, являются ли векторы $$\overrightarrow{NM}$$ и $$\overrightarrow{KL}$$, $$\overrightarrow{PR}$$ и $$\overrightarrow{UV}$$ взаимно перпендикулярными. Координаты точек: $$M(2, 1), N(6, 1), K(1, 2), L(7, 2), P (3, 3), R(5, 3), U(1, 4), V(5, 4)$$.
Если $$\vec{a}=\{a_{1,}a_{2}\}$$ и $$\vec{b}=\{b_{1,}b_{2}\}$$, то их скалярное произведение равно нулю: $$\overrightarrow{ab}=a_{1}b_{1}+a_{2}b_{2}=0$$. На рис. 6.8 видно, что векторы $$\overrightarrow{NM}$$ и $$\overrightarrow{KL}$$ перпендикулярны, а $$\overrightarrow{PR}$$ и $$\overrightarrow{UV}$$ нет. Аналитические вычисления подтверждают это (листинг 6.10).
% Вычисление скалярного произведения векторов a и b function[ab]= scal(a, b) ab=a(1)*b(1)+a(2)*b(2); end; clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector’) set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’xtick’, [0 : 10]); set(gca, ’ytick’, [0 : 10]); grid on; xlabel(’x’); ylabel(’y’); M= [2, 6];N= [6, 6];K= [4, 4]; L = [4, 8]; P= [7, 3];R= [9, 3];U= [5, 4];V= [9, 4]; MN_KL=scal(N-M, L-K) PR_UV=scal(R-P, V-U) vector(N,M); % Построение вектора NM N_=text(N(1),N(2)+0.3, ’N’); set(N_, ’FontSize’, 20) M_=text(M(1),M(2)+0.3, ’M’); set(M_, ’FontSize’, 20) vector(K,L); % Построение вектора KL K_=text(K(1)+0.3,K(2)-0.3, ’K’); set(K_, ’FontSize’, 20) L_=text(L(1)+0.3,L(2)-0.3, ’L’); set(L_, ’FontSize’, 20) % Построение вектора PR vector(P,R); % Построение вектора PR P_=text(P(1)+0.3,P(2)-0.3, ’P’); set(P_, ’FontSize’, 20) R_=text(R(1)+0.3,R(2)-0.3, ’R’); set(R_, ’FontSize’, 20) vector(U,V);% Построение вектора UV U_=text(U(1)+0.3,U(2)-0.3, ’U’); set(U_, ’FontSize’, 20) V_=text(V(1)+0.3,V(2)-0.3, ’V’); set(V_, ’FontSize’, 20) % Результат работы программы MN_KL = 0 PR_UV = 8
(рис 6.8) Графическое решение примера 6.10
Векторным произведением вектора $$\vec{a}$$ на не коллинеарный с ним вектор $$\vec{b}$$ называется вектор $$\vec{c}$$, модуль которого численно равен площади параллелограмма построенного на векторах $$\vec{a}$$ и $$\vec{b}$$: $$\vec{a}\times \vec{b}=|\vec{a}|\cdot |\vec{b}|\sin (\widehat {{a,b}})$$. Направление вектора $$\vec{c}$$ перпендикулярно плоскости параллелограмма. Если векторы $$\vec{a}=\{x_{1,}y_{1,}z_{1}\}$$ и $$\vec{b}=\{x_{1,}y_{2,}z_{2}\}$$, то $$\vec{a}\times\vec{b}=\left\{\left|\begin{smallmatrix}y_{1}z_{1}\\y_{2}z_{2}\end{smallmatrix}\right|,\left|\begin{smallmatrix}z_{1}x_{1}\\z_{2}x_{2}\end{smallmatrix}\right|,\left|\begin{smallmatrix}x_{1}y_{1}\\x_{2}y_{2}\end{smallmatrix}\right|\right\}$$.
(рис 6.9) Геометрическая интерпретация векторного произведения
Пример 6.11. Найти векторное произведение векторов $$\vec{a}=\{1,4\}$$ и $$\vec{b}=\{5,3\}$$. Вычислить угол между векторами.
Графическое решение показано на рис. 6.9. Листинг 6.11 содержит текст программы и результаты её работы.
clear all; clf; cla; set(gcf, ’Position’, [20, 20, 400, 400]); set(gcf, ’numbertitle’, ’off’) set(gcf, ’name’, ’Vector’) set(gca, ’Position’, [.1, .1, .8, .8]); set(gca, ’xlim’, [0, 10]); set(gca, ’ylim’, [0, 10]); set(gca, ’zlim’, [0, 10]); set(gca, ’xtick’, [0 : 10]); set(gca, ’ytick’, [0 : 10]); set(gca, ’ztick’, [0 : 10]); set(gca, ’View’, [30 30], ’box’, ’on’); xlabel(’x’); ylabel(’y’); zlabel(’z’); axis([0, 10, 0, 10, 0, 10]); grid on; function D=dlin(x) % Длина вектора D=(x(1)^2+x(2)^2+x(3)^2)^(1/2); end; function gr=rad_gr(rad) % Перевод радиан в градусы и минуты gr(1)= round(rad*180/pi); % Градусы gr(2)= round((rad*180/pi_gr(1))*60); % Минуты end; % Исходные данные x1 =4; y1 =2; z1 =0; x2 =1; y2 =3; z2 =0; a=[x1, y1, z1]; b=[x2, y2, z2]; % Расчёт координат векторного произведения M=[a; b]; M1=M(1:2, 2:3);M2=[M(:, 1),M(:, 3)]; M3=M(1:2, 1:2); c(1)=det(M1); c(2)=-det(M2); c(3)=(det(M3)); % Расчёт угла между векторами a и b da=dlin(a); db=dlin(b); dc=dlin(c); alf=asin(dc/(da*db)); % Изображение векторов a,b,c line([0, a(1)], [0, a(2)], [0, a(3)], ’LineWidth’, 5, ’Color’, ’k’); line([0, b(1)], [0, b(2)], [0, b(3)], ’LineWidth’, 5, ’Color’, ’k’); line([0, c(1)], [0, c(2)], [0, c(3)], ’LineWidth’, 5, ’Color’, ’k’); % Изображение стрелок на векторах line([c(1), c(1)], [c(2), c(2)], [c(3), c(3)], ’LineWidth’, 5, ’Color’ , ’k’, ’marker’, ’^’, ’markersize’, 16); line([b(1), b(1)], [b(2), b(2)], [b(3), b(3)], ’LineWidth’, 5, ’Color’ , ’k’, ’marker’, ’<’, ’markersize’, 10); line([a(1), a(1)], [a(2), a(2)], [a(3), a(3)], ’LineWidth’, 5, ’Color’ , ’k’, ’marker’, ’<’, ’markersize’, 10); % Расчёт координат вершины параллелограмма k1=y1/x1; k2=y2/x2; d(1) =(y1-y2+k1*x2-k2*x1)/(k1-k2); d(2)=k1*d(1)+y2-k1*x2; d(3) =0; % Стороны параллелограмма line([a(1),d(1)],[a(2),d(2)],[a(3),d(3)], ’LineWidth’, 2, ’Color’, ’k’); line([b(1),d(1)],[b(2),d(2)],[b(3),d(3)], ’LineWidth’, 2, ’Color’, ’k’); c % Координаты векторного произведения alfa=rad_gr(alf) % Угол между векторами a и b % Результаты работы программы — координаты векторного произведения c = 0 -0 10 % Угол между векторами alfa = 45 -0
Три вектора называют компланарными, если они, будучи приведены к общему началу, лежат в одной плоскости. Смешанным или векторно-скалярным произведением трёх векторов $$\vec{a}$$,$$\vec{b}$$ и $$\vec{c}$$ называется скалярное произведение вектора $$\vec{a}$$ на векторное произведение $$\vec{b}\times\vec{c}$$, то есть число $$\overrightarrow{abc}=\vec{a}\cdot (\vec{b}\times\vec{c})=(\vec{b}\times \vec{c})\cdot \vec{a}$$. Если векторы $$\vec{a}=\{x_{1,}y_{1,}z_{1}\}$$, $$\vec{b}=\{x_{1,}y_{2,}z_{2}\}$$ и $$\vec{\text{с}}=\{x_{3,}y_{3,}z_{3}\}$$ даны своими координатами, то смешанное произведение вычисляют по формуле:
$$\overrightarrow{abc}= \displaystyle\left\arrowvert{ \begin{array}{ccc} x_{1}y_{1}z_{1}\\ x_{2}y_{2}z_{2}\\ x_{3}y_{3}z_{3} \end{array} }\right\arrowvert.$$Необходимым и достаточным условием компланарности векторов $$\vec{a}$$, $$\vec{b}$$ и $$\vec{c}$$ является равенство нулю их смешанного произведения $$\overrightarrow{abc}=0$$.
Пример 6.12. Проверить компланарность векторов (листинг 6.12):
$$\begin{aligned} \text{а) } \vec{a}=\{-2,-1,-3\}, \vec{b}=\{-1,4,6\} \text{ и } \vec{c}=\{1,5,9\};\\ \text{б) } \vec{a}=\{1,2,3\}, \vec{b}=\{-1,3,4\} \text{ и } \vec{c}=\{2,5,2\}. \end{aligned}$$function d=komp(A, B,C) M=[A;B;C ]; d=det (M); if d==0 disp(’Векторы компланарны’); else disp(’Векторы не компланарны’); end; end; a =[-2, -1, -3];b = [-1, 4, 6]; c = [1, 5, 9]; d1=komp(a, b, c) a = [ 1, 2, 3 ]; b = [ -1, 3, 4 ]; c = [ 2, 5, 2 ]; d2=komp( a, b, c ) % Результат работы программы Векторы компланарны d1 = 0 Векторы не компланарны d2 = -27
Плоскость, проходящая через точку $$M_{0}(x_{0}, y_{0}, z_{0})$$ и перпендикулярная к вектору $$\vec{N}\{A,B,C\}$$ представляется уравнением $$A(x-x_{0})+B(y-y_{0})+C(z-z_{0})=0$$ или $$Ax+By+Cz+D=0$$.
Вектор $$\vec{N}\{A,B,C\}$$ называется нормальным вектором плоскости.
Пример 6.13. Записать уравнение и построить плоскость, проходящую через точку $$M_0 (2, 0, 4)$$ и перпендикулярную вектору $$\vec{N}\{3,0,-3\}$$.
Исходя из условия примера уравнение плоскости имеет вид $$3(x-2)+0(y-1)-3(z-4)=0\Rightarrow 3x-6-3z+12=0\Rightarrow 3x-3z+6=0$$.
Для построения плоскости средствами Octave преобразуем уравнение плоскости к виду функции двух переменных:
$$Ax+By+Cz+D=0\Rightarrow z(x,y)=-{\frac{A}{C}}x-\frac{B}{C}y-\frac{D}{C},\\ z(x,y)=b_{0}+b_{1}x+b_{2}y,b_{0}=-{\frac{A}{C}},b_{1}=\frac{-{B}}{C},b_{2}=\frac{-{D}}{C}.$$
(рис 6.10) Изображение плоскости и её направляющего вектора
Решение примера представлено в листинге 6.13 и на рис. 6.10
clf; cla; set(gcf, ’Position’, [ 20, 20, 400, 400 ] ); axis ( [ 0, 1 0, 0, 1 0, 0, 1 0 ] ) A=3;B=0;C=_3;D=6;N=[A, B,C ]; % Параметры плоскости b0= - D/C; b1= - A/C; b2= - B/C; % Параметры уравнения плоскости, преобразо% ванного к функции двух переменных % Построение плоскости xk=5;yk=5; X= 0 : 0.5 : xk;Y= 0 : 0.5 : yk; [ x, y]= meshgrid(X,Y); z=b0+b1*x+b2 * y; surf( x, y, z ), colormap gray grid on; xlabel ( ’x’, ’FontSize’, 2 0 ); ylabel( ’y’, ’FontSize’, 2 0 ); zlabel( ’z’, ’FontSize’, 2 0 ); set( gca, ’FontSize’, 1 2 ); set ( gca, ’box’, ’on’ ); % Построение направляющего вектора line( [ xk, 0 ], [ 0, 0 ], [ b0, yk+b0 ], ’LineWidth’, 5, ’Color’, ’k’ ); line( [ 0, 0 ], [ 0, 0 ], [ yk+b0, yk+b0 ], ’LineWidth’, 5, ’Color’, ’k’, ’ marker’, ’v’, ’markersize’, 1 6 ); text(0+0.3,0+0.3, yk+b0 _1, ’N’, ’FontSize’, 2 0 ); title( ’3x-3z+6=0’, ’FontSize’, 2 0 ) % Заголовок
Если плоскость проходит через заданную точку $$M_{1}(x_{1,}y_{1,}z_{1})$$ и параллельна плоскости $$Ax + By + Cz + D = 0$$, то её уравнение записывают так $$A(x-x_{1})+B(y-y_{1})+C(z-z_{1})=0$$.
(рис 6.11) Параллельные плоскости
Пример 6.14. Записать уравнение и построить плоскость, проходящую через точку $$M_0 (1, 3, 5)$$ параллельно плоскости $$3x - 3z + 6 = 0$$.
Уравнение плоскости имеет вид: $$3(x-1)-3(z-5)=0\Rightarrow 3x-3-3z+15=0\Rightarrow 3x-3z+12=0$$.
Решение примера показано на рис. 6.11 и в листинге 6.14.
function p=plos(A, B, C,D) % Параметры уравнения плоскости, преобразованного b0= - D/C; b1= - A/C; b2= - B/C; % к функции двух переменных % Построение плоскости xk=5;yk=5; X= 0 : 0.5 : xk;Y= 0 : 0.5 : yk; [ x, y]= meshgrid(X,Y); z=b0+b1 * x+b2 * y; surf( x, y, z ), colormap gray grid on; p=0; end; clf; cla; set( gcf, ’Position’, [ 20, 20, 400, 400 ] ); axis( [ 0, 10, 0, 10, 0, 10 ] ) A1=3;B1=0;C1=_3;D1=6; % Параметры плоскости % Построение плоскостей plos(A1, B1, C1, D1) hold on A2=3;B2=0;C2=_3;D2=12; p=plos(A2, B2, C2, D2) xlabel( ’x’, ’FontSize’, 2 0 ); ylabel( ’y’, ’FontSize’, 2 0 ); zlabel( ’z’, ’FontSize’, 2 0 ); set( gca, ’FontSize’, 1 2 ); set( gca, ’box’, ’on’ ); M= [ 1, 3, 5 ]; % Изображение точки line( [M( 1 ),M( 1 ) ], [M( 2 ),M( 2 ) ], [M( 3 ),M( 3 ) ], ’LineWidth’, 5, ’Color’ , ’k’, ’marker’, ’o’, ’markersize’, 1 6 ); text(M( 1 ) _0.5,M( 2 ) +0.5,M( 3 ) +1, ’M(1,3,5)’, ’FontSize’, 2 0 ); title( ’3x-3z+6=0,3x-3z+12=0’, ’FontSize’, 2 0 )
Если три точки $$M_{0}(x_{0}, y_{0}, z_{0}),M_{1}(x_{1}, y_{1}, z_{1})$$ и $$M_{2}(x_{2}, y_{2}, z_{2})$$ не лежат на одной прямой, то уравнение плоскости, проходящей через них, представляется уравнением:
$$\left\arrowvert\begin{matrix}x-x_{0}y-y_{0}z-z_{0}\\x_{1}-x_{0}y_{1}-y_{0}z_{1}-z_{0}\\x_{2}-x_{0}y_{2}-y_{0}z_{2}-z_{0}\end{matrix}\right\arrowvert=0.$$Пример 6.15. Записать уравнение и построить плоскость, проходящую через точки $$M_0(1, 2, 3), M_1(2, 1, 2)$$ и $$M_2(3, 3, 1)$$.
Заданные точки не лежат на одной прямой, так как векторы $$\overrightarrow{{M_{0}M_{1}}}$$
и $$\overrightarrow{{M_{0}M_{2}}}$$ не коллинеарны. ли. 6.12 и рис. 6.13 иллюстрируют это утверждение. Изображение на рис. 6.12 получено в результате работы программы показанной в листинге 6.15. Рис. 6.13 получен из ррис. 6.12ис путём
clf; cla; set( gcf, ’Position’, [ 20, 20, 400, 400 ] ); set( gca, ’Position’, [ . 1, . 1, . 8, . 8 ] ); set( gca, ’xlim’,[0,3]); set ( gca, ’ylim’,[0,3]); set ( gca, ’zlim’,[0,3]); set( gca, ’xtick’,[0:3]); set ( gca, ’ytick’,[0:3]); set ( gca, ’ztick’,[0:3]); set( gca, ’box’, ’on’ ); xlabel ( ’x’ ); ylabel ( ’y’ ); zlabel ( ’z’ ); axis( [ 0, 3, 0, 3, 0, 3 ] ) grid on; M0= [ 1, 2, 3 ];M1= [ 2, 1, 2 ];M2= [ 3, 3, 1 ]; % Исходные данные % Изображение векторов M0M1 и M0M2 line ([M1(1),M0(1)],[M1(2),M0(2)],[M1(3),M0(3)],’LineWidth’,5,’Color’,’k’); line ([M2(1),M0(1)],[M2(2),M0(2)],[M2(3),M0(3)],’LineWidth’,5,’Color’,’k’); % Изображение стрелок на векторах line ([M1(1),M1(1)],[M1(2),M1(2)],[M1(3),M1(3)], ’LineWidth’, 5, ’Color’, ’k ’, ’marker’, ’>’, ’markersize’, 10 ); line ([M2(1),M2(1)],[M2(2),M2(2)],[M2(3),M2(3)], ’LineWidth’, 5, ’Color’, ’k ’, ’marker’, ’<’, ’markersize’, 10 ); line ([M0(1),M0(1)],[M0(2),M0(2)],[M0(3),M0(3)], ’LineWidth’, 5, ’Color’, ’k ’, ’marker’, ’o’, ’markersize’, 10 ); % Подписи text(M0( 1 ),M0( 2 ) +0.3,M0( 3 ), ’M0’, ’FontSize’, 2 0 ); text(M1( 1 ),M1( 2 ) +0.3,M1( 3 ), ’M1’, ’FontSize’, 2 0 ); text(M2( 1 ),M2( 2 ) +0.3,M2( 3 ), ’M2’, ’FontSize’, 2 0 );
(рис 6.12) Иллюстрация к примеру 6.15 (векторы на плоскости)
(рис 6.13) Иллюстрация примеру 6.15 (векторы в пространстве)
(рис 6.14) Плоскость, проходящая через три точки
Плоскость представлена уравнением:
$$\left\arrowvert\begin{matrix}x-1y-2z-3\\1-1-1\\21-2\end{matrix}\right\arrowvert =0\Rightarrow x+z-4=0.$$Графическое изображение плоскости показано на рис. 6.14. Текст программы в листинге 6.16.
clf; cla; set ( gcf, ’Position’, [ 20, 20, 400, 400] ); axis ( [ 0, 10, 0, 10, 0, 10 ] ) A=1;B=0;C=1;D=-4;N=[A, B,C ]; % Параметры плоскости % Параметры уравнения плоскости, преобразованного % к функции двух переменных b0= - D/C; b1= - A/C; b2= - B/C; % Построение плоскости xk=3;yk=3;X= 0 : 0.5 : xk;Y= 0 : 0.5 : yk; [ x, y]= meshgrid(X,Y); z=b0+b1*x+b2 * y; surf ( x, y, z ), colormap gray grid on; xlabel ( ’x’, ’FontSize’, 20 ); ylabel ( ’y’, ’FontSize’, 20 ); zlabel ( ’z’, ’FontSize’, 20 ); set ( gca, ’FontSize’, 12 ); set ( gca, ’box’, ’on’ ); % Построение направляющего вектора line ( [ xk, 0 ], [ 0, 0 ], [ b0, b0_yk ], ’LineWidth’, 5, ’Color’, ’k’ ); line ( [ xk, xk ], [ 0, 0 ], [ b0, b0 ], ’LineWidth’, 5, ’Color’, ’k’, ’marker’, ’v’, ’markersize’, 16 ); text (0+0.3,0+0.3, b0-yk, ’N’, ’FontSize’, 20 ); % Исходные данные M0= [ 1, 2, 3 ];M1= [ 2, 1, 2 ];M2= [ 3, 3, 1 ]; % Нанесение точек на график line ( [M1( 1 ),M1( 1 ) ], [ M1( 2 ),M1( 2 ) ], [ M1( 3 ),M1( 3 ) ], ’LineWidth’, 5, ’ Color’, ’k’, ’marker’, ’o’, ’markersize’, 10 ); line ( [M2( 1 ),M2( 1 ) ], [ M2( 2 ),M2( 2 ) ], [ M2( 3 ),M2( 3 ) ], ’LineWidth’, 5, ’ Color’, ’k’, ’marker’, ’o’, ’markersize’, 10 ); line ( [M0( 1 ),M0( 1 ) ], [ M0( 2 ),M0( 2 ) ], [ M0( 3 ),M0( 3 ) ], ’LineWidth’, 5, ’ Color’, ’k’, ’marker’, ’o’, ’markersize’, 10 ); % Подписи text (M0( 1 ) -0.3,M0( 2 ) -0.3,M0( 3 ), ’M0’, ’FontSize’, 20 ); text (M1( 1 ) -0.3,M1( 2 ) -0.3,M1( 3 ), ’M1’, ’FontSize’, 20 ); text (M2( 1 ) -0.3,M2( 2 ) -0.3,M2( 3 ), ’M2’, ’FontSize’, 20 ); % Заголовок title ( ’x+z-4=0’, ’FontSize’, 20 )
Если плоскость $$Ax + By + Cz + D = 0$$ не параллельна оси OX $$(A\neq 0)$$, то она отсекает на этой оси отрезок $$a=-{\frac{D}{A}}$$. Аналогично отрезки на осях OY, OZ будут $$b=-{\frac{D}{B}},(B\neq 0)$$ и $$\text{с}=-{\frac{D}{C}},(C\neq 0)$$. Таким образом, плоскость отсекающую на осях отрезки $$a, b$$ и $$c$$ можно представить уравнением
$$\frac{x}{a}+\frac{y}{b}+\frac{z}{c}=1,$$которое называется уравнением плоскости в отрезках.
Пример 6.16. Написать уравнение плоскости $$3x - 6y +2z - 12 = 0$$ в отрезках и построить эту плоскость.
Найдём длины отрезков: $$a=-{\frac{D}{A}}=-{\frac{-12}{3}}=4$, $b=-{\frac{D}{B}}=-{\frac{-12}{-6}}=-2$, $\text{с}=-{\frac{D}{C}}=-{\frac{-12}{3}}=6$$.
Запишем уравнение плоскости в отрезках:
$$\frac{x}{4}+\frac{y}{-2}+\frac{z}{6}=1.$$Решение примера показано на рис. 6.15 и в листинге 6.17.
clf; cla; a =4;b=_2;c =6; set( gcf, ’Position’, [ 50, 50, 400, 400 ] ); axis ( [ 0, a, 0, b, 0, c ] ); X= 0 : 0.2 : a;Y=b : 0.2 : 0; [ x y]= meshgrid(X,Y); z=c-c /a * x-c /b * y; hfig=surf ( x, y, z ); set( hfig, ’FaceColor’, ’none’, ’EdgeColor’, ’k’ ) % Изображение векторов a, b и c line( [ 0, a ], [ 0, 0 ], [ 0, 0 ], ’LineWidth’, 5, ’Color’, ’k’ ); line( [ 0, 0 ], [ 0, b ], [ 0, 0 ], ’LineWidth’, 5, ’Color’, ’k’ ); line( [ 0, 0 ], [ 0, 0 ], [ 0, c ], ’LineWidth’, 5, ’Color’, ’k’ ); % Подписи text( a / 2, 0, 1, ’a’, ’FontSize’, 20 ); text( 0, b / 2, 1, ’b’, ’FontSize’, 20 ); text( 0.2, 0, c /2, ’c’, ’FontSize’, 20 ); % Заголовок title( ’a=4, b=-2, c=6’, ’FontSize’, 14 ) xlabel( ’x’ ); ylabel ( ’y’ ); zlabel ( ’z’ ); set( gca, ’Position’, [ .1, .1, .8, .8 ] ); set( gca, ’View’, [ 25 22 ] )
(рис 6.15) Плоскость, заданная отрезками
Рассмотрим особые случаи положения плоскости относительно системы координат:
Пример 6.17. Построить плоскости $$x + y - 1 = 0, x - z + 1 = 0, y + z + 2 = 0, x - y + 2 = 0, 2x + 3 = 0, 3y - 2 = 0$$.
Ход решения примера описан в листинге 6.18. Графическое решение показано на рис. 6.16.
function p=plos1 (A, B, C,D) M=[A, B,C ]; % Параметры плоскости d = [ 0.1, 0.1, 0.1 ]; if A==0 M( 1 ) =1; end; if B==0 M( 2 ) =1; end; if C==0 M( 3 ) =1; end; if A<0 d ( 1 ) = -0.1; end; if B<0 d ( 2 ) = -0.1; end; if C<0 d ( 3 ) = -0.1; end; X=0:d ( 1 ) :M( 1 ); Y=0:d ( 2 ) :M( 2 ); Z=0:d ( 3 ) :M( 3 ); % Построение плоскости if C!=0 % Плоскость не параллельна OZ % Уравнение плоскости преобразовано к функции двух переменных z(x,y) [ x, y]= meshgrid(X,Y); b0= - D/C; b1= - A/C; b2= - B/C; z=b0+b1 _ x+b2 _ y; f1=surf ( x, y, z ); colormap gray else if B!=0 % Плоскость не параллельна OY % Уравнение плоскости преобразовано к функции двух переменных y(x,z) [ x, z ]= meshgrid(X, Z); b0= - D/B; b1= - A/B; b2= - C/B; y=b0+b1 * x+b2 * z; f1=surf ( x, y, z ); colormap gray else % Плоскость не параллельна OX % Уравнение плоскости преобразовано к функции двух переменных x(y,z) [ y, z ]= meshgrid(Y, Z); b0= - D/A; b1= - B/A; b2= - C/A; x=b0+b1 * y+b2 * z; f1=surf( x, y, z ); colormap gray end; end; grid on; xlabel ( ’x’ ); ylabel ( ’y’ ); zlabel ( ’z’ ); set( gca, ’xtick’, [ 0 :M( 1 ) ] ); set( gca, ’ytick’, [ 0 :M( 2 ) ] ); set( gca, ’ztick’, [ 0 :M( 3 ) ] ); set( gca, ’box’, ’on’ ); p=f1; end; % конец функции % Изображение плоскостей заданных в примере 6.17 clf; cla; subplot ( 3, 2, 1 ); A1=1;B1=1;C1=0;D1=-1; % Плоскость x+y-1=0 plos1 (A1, B1, C1, D1); title ( ’x+y-1=0, (C=0)’ ); subplot ( 3, 2, 2 ); A2=1;B2=0;C2=_1;D2=1; % Плоскость x-z+1=0 plos1 (A2, B2, C2, D2); title ( ’x-z+1=0, (B=0)’ ); subplot ( 3, 2, 3 ); A3=0;B3=1;C3=1;D3=2; % Плоскость y+z+2=0 plos1 (A3, B3, C3, D3); title ( ’y+z+2=0, (A=0)’ ); set ( gca, ’View’, [ 1 3 0 3 0 ] ); subplot ( 3, 2, 4 ); A4=1;B4=-1;C4=1;D4=0; % Плоскость x-y+z-2=0 plos1 (A4, B4, C4, D4); set ( gca, ’View’, [ 4 0 3 0 ] ); title ( ’x-y+z=0,D=0’ ); subplot ( 3, 2, 5 ); A5=2;B5=0;C5=0;D5=3; % Плоскость 2x+3=0 plos1 (A5, B5, C5, D5); set ( gca, ’View’, [ 4 0 3 0 ] ); title ( ’2x+3=0, (B=0,C=0)’ ) subplot ( 3, 2, 6 ); A6=0;B6=3;C6=0;D6=_2; % Плоскость 3y-2=0 plos1 (A6, B6, C6, D6); set ( gca, ’View’, [ 4 0 3 0 ] ); title ( ’3y-2=0,(A=0,C=0)’ );
Расстояние от точки $$M_1(x_1, y_1, z-1)$$ до плоскости $$Ax + By + Cz + D = 0$$ равно абсолютному значению величины
$$d=\frac{|Ax_1+By_2+Cz_3+D|}{\sqrt{A^{2}+B^{2}+C^{2}}}.$$Пример 6.18. Найти расстояние от точки M1 (3, 9, 1) до плоскости $$x - 2y + 2z + 3 = 0$$.
Решение показано в листинге 6.19.
% Исходные данные A=1;B=-2;C=2;D=-3;M= [ 3, 9, 1 ];N=[A;B;C ]; % Расстояние от точки М(3,9,1) до плоскости x-2y+2z-3=0 d=abs (M *N+D) /norm(N) d = 5.3333
(рис 6.16) Особые случаи положения плоскости относительно системы координат
Две плоскости $$A_1x+B_1y+C_1z+D_1=0$ и $A_2x+B_2y+C_2z+D_2=0$$ образуют четыре двугранных угла равных попарно. Один из них всегда равен углу между нормальными векторами $$\vec{N}_{1}\{A_{1,}B_{1,}C_{1}\}$$. Вычисляют любой из двугранных углов по формуле
$$\cos (\phi )=\pm{\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}}}},$$причём, выбирая "+" получаем $$\cos (\angle \vec{N}_{1}\vec{N}_{2})$$, выбирая "–" получаем $$\cos (180-\angle \vec{N}_{1}\vec{N}_{2})$$.
Пример 6.19. Найти угол между плоскостями $$x-y+\sqrt{2}z+2=0$$ и $$x+y+\sqrt{2}z-3=0$$.
Решение показано в листинге 6.20.
% Исходные данные N1=[1, -1, sqrt( 2 ) ]; N2=[1,1, sqrt( 2 ) ]; % Угол между плоскостями fi =acos( dot (N1, N2) /norm(N1) /norm(N2) ); fi_1= round( f i * 180/ pi ) fi_2=180-fi_1 % Решение fi_1 = 60 fi_2 = 120
Два уравнения $$A_1x+B_1y+C_1z+D_1=0$$ и $$A_2x+B_2y+C_2z+D_2=0$$ представляют прямую линию, если коэффициенты $$A_1, B_1, C_1$$ не пропорциональны коэффициентам $$A_2, B_2, C_2$$ (то есть плоскости не параллельны). Если коэффициенты $$A_1, B_1, C_1$$ пропорциональны коэффициентам $$A_2, B_2, C_2$$, но свободные члены не подчинены той же пропорции $$\frac{A_2}{A_1}=\frac{B_2}{B_1}=\frac{C_2}{C_1}\neq \frac{D_2}{D_1}$$, то заданные уравнения не представляют никакого геометрического образа. Если все четыре величины пропорциональны $$\frac{A_2}{A_1}=\frac{B_2}{B_1}=\frac{C_2}{C_1}=\frac{D_2}{D_1}$$, то заданные уравнения представляют одну и ту же плоскость.
Пример 6.20. Построить прямые линии, заданные уравнениями:
a) $$2x - y = 0 и x + y - 1 = 0$$;
b) $$x - y + z - 1 = 0 и 2x - 2y + 2z - 2 = 0$$;
c) $$2x - 7y + 12z - 4 = 0 и 4x - 14y + 24z - 12 = 0$$.
Решение показано в листинге 6.21. Для построения плоскости применялась функция $$plos1(A, B, C, D)$$, описанная в примере 6.17.
function flag=l i n e _ (N1, N2) if N1 ( 1 )==0 k1 =0; else k1=N2 ( 1 ) /N1 ( 1 ); end; if N1 ( 2 )==0 k2 =0; else k2=N2 ( 2 ) /N1 ( 2 ); end; if N1 ( 3 )==0 k3 =0; else k3=N2 ( 3 ) /N1 ( 3 ); end; if N1 ( 4 )==0 k4 =0; else k4=N2 ( 4 ) /N1 ( 4 ); end; if ( k1 ! = k2 ) | ( k2 != k3 ) flag =0 clf; cla; plos1 (N1 ( 1 ),N1 ( 2 ),N1 ( 3 ),N1 ( 4 ) ); hold on plos1 (N2 ( 1 ),N2 ( 2 ),N2 ( 3 ),N2 ( 4 ) ); elseif ( k1 == k2 ) ( k2 == k3 ) ( k3 == k4 ) flag =1; clf; cla; plos1 (N1 ( 1 ),N1 ( 2 ),N1 ( 3 ),N1 ( 4 ) ); elseif ( k1 == k2 ) ( k2 == k3 ) ( k3!= k4 ) flag =2; disp ( ’Геометрическая фигура не определена!’ ) end; end; % Случай a) A1=2;B1=-1;C1=0;D1=0;A2=1;B2=1;C2=0;D2=-1; n1=[A1, B1, C1, D1 ]; n2=[A2, B2, C2, D2 ]; line _ ( n1, n2 ) title ( ’2x-y=0, x+y-1=0’ ); set ( gca, ’View’, [ 110 30 ] ); % Случай b) A1=1;B1=_1;C1=1;D1=_1;A2=2;B2=_2;C2=2;D2=_2; n1=[A1, B1, C1, D1 ]; n2=[A2, B2, C2, D2 ]; line _ ( n1, n2 ) title ( ’x-y+z-1=0, 2x-2y+2z-2=0’ ); set ( gca, ’View’, [ 60 30 ] ); % Случай c) A1=2;B1=-7;C1=12;D1=-4;A2=4;B2=-14;C2=24;D2=-12; n1=[A1, B1, C1, D1 ]; n2=[A2, B2, C2, D2 ]; line _ ( n1, n2 ) % Результат работы в случае с) Геометрическая фигура не определена!
Всякий вектор $$\vec{a}\{l,m,n\}$$, лежащий на прямой (или параллельный ей), называется направляющим вектором этой прямой. Координаты $$\{l, m, n\}$$ называются направляющими коэффициентами прямой. За направляющий вектор прямой $$A_{1}x+B_{1}y+C_{1}z+D_{1}=0, A_{2}x+B_{2}y+C_{2}z+D_{2}=0$$ можно принять векторное произведение $$\vec{N}_{1}\times \vec{N}_{2}$$, где $$\vec{N}_{1}=\{A_{1,}B_{1,}C_{1}\},\vec{N}_{2}=\{A_{2,}B_{2,}C_{2}\}$$ — нормальные векторы плоскостей, образующих прямую.
Пример 6.21. Найти направляющие коэффициенты прямой $$2x - 2y - z + 8 = 0 и x + 2y - 2z + 1 = 0$$ (листинг 6.24).
N1=[2, -2, -1];N2= [ 1, 2, -2 ]; % Расчёт координат векторного произведения M=[N1; N2 ]; M1=M( 1 : 2, 2 : 3 );M2=[M( :, 1 ),M( :, 3 ) ]; M3=M( 1 : 2, 1 : 2 ); a ( 1 )=det (M1); a ( 2 )= _det (M2); a ( 3 ) =( det (M3) ); a % Векторное произведение a = 6 3 6
(рис 6.17) Геометрическая интерпретация примера 6.20, случай a)
(рис 6.18) Геометрическая интерпретация примера 6.20, случай b)
Прямая $$L$$, проходящая через точку $$M_0(x_0,y_0,z_0)$$ и имеющая направляющий вектор $$\vec{a}\{l,m,n\}$$ представляется уравнениями $$\frac{x-x_{0}}{l}=\frac{y-y_{0}}{m}=\frac{z-z_{0}}{n}$$. Эти уравнения выражают коллинеарность векторов $$\overrightarrow{{M_{0}M_{1}}}\{x-x_{0,}y-y_{0,}z-z_{0}\},\vec{a}\{l,m,n\}$$ и называются каноническими уравнениями прямой.
Уравнения $$x = x_0 + lt, y = y_0 + mt, z = z_0 + nt$$ называют параметрическими уравнениями прямой. Здесь величина $$t$$ является параметром и принимает различные значения.
Пример 6.22. Записать параметрическое уравнение прямой, проходящей через две точки $$A(5, -3, 2)$$ и $$B(3, 1, -2)$$.
Если в качестве направляющего вектора выбрать вектор $$\overrightarrow{AB}=\{3-5,1-(-3),-2-2\}=\{-2,4,-4\}$$, то каноническое уравнение будет иметь вид $$\frac{x-5}{-2}=\frac{y+3}{4}=\frac{z-2}{-4}$$, следовательно параметрическое уравнение запишем так $$x = 5 + 2t, y = -3 + 4t, z = 2 - 4t$$.
Команды, которые применялись для графического решения примера (рис. 6.19) показаны в листинге 6.23.
clf; cla; set( gcf, ’Position’, [ 20, 20, 400, 400 ] ); set( gca, ’Position’, [ . 1, . 1, . 8, . 8 ] ); xlabel( ’x’ ); ylabel ( ’y’ ); zlabel ( ’z’ ); axis( [ 3, 5, - 3, 2, -2, 3 ] ); grid on; % Исходные данные A= [ 5, - 3, 2 ];B= [ 3, 1, - 2 ]; t = 0 : 0.1 : 1; x=5-2* t; y= -3+4* t; z=2-4* t; % Изображение прямой line( x, y, z, ’LineWidth’, 5, ’Color’, ’k’ ); % Изображение точек line( [A( 1 ),A( 1 ) ], [ A( 2 ),A( 2 ) ], [ A( 3 ),A( 3 ) ], ’LineWidth’, 5, ’Color’ , ’k’, ’marker’, ’o’, ’markersize’, 1 0 ); line ( [ B( 1 ),B( 1 ) ], [ B( 2 ),B( 2 ) ], [ B( 3 ),B( 3 ) ], ’LineWidth’, 5, ’Color’ , ’k’, ’marker’, ’o’, ’markersize’, 1 0 ); % Подписи text(A( 1 ),A( 2 ) +0.3,A( 3 ) +0.5, ’A’, ’FontSize’, 20 ); text(B( 1 ),B( 2 ) +0.3,B( 3 ) +0.3, ’B’, ’FontSize’, 20 ); set( gca, ’View’, [ 120 50 ] );
(рис 6.19) Прямая, проходящая через две точки
Если известны направляющие векторы двух прямых $$\vec{a}\{l,m,n\}$$ и $$\vec{b}\{l',m',n'\}$$, то угол между этими прямыми можно вычислить по формуле
$$\cos (\phi )=\pm {\frac{ll'+mm'+nn'}{\sqrt{l^{2}+m^{2}+n^{2}}\sqrt{l'^{2}+m'^{2}+'^{2}}}}.$$Пример 6.23. Найти угол между прямыми $$x = t, y = 2t, z = 3t$$ и $$x = -1 + 2t, y = 1 + t, z = -1 + 4t$$ (истинг 6.24л, рис. 6.20).
a = [ 1, 2, 3 ]; b = [ 2, 1, 4 ]; % Исходные данные fi =acos ( dot ( a, b ) /norm( a ) /norm( b ) ); fi_1= round ( f i _ 180/ pi ) clf; cla; set( gcf, ’Position’, [ 20, 20, 400, 400 ] ); set( gca, ’Position’, [ .1, .1, .8, .8 ] ); set( gca, ’box’, ’off’ ); xlabel( ’x’ ); ylabel ( ’y’ ); zlabel ( ’z’ ); axis( [ -1, 1, 0, 2, -1, 4 ] ); grid on; t = 0 : 0.1 : 1; x=-1+2* t; y=1+t; z= -1+4* t; % Изображение прямой line ( x, y, z, ’LineWidth’, 5, ’Color’, ’k’ ); % Подписи text( -0.8,1, -1, ’b’, ’FontSize’, 20 ); x=t; y=2* t; z=3* t; % Изображение прямой line( x, y, z, ’LineWidth’, 5, ’Color’, ’k’ ); % Подписи text( 0.2, 0, 0, ’a’, ’FontSize’, 20 ); set( gca, ’View’, [ 30 30 ] ) % Результат fi_1 = 21
(рис 6.20) Угол между прямыми
Прямая $$x = x_0 + lt, y = y_0 + mt, z = z_0 + nt$$ и плоскость$$ Ax + By + Cz + D = 0$$ могут иметь одну общую точку, могут не иметь общих точек (прямая параллельна плоскости) и иметь бесконечное множество общих точек (прямая лежит на плоскости).
Общую точку (если такая существует) плоскости и прямой можно вычислить, если подставить уравнение прямой в уравнение плоскости и найти значение параметра $$t$$.
Пример 6.24. Найти точку пересечения прямой $$x = -5 + 3t, y = 3 - t, z = -3 + 2t$$ с плоскостью $$2x + 3y + 3z - 8 = 0$$.
Выполним расчёты в технике символьных вычислений (листинг 6.25).
symbols % Определение символьных переменных x = sym( "x" ); y = sym( "y" ); z = sym( "z" ); t = sym( "t" ); % Параметрическое уравнение прямой x = -5+3*t; y = 3-t; z = -3+2*t; % Уравнение плоскости f = 2 * x+3*y+3*z -8 % Вычисление значения параметра t t = symfsolve( f, 0 ) % Определение точки пересечения прямой и плоскости x = -5+3*t y = 3-t z = -3+2*t % Результаты вычислений % Уравнение плоскости, выраженное через параметр t f = -18.0+(9.0) * t % Значение параметра t t = 2.0000 % Точка пересечения прямой и плоскости x = 1.00000 y = 1.00000 z = 1.00000
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.