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

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

-31-18.12.2017