Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-й курс / МатЛаб - Алгебра / МП_14_Ермилов_Ярослав_лаб_1_3 (+).docx
Скачиваний:
99
Добавлен:
18.12.2017
Размер:
624.9 Кб
Скачать

Упражнение 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