1 семестр_1 / ЛА / Модуль 2 / МП-12_Николаев_Олег_lab04
.docxОтчет к упражнению 1
Прямая L задана т и направляющим вектором .
1.Записать каноническое уравнение прямой (см формулу (3)) и сделать его заголовком графика.
2.Теперь входными параметрами являются координаты направляющего вектора и координаты точки прямой = (X0, Y0). Выразить из канонического уравнения y, как функцию от x. Используя функцию plot(), построить прямую L, сплошную, фиолетового цвета, толщины 2. Значение абсцисс точек прямой – массив, состоящий из двух точек -6 и 9. Отметить на прямой точку круговым маркером черного цвета, толщины 3. Подписать точку. Провести с помощью функции line( ) оси координат черного цвета.
3. Построить направляющий вектор , берущим начало
а) из начала координат
б) из точки, в которой прямая L пересекает ось абсцисс.
clear all;close all;clc;
%запишем каноническое уравнение прямой
title('(x-1)/3=(y-2)/(-1)');
grid on;hold on;
m=[1;2];%задание точки
q=[3;-1];%задание вектора
x=[-6;9];
y=m(2)+q(2)*(x-m(1))/q(1);%определение ординат
plot(x,y,'-m','lineWidth',2);
%построим и подпишем точку M0
plot(m(1),m(2),'ko','lineWidth',3);
text(m(1),m(2)+0.2,'M_{0}');
%построим и подпишем оси
line([0 -6;0 10],[-1 0;5 0],'Color','black');
xlabel('x'),ylabel('y');
%построим q из начала координат
line([0,q(1),q(1);q(1),q(1)-0.2,q(1)-0.7],[0,q(2),q(2);q(2),q(2)+0.4,q(2)-0.1],'Color','blue','lineWidth',3);
%построим q из точки, в которой прямая пересекает ось абсцисс
x1=-m(2)*q(1)/q(2)+m(1);
x2=x1+q(1);
line([x1,x2,x2;x2,x2-0.2,x2-0.7],[0,q(2),q(2);q(2),q(2)+0.4,q(2)-0.1],'Color','green','lineWidth',3);
Отчет к упражнению 2
1. Прямая L1 задана двумя точками и .
Определиться с входными данными.
Выразить из канонического уравнения y, как функцию от x.
Используя функцию plot(), построить прямую L1.
Отметить и подписать на прямой точки и
Провести с помощью функции line( ) оси координат черного цвета.
Построить направляющий вектор , берущим начало
а) из начала координат
б) из точки, в которой прямая L1 пересекает ось абсцисс.
Напишем скрипт l1.m:
grid on;hold on;
m=m1;%задание точки
q=m2-m1;%задание вектора
x=[-6;9];
y=m(2)+q(2)*(x-m(1))/q(1);%определение ординат
plot(x,y,'-m','lineWidth',2);
%построим и подпишем точки M1 и М2
plot(m1(1),m1(2),'ko','lineWidth',3);
plot(m2(1),m2(2),'ko','lineWidth',3);
text(m1(1)-0.7,m1(2)+0.5,'M_{1}');
text(m2(1)-0.7,m2(2)+0.5,'M_{2}');
%построим и подпишем оси
line([0 -6;0 10],[-5 0;10 0],'Color','black');
xlabel('x'),ylabel('y');
%построим q из начала координат
line([0;q(1)],[0;q(2)],'Color','blue','lineWidth',3);
plot(q(1),q(2),'>b','lineWidth',2);
%построим q из точки, в которой прямая пересекает ось абсцисс
x1=-m(2)*q(1)/q(2)+m(1);
x2=x1+q(1);
line([x1;x2],[0;q(2)],'Color','green','lineWidth',3);
plot(x2,q(2),'>g','lineWidth',2);
Теперь вызовем скрипт:
>> m1=[1;2];m2=[-1;0];
>> l1
2. Используя готовую программу, сделать все тоже самое для прямой L2, проходящую через точки и .
>> m1=[2;1];m2=[0;-1];
>> l1
Отчет к упражнению 3
Построить прямую, заданную параметрическим уравнением . Найти ее направляющий вектор , найти нормальный вектор . Изобразить данные векторы исходящими из начала координат и из какой-нибудь точки, лежащей на прямой.
clear all;close all;clc;
grid on;hold on;axis equal;
m=[-1;3];%задание точки
q=[5;-2];n=[2;5];%задание векторов
x=[-10;20];
y=m(2)+q(2)*(x-m(1))/q(1);%определение ординат
plot(x,y,'-m','lineWidth',2);
%построим и подпишем оси
line([0 -10;0 20],[-10 0;15 0],'Color','black');
xlabel('x'),ylabel('y');
%построим векторы из начала координат
line([0,0;q(1),n(1)],[0,0;q(2),n(2)],'Color','blue','lineWidth',3);
plot(q(1),q(2),'>b','lineWidth',2);
plot(n(1),n(2),'^b','lineWidth',2);
%построим векторы из точки на прямой
x1=-m(2)*q(1)/q(2)+m(1);
x2=x1+q(1);x2n=x1+n(1);
line([x1,x1;x2,x2n],[0,0;q(2),n(2)],'Color','green','lineWidth',3);
plot(x2,q(2),'>g','lineWidth',2);
plot(x2n,n(2),'^g','lineWidth',2);
Задача 1
Найти уравнения сторон-катетов прямоугольного равнобедренного треугольника, если дана вершина прямого угла и уравнение гипотенузы . Изобразить все три прямые. При изображении прямых (катетов) использовать угловой коэффициент прямой как входящий параметр. При построении уравнения гипотенузы использовать пример 1 (набрав заново соответствующую программу). К прямым найти и построить направляющие векторы и нормальные векторы. Каждую группу (прямая, нормаль, направляющий вектор) выделить отдельным цветом. Точку С также выделить и подписать.
Пусть прямые l1 и l2 задаются уравнениями:
l1:y=k1*x+b1,
l2: y=k2*x+b2
Тогда тангенс угла между этими прямыми равен
Поскольку треугольник АВС равнобедренный и прямоугольный, то тангенсы углов между каждым катетом и гипотенузой равны 1. Пусть для АС y=k1*x+b1, для BC у=k2*x+b2.
Т.к. для AB y=3x+2, то получим:
=1 для угла между АС и АВ
=1 для угла между ВС и АВ.
Но k2 не равен k1 (иначе прямые совпадают или параллельны).
Значит, можно написать
3 - k1 = 1 + 3*k1 для прямой АС
3 - k2 = - (1 + 3*k2) для прямой BC.
Отсюда k1=0.5, k2=2.
Т.к. точка C=(3;-1) принадлежит обеим прямым, то ее координаты можно подставить уравнения этих прямых и найти b1 и b2:
-1=0.5*3+b1; b1=-2.5
-1=2*3+b2; b2=5.
Значит, уравнение АС: y=0.5*x-2.5, а уравнение BC: y=2*x+5.
clear all;close all;clc;
%построим АВ
A=3; B=-1; C=2;% задание коэффициентов уравнения
x=[-6 9];% формирование диапазона абсцисс
y=-(A*x +C)/B;% вычисление значений ординат
plot(x,y); % построение графика прямой АВ
grid on,hold on; % визуализация координатной сетки
title('A*x+B*y+C=0') % задание заголовка
xlabel('x'), ylabel('y') % обозначение осей
%построим АС и ВС
k1=0.5;k2=-2;b1=-2.5;b2=5;
y1=k1*x+b1;%прямая АС
y2=k2*x+b2;%прямая ВС
plot(x,y1,'r');
plot(x,y2,'g');
%построим точку C
clear C;
c=[3;-1];
plot(c(1),c(2),'ko','lineWidth',3);
text(c(1)+0.4,c(2)-0.2,'C');
%построим вектора
axis([-10 10 -10 10]);
axis equal;
line([-1;-2],[-1;-2/3],'color','blue','linewidth',3);%построим n1 для прямой АВ
plot(-2,-2/3,'<b','linewidth',3);
line([-1;-2/3],[-1;0],'color','blue','linewidth',3);%построим q1 для прямой АВ
plot(-2/3,0,'<b','linewidth',3);
line([1;3/2],[-2;-3],'color','red','linewidth',3);%построим n2 для прямой АС
plot(3/2,-3,'<r','linewidth',3);
line([1;0],[-2;-5/2],'color','red','linewidth',3);%построим q2 ждя поямлй АС
plot(0,-5/2,'^r','linewidth',3);
line([2;3],[1;3/2],'color','green','linewidth',3);%построим n3 для прямой ВС
plot(3,3/2,'<g','linewidth',3);
line([2;3/2],[1;2],'color','green','linewidth',3);%построим q3 для прямой ВС
plot(3/2,2,'^g','linewidth',3);
%оси
line([-11 0;11 0],[0 -10;0 10],'Color','black');
Задача 2.
Через точку построить прямую, отсекающую от осей координат треугольник площадью 2.
При построении прямой, полученной при ответе, использовать отрезки и из формулы (6) как входящие параметры. Найти и построить направляющий и нормальный векторы.
Т.к. M=(-1;3) находится во 2 четверти, то прямая, проходящая через М, может отсекать треугольник с катетами а и b только в 1,2 и 3 четвертях.
Площадь треугольника S=(1/2)|ab|.=2, откуда |ab|=4.
Но если треугольник расположен во 2 четверти, то его катеты будут больше 3 и 1, т.е. площадь треугольника будет больше 2. Значит, треугольник расположен в 1 или 3 четверти. Тогда ab>0, ab=4.
Уравнение прямой в отрезках: Подставив координаты точки М, получим
Получаем систему уравнений:
Отсюда получаем
a=2,b=2 или a=-2/3,b=-6.
Получаем уравнения прямых:
1) , откуда =[1,1], =[-1,1]
2) , откуда , =[-1/9,1]
clear all;close all;clc;
grid on;hold on;
m=[-1;3];
%построим первую прямую
a=2;b=2;
x=[-6 9];
y=(1-x/a)*b;
plot(x,y);
%построим вторую прямую
a=-2/3;b=-6;
y=(1-x/a)*b;
plot(x,y,'r');
%построим векторы
n1=[1;1];q1=[-1;1];
n2=[1;1/9];q2=[-1/9;1];
axis([-6 6 -6 6]);axis equal;
%n1
line([m(1);m(1)+n1(1)],[m(2);m(2)+n1(2)],'Color','blue','lineWidth',3);
plot(m(1)+n1(1),m(2)+n1(2),'<b','lineWidth',3);
%q1
line([m(1);m(1)+q1(1)],[m(2);m(2)+q1(2)],'Color','blue','lineWidth',3);
plot(m(1)+q1(1),m(2)+q1(2),'vb','lineWidth',3);
%n2
line([m(1);m(1)+n2(1)],[m(2);m(2)+n2(2)],'Color','red','lineWidth',3);
plot(m(1)+n2(1),m(2)+n2(2),'>r','lineWidth',3);
%q2
line([m(1);m(1)+q2(1)],[m(2);m(2)+q2(2)],'Color','red','lineWidth',3);
plot(m(1)+q2(1),m(2)+q2(2),'^r','lineWidth',3);
%оси
line([-5 0;9 0],[0 -6;0 6],'Color','black');
xlabel('x'),ylabel('y');
title('x/a+y/b=1');
text(-2.5,2.7,'M(-1,3)');