Новости

НОУ ІНТУЇТ | лекція | Векторна алгебра і аналітична геометрія

  1. 6.1 Векторна алгебра

Анотація: Розглянемо можливості Octave при вирішенні задач векторної алгебри та аналітичної геометрії. Завдяки потужним графічним засобам пакета ці завдання стають більш зрозумілими і наочними.

6.1 Векторна алгебра

В геометрії вектором називається всякий спрямований відрізок. Вчення про дії над векторами називається векторною алгеброю.

Вектор, початком якого служить точка А, а кінцем точка В, позначається Вектор, початком якого служить точка А, а кінцем точка В, позначається   або або . Якщо початок і кінець вектора збігаються, то відрізок перетворюється в точку і втрачає напрямок, такий відрізок називають нуль-вектором.

Якщо вектор заданий точками Якщо вектор заданий точками   і   , То його координати: і , То його координати: . Довжина вектора називається також його модулем, позначається або і обчислюється за формулою:

формули

служать для обчислення координат середини відрізка служать для обчислення координат середини відрізка .

розділити відрізок розділити відрізок   в заданому відношенні λ можна так:   , тут   і   - координати точки L, що ділить відрізок щодо в заданому відношенні λ можна так: , тут і - координати точки L, що ділить відрізок щодо .

Нагадаємо, що вектори в Octave задаються шляхом поелементного введення:

>>> a = [1 0 3]% Вектор-рядок a = 1 0 3 >>> b = [0; 1; 4]% Вектор-стовпець b = 0 у середньому 1 4

Приклад 6.1. побудувати вектор Приклад 6 .

Рішення прикладу показано на Мал. 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.1. Побудова вектора (приклад 6.1).

Приклад 6.2. Побудувати вектори, задані координатами початку і кінця:

Рішення прикладу показано в лістингу 6.2 і на Мал. 6.2 . Зверніть увагу, що для зображення вектора була створена спеціальна функція Рішення прикладу показано в   лістингу 6 . Ця функція зображує спрямований відрізок в декартовій системі координат і повертає координати його середини. В даному випадку координати середини відрізка потрібні для нанесення відповідного напису, що позначає вектор на малюнку.


Мал.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. Побудова векторів, функція vector (приклад 6.2).
Мал. 6.2. Геометричне рішення прикладу 6.2

Два ненульових вектора Два ненульових вектора   і   рівні, якщо вони равнонаправлени і мають один і той же модуль і рівні, якщо вони равнонаправлени і мають один і той же модуль. Всі нульові вектори рівні. У всіх інших випадках вектори не рівні. Два вектора мають рівні модулі та протилежні напрямки, називаються протилежними. Вектори лежать на паралельних прямих називаються колінеарними.

Приклад 6.3. Порівняти вектори Приклад 6 і , , і , і задані координатами початку і кінця: .

Текст файлу-сценарію представлений в лістингу 6.3 . При вирішенні прикладу була створена функція Текст файлу-сценарію представлений в   лістингу 6 , Яка обчислює довжину відрізка XY, заданого координатами точок і . Для зображення векторів використовувалася функція , Описана в прикладі 6.2.

Рішення прикладу показано в кінці лістингу 6.3 і на Мал. 6.3 . За отриманими числовим результатами і геометричної інтерпретації прикладу можна зробити висновок, що вектори Рішення прикладу показано в кінці   лістингу 6 і рівні. вектори і нерівні, хоча у них і однакові довжини, але напрямки різні. вектори і нерівні по тій же причині, а вектори і рівні. вектори і - протилежні, так як мають однаковий модуль і протилежні напрямки.

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.3. Порівняння векторів (приклад 6.3).

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

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: