
- •Лабораторная работа №3 Тема
- •Упражнение 1. Вычисление определителей III порядка
- •Упражнение 2. Найти векторное произведение векторов
- •Упражнение 3. Вычислить площадь треугольника с помощью векторного произведения
- •Упражнение 4. Каноническое уравнение прямой.
- •Упражнение 5. Уравнение прямой, проходящей через две точки.
- •Упражнение 6. Параметрическое задание прямой.
- •Упражнение7. Задание прямой в отрезках.
- •Упражнение 8. Общееуравнение прямой.
- •Упражнение 9. М-функция для построения двух прямых линий.
- •Упражнение 11. Уравнение плоскости в отрезках.
- •Упражнение 12. Общее уравнение прямой в пространстве.
Упражнение 8. Общееуравнение прямой.
Используя функцию plot(),
построить ту же прямую, заданную общим
уравнениемсплошную, зеленого цвета, толщины 2.
Значение абсцисс точек прямой – массив,
состоящий из двух точек -6 и 6.
В заголовок вывести общее уравнение прямой.
Построить и пометить оси координат.
Вывести квадратные маркеры в узловых точках линии.
Отобразить координатные оси черным цветом, пометить начало координат
Изобразить вектор
, орт вектора
, берущими начало
а) из начала координат;
б) из точки (0,-2), лежащей на заданной прямой.
Программу снабдить комментариями.
Сделать выводы.
Решение:
% Задаем массив х из 2х точек:
x = [-6, 6];
% Задаем общее уравнение прямой у:
y = (5*x+8)/(-4);
% Задаем нормальный вектор согласно уравнению прямой, находим его орт:
n = [-5, -4];
n0 = n/norm(n);
% Задаем точку на заданной прямой
M = [0, -2];
% Заголовок
title('-5x-4y-8 = 0')
%Задаем оси, сетку итп... (реализовано ф-цией)
axis3
% Строим прямую
plot(x, y, 'g', 'lineWidth', 2)
% Узловые точки
plot(x, y, 's', 'lineWidth', 2)
% Строим нормальный вектор
quiver(0, 0, n(1), n(2), 1)
quiver(M(1), M(2), n(1), n(2), 1)
% Строим орт нормального вектора
quiver(0, 0, n0(1), n0(2), 1)
quiver(M(1), M(2), n0(1), n0(2), 1)
Результат:
Упражнение 9. М-функция для построения двух прямых линий.
Напишите функцию для построения двух прямых линий (в виде отрезков разных цветов и толщины линий) по уравнениям с угловым коэффициентом. При написании учтите замечание выше о хорошем стиле. Описание функции должно быть доступно через команду help. Проиллюстрировать работу М-функции на параллельных прямых, пересекающихся прямых, совпадающих прямых.
Решение:
function [] = line2(k1, b1, k2, b2)
%LINE2 Построение прямых
% Строит 2 прямые по уравнению типа: y=k*x+b
x = [-3, 3];
y1 = k1*x+b1;
y2 = k2*x+b2;
hold on
plot(x, y1, 'b', 'lineWidth', 2)
plot(x, y1, 'g*')
plot(x, y2, 'r', 'lineWidth', 2)
plot(x, y2, 'g*')
end
Результат:
>> helpline2
line2 Построение прямых
Строит 2 прямые по уравнению типа: y=k*x+b
>> line2(2,4,2,8)
>> line2(2,4,8,16)
>> line2(3,3,3,3)
Упражнение.10. Геометрическая интерпретация системы двух уравнений первой степени с двумя неизвестными.
Задача. Создать М-функцию, осуществляющуюпостроение двух прямых по уравнениям, взятыми из системы вида (8), с необходимым количеством аргументов и использовать ее для иллюстрации решений для нижеследующих систем.
изобразить уравнения систем в виде соответствующих прямых (разных цветов, разной толщины, чтобы в случае совпадения прямых, одну поверх другой было видно, как на рис. 18);
сделать предположенияпо взаиморасположению двух прямых линий на плоскости об отсутствии/наличии решений, количестве решений системы, уравнения которых записаны в системе
вычислить для всех системопределителиd,dx,dyи сделать выводы о наличии/ отсутствии решений, о количестве решений системы,сравнить выводыс ранее сделанными предположениями. Определители вMATLABможно вычислять с помощью стандартной функцииdet(имя матрицы).
определить, которая из систем является системой крамеровского типа, решить ее по формулам Крамера; найти решения для других систем.
1)
;
2)
;
3)
;
4)
;
5)
.
Решение:
function [] = ex10(a1, b1, c1, a2, b2, c2)
%EX10 Построение прямых по уравнениям
% Строит 2 прямые по уравнению типа: ax+by=c
x = [-5:1:5];
y1 = (c1-a1*x)/b1;
y2 = (c2-a2*x)/b2;
axis3
plot(x, y1, 'b', 'lineWidth', 2)
plot(x, y1, 'g*')
plot(x, y2, 'r', 'lineWidth', 2)
plot(x, y2, 'g*')
if (a1*a2+b1*b2==0)
disp('Данные прямые перпендикулярны')
elseif ((a1*a2+b1*b2)/(sqrt(a1^2+b1^2)*sqrt(a2^2+b2^2))==0)
disp('Данные прямые параллельны')
else
disp('Данные прямые пересекаются')
end
d0=[a1 b1;a2 b2];
det0=det(d0)
d1=[c1 b1;c2 b2];
det1=det(d1)
d2=[a1 c1;a2 c2];
det2=det(d2)
if (det0==0)
disp('Эта система не является Крамеровской')
else
ans1=det1/det0
ans2=det2/det0
end
end
Выполнение упражнений:
>> ex10(3,-5,13,2,7,81)
Данные прямые пересекаются
d0 =
3 -5
2 7
det0 =
31.0000
d1 =
13 -5
81 7
det1 =
496
d2 =
3 13
2 81
det2 =
217
ans1 =
3.2581 1.6129
17.8387 13.7419
ans2 =
-0.1613 1.7419
-4.7742 8.1613
2) >> ex10(2,-3,6,4,-6,5)
Данные прямые параллельны
d0 =
2 -3
4 -6
det0 =
0
d1 =
6 -3
5 -6
det1 =
-21
d2 =
2 6
4 5
det2 =
-14
Эта система не является Крамеровской
3) >> ex10(1,-1*sqrt(3),1,sqrt(3),-3,sqrt(3))
Данные прямые параллельны
det0 =
-7.6919e-16
det1 =
-7.6919e-16
det2 =
0
ans1 =
1
ans2 =
0
4) >> ex10(13,2,0,5,10,0)
Данные прямые пересекаются
det0 =
120.0000
det1 =
0
det2 =
0
cos1 =
0
ans1 =
0
ans2 =
0
5) >> ex10(10,2,0,5,10/13,0)
Данные прямые пересекаются
det0 =
-2.3077
det1 =
0
det2 =
0
ans1 =
0
ans2 =
0