Лабораторная работа №6
Лабораторная работа №6
Упражнение 1.
Создать М-функции, строящие графики функций на промежутке ( при ) и показывающую вертикальной штриховкой область, заключенную между графиками. Входные аргументы – функции, границы отрезка и количество отрезков, на которые разбивается отрезок:
а) верхняя и нижняя границы сплошные, б) обе границы пунктирные;
в), г) одна граница сплошная, другая пунктирная.
function u_1(f, g, x, a, b, n, type)
hold on;
grid on;
if (type == 'a')
s = ezplot(f, [a, b]);
set(s, 'LineStyle', '-');
s = ezplot(g, [a, b]);
set(s, 'LineStyle', '-');
dx = (b - a) / n;
for i = (1 : n + 1)
x1 = a + dx * (i - 1);
line([x1; x1], ...
[double(subs(f, x, x1)); double(subs(g, x, x1))]);
end
end
if (type == 'b')
s = ezplot(f, [a, b]);
set(s, 'LineStyle', '--');
s = ezplot(g, [a, b]);
set(s, 'LineStyle', '--');
dx = (b - a) / n;
for i = (1 : n + 1)
x1 = a + dx * (i - 1);
line([x1; x1], ...
[double(subs(f, x, x1)); double(subs(g, x, x1))]);
end
end
if (type == 'c')
s = ezplot(f, [a, b]);
set(s, 'LineStyle', '-');
s = ezplot(g, [a, b]);
set(s, 'LineStyle', '--');
dx = (b - a) / n;
for i = (1 : n + 1)
x1 = a + dx * (i - 1);
line([x1; x1], ...
[double(subs(f, x, x1)); double(subs(g, x, x1))]);
end
end
if (type == 'd')
s = ezplot(f, [a, b]);
set(s, 'LineStyle', '--');
s = ezplot(g, [a, b]);
set(s, 'LineStyle', '-');
dx = (b - a) / n;
for i = (1 : n + 1)
x1 = a + dx * (i - 1);
line([x1; x1], ...
[double(subs(f, x, x1)); double(subs(g, x, x1))]);
end
end
end
Упражнение 2
Используя М-функции из упр. 1, построить области определения функции .
>> syms x;
>> f = x^2 - 1;
>> g = x^2 + 1;
>> u_1(f, g, x, -5, 5, 100, 'a');
Упражнение 3
Построить каркасную поверхность, залитую цветом, с указанием соответствия цветов значениям для функции .
>> [x, y] = meshgrid([0.1 : 0.1 : 2], [0.1 : 0.1 : 2]);
>> z = 1 ./ x + 1 ./ y;
>> surf(x, y, z);
>> colorbar;
Упражнение 4
Для функции из упражнения 3 построить линии уровня и поверхности, состоящие из линий уровня.
>> [x, y] = meshgrid([0.1 : 0.1 : 2], [0.1 : 0.1 : 2]);
>> z = 1 ./ x + 1 ./ y;
>> meshc(x, y, z);
>> contour3(x, y, z);
Упражнение 5
Для функции из упр. 3 построить плоские линии уровня без нанесения и с нанесением значений функции с шагом 0.1. Нанести сетку.
>> [x, y] = meshgrid([0.1 : 0.1 : 2], [0.1 : 0.1 : 2]);
>> z = 1 ./ x + 1 ./ y;
>> contour(x, y, z);
>> grid on;
>> [CMatr, h] = contour(x, y, z);
>> clabel(CMatr, h);
>> grid on;
Упражнение 6.
Для функции из упр. 3 построить плоские линии уровня для 10 значений функции с заливкой промежутков между линиями уровня и шкалой соответствия цветов значениям функции.
>> [x, y] = meshgrid([0.1 : 0.1 : 2], [0.1 : 0.1 : 2]);
>> z = 1 ./ x + 1 ./ y;
>> contourf(x, y, z, 10);
>> grid on;
>> colorbar;
Упражнение 7
Для функции из упр. 3 построить в одном графическом окне каркасную поверхность с заливкой клеток с обзорами вдоль каждой из осей азимутом по умолчанию и углом возвышения 60.
>> [x, y] = meshgrid([0.1 : 0.1 : 2], [0.1 : 0.1 : 2]);
>> z = 1 ./ x + 1 ./ y;
>> surf(x, y, z);
>> view(-37.5, 60);
-