
- •Лабораторная работа №3 Тема
- •Упражнение 1. Вычисление определителей III порядка
- •Упражнение 2. Найти векторное произведение векторов
- •Упражнение 3. Вычислить площадь треугольника с помощью векторного произведения
- •Упражнение 4. Каноническое уравнение прямой.
- •Упражнение 5. Уравнение прямой, проходящей через две точки.
- •Упражнение 6. Параметрическое задание прямой.
- •Упражнение7. Задание прямой в отрезках.
- •Упражнение 8. Общееуравнение прямой.
- •Упражнение 9. М-функция для построения двух прямых линий.
- •Упражнение 11. Уравнение плоскости в отрезках.
- •Упражнение 12. Общее уравнение прямой в пространстве.
Упражнение 11. Уравнение плоскости в отрезках.
Составить уравнение плоскости в отрезках, отсекающей на осях координат OxиOyотрезки, соответственно равные 5 и 7, и проходящей через точкуM0(1,1,2).
Построить плоскость. Построить нормальный вектор (с помощью line)
В координатном пространстве построить черным цветом толщиной 1.5 пункта оси координат, на которых в местах пересечений с плоскостью вывести круговые маркеры синего цвета и обозначить координаты точек пересечения плоскости с осями координат. Вывести обозначение осей и заголовок координатного пространства, в котором написать уравнение плоскости в отрезках.
Решение:
A = 14; B = 10; C = 23; D = -70;
x = [-4 : 1 : 4]; y = [-3 : 1 : 3];
[X, Y] = meshgrid(x, y);
Z = (-A*X-B*Y-D)/C;
grid on, hold on, axis equal
xlabel('x'), ylabel('y'), zlabel('z')
line([-5, 0, 0;5, 0, 0], [0, -5, 0; 0, 5, 0], [0, 0, -5; 0, 0, 5], 'LineWidth', 1.5, 'Color', 'black')
mesh(X, Y, Z)
quiver3(0, 0, 0, A, B, C, 1)
plot3(X, Y, Z, 'ok', 'MarkerSize', 8, 'LineWidth', 2)
surf(X, Y, Z)
quiver3(0, 0, 0, A, B, C, 1)
surfl(X, Y, Z)
quiver3(0, 0, 0, A, B, C, 1)
surface(X, Y, Z)
quiver3(0, 0, 0, A, B, C, 1)
Упражнение 12. Общее уравнение прямой в пространстве.
Найти угол Phi между плоскостями
3 x + 4 y + 6 z – 12 = 0и 6 x + 3 y + 4 z – 12 = 0.
(Угол между плоскостями - это угол между
их нормальными векторами) Построить
линию, являющуюся пересечением двух
плоскостей, заданных общими уравнениями
(построить обе плоскости). Построить
нормальные векторы к плоскостям из
точкиМ0принадлежащей обеим
плоскостям. Найти направляющий вектор
прямой, построить его из точкиМ0.
Составить каноническое уравнение
прямой и вывести его в названии к графику.
Решение:
A1 = 3; B1 = 4; C1 = 6; D1 = -12;
x = [-4 : 1 : 4]; y = [-3 : 1 : 3];
[X, Y] = meshgrid(x, y);
Z = (-A1*X-B1*Y-D1)/C1;
axis3
mesh(X, Y, Z)
quiver3(0, 0, 0, A1, B1, C1, 1)
plot3(X, Y, Z, 'ok', 'MarkerSize', 8, 'LineWidth', 2)
surfl(X, Y, Z)
A2 = 6; B2 = 3; C2 = 4; D2 = -12;
[X1, Y1] = meshgrid(x, y);
Z1 = (-A2*X1-B2*Y1-D2)/C2;
mesh(X1, Y1, Z1)
quiver3(0, 0, 0, A2, B2, C2, 1)
plot3(X1, Y1, Z1, 'ob', 'MarkerSize', 8, 'LineWidth', 2)
surfl(X1, Y1, Z1)
Результат:
phi =
0.7377
Упражнение. 14. Система двух уравнений первой степени с двумя неизвестными.
Задача.Создать М-функцию, осуществляющую построение трех плоскостей по уравнениям, взятыми из системы вида (12), с необходимым количеством аргументов и использовать ее для иллюстрации решений для нижеследующих систем:
изобразить уравнения систем в виде соответствующих плоскостей
сделать предположения по взаиморасположению трех плоскостей в пространстве об отсутствии/наличии решений, количестве решений системы, уравнения которых записаны в системе
вычислить для всех систем определители и сделать выводы о наличии/ отсутствии решений, о количестве решений системы, сравнить выводы с ранее сделанными предположениями.
определить, которая из систем является системой крамеровского типа, решить ее по формулам Крамера; найти решения для других систем.
1)
,
2)
,
3)
,
4)
,
5)
6)
7)
,
8)
,
Решение:
function [] = ex14(A1, B1, C1, D1, A2, B2, C2, D2, A3, B3, C3, D3)
%EX14 OMFG! IT WORKS!
axis3
x = -5 : 1 : 5; y = -5 : 1 : 5;
[X1, Y1] = meshgrid(x, y);
Z1 = (-A1*X1-B1*Y1-D1)/C1;
mesh(X1, Y1, Z1)
quiver3(0, 0, 0, A1, B1, C1, 1)
plot3(X1, Y1, Z1, 'or', 'MarkerSize', 8, 'LineWidth', 2)
surfl(X1, Y1, Z1)
n1=[A1,B1,C1];
[X2, Y2] = meshgrid(x, y);
Z2 = (-A2*X2-B2*Y2-D2)/C2;
mesh(X2, Y2, Z2)
quiver3(0, 0, 0, A2, B2, C2, 1)
plot3(X2, Y2, Z2, 'ob', 'MarkerSize', 8, 'LineWidth', 2)
surfl(X2, Y2, Z2)
n2=[A2,B2,C2];
[X3, Y3] = meshgrid(x, y);
Z3 = (-A3*X3-B3*Y3-D3)/C3;
mesh(X3, Y3, Z3)
quiver3(0, 0, 0, A3, B3, C3, 1)
plot3(X3, Y3, Z3, 'og', 'MarkerSize', 8, 'LineWidth', 2)
surfl(X3, Y3, Z3)
n3=[A3,B3,C3];
d0=[A1 B1 C1;A2 B2 C2;A3 B3 C3];
det0=det(d0)
d1=[D1 B1 C1;D2 B2 C2;D3 B3 C3];
det1=det(d1)
d2=[A1 D1 C1;A2 D2 C2;A3 D3 C3];
det2=det(d2)
d3=[A1 B1 D1;A2 B2 D2;A3 B3 D3];
det3=det(d3)
ans1=det1/det0
ans2=det2/det0
ans3=det3/det0
vec=triVec(n1,n2,n3)
if ((A1*A2+B1*B2+C1*C2==0)&&(A1*A3+B1*B3+C1*C3==0))
disp('Данные плоскости перпендикулярны')
elseif ((A1*A2+B1*B2+C1*C2==1)&&(A1*A3+B1*B3+C1*C3==1))
disp('Данные плоскости параллельны')
else
disp('Данные плоскости пересекаются')
end
end
Результат:
1) >> ex14(1,2,1,4,3,-5,3,1,2,7,-1,8)
det0 =
33.0000
det1 =
33
det2 =
33
det3 =
33.0000
ans1 =
1.0000
ans2 =
1.0000
ans3 =
1
vec=
33.0000
Данные плоскости пересекаются
2)>> ex14(1,-3,-2,-2,1,2,3,-1,2,-1,1,-2)
det0 =
0
det1 =
-5.0000
det2 =
-5
det3 =
5
ans1 =
Inf
ans2 =
Inf
ans3 =
-Inf
vec=
0
Данные плоскости пересекаются
3) >> ex14(1,2,-4,1,2,1,-5,-1,1,-1,-1,-2)
det0 =
0
det1 =
0
det2 =
0
det3 =
0
ans1 =
NaN
ans2 =
NaN
ans3 =
NaN
vec=
0
Данные плоскости пересекаются
4) >> ex14(1,1,-2,-2,3,3,-14,-14,5,5,-18,-18)
det0 =
3.5527e-15
det1 =
1.4211e-14
det2 =
0
det3 =
3.5527e-15
ans1 =
4.0000
ans2 =
0
ans3 =
1
vec=
3.5527e-15
Данные плоскости пересекаются
5) >> ex14(1,1,-2,-2,-1,-1,2,4,2,2,-4,-12)
det0 =
0
det1 =
0
det2 =
0
det3 =
0
ans1 =
NaN
ans2 =
NaN
ans3 =
NaN
vec =
0
Данные плоскости параллельны
Функции использованные в этой лаб. :
Axis3:
grid on, hold on,axis square, axis equal, xlabel('X'),ylabel('Y'),zlabel('Z')
line([-5 5],[0 0],[0 0],'color','blue','linewidth',1)
line([0 0],[-5 5],[0 0],'color','blue','linewidth',1)
line([0 0],[0 0],[-5 5],'color','blue','linewidth',1)
quiver3(0,0,0,1,0,0,1,'color','black','linewidth',2)
quiver3(0,0,0,0,1,0,1,'color','black','linewidth',2)
quiver3(0,0,0,0,0,1,1,'color','black','linewidth',2)
text(5, -0.5, 0.5, 'X')
text(-0.5, 5, 0.5, 'Y')
text(-0.5,-0.5,5, 'Z')
text(-0.5, -0.5, 'O')
triVec:
function [v3] = triVec(a, b, c)
% Возвращает смешанное произведение векторов a, b и c
v3 = det(vertcat(a, b, c));
end
-