
подгон 2018 (легендарный) / 1 курс-20241122T213915Z-001 / _4.1_ Комп Матан / 2 семестр / 6 / 6
.docx
Упражнение
1. Построить
каркасную поверхность, залитую цветом,
с указанием соответствия цветов значениям
для функции
.
clc
clear
[x,y] = meshgrid(0.1:0.05:2,0.1:0.05:2);
z = 1./x + 1./y;
surf(x,y,z);
colorbar
Упражнение 2. Для функции из упражнения 1 построить линии уровня и поверхности, состоящие из линий уровня.
clc; clear
[x,y] = meshgrid(0.1:0.05:2,0.1:0.05:2);
z = 1./x + 1./y;
figure(1);
surfc(x,y,z); colorbar;
figure(2);
contour3(x,y,z); colorbar;
|
|
Упражнение 3. Для функции из упр. 1 построить плоские линии уровня без нанесения и с нанесением значений функции с шагом 0.1. Нанести сетку.
clc; clear
[x,y] = meshgrid(0.1:0.05:2,0.1:0.05:2);
z = 1./x + 1./y;
figure(1);
contour(x,y,z); colorbar;
figure(2);
V = 0.1:0.1:2; %Дальше некрасиво
[CMatr,h]=contour(x, y, z, V);
clabel(CMatr,h); colorbar; grid on
|
|
Упражнение 4. Для функции из упр. 1 построить плоские линии уровня для 10 значений функции с заливкой промежутков между линиями уровня и шкалой соответствия цветов значениям функции.
clc; clear
[x,y] = meshgrid(0.1:0.05:2,0.1:0.05:2);
z = 1./x + 1./y;
contourf(x,y,z, 10); colorbar;
Упражнение 5. Для функции из упражнения 1 построить в одном графическом окне каркасную поверхность с заливкой клеток с обзорами вдоль каждой из осей азимутом по умолчанию и углом возвышения 60.
Упражнение 6. Построить пунктирную линию красного цвета, задаваемую уравнениями
clear; clc
hold on; grid on
t = 0:0.01:100;
x = exp(-abs(t-50)-50) .* cos(t);
y = exp(-abs(t-50)-50) .* sin(t);
z = t;
plot3(x,y,z,'r:');
Упражнение 7. Построить прозрачную каркасную поверхность
clear; clc
u = [-pi/2:0.1:pi/2]';
v = 0:0.1:2*pi;
x = cos(u) * cos(v);
y = 2 * cos(u) * sin(v);
z = sin(u) * ones(size(v));
surf(x,y,z); colorbar; hidden off
Индивидуальные задания
Задание 1. Построить каркасную поверхность, залитую цветом, с указанием соответствия цветов значениям функции из Вашего варианта большого домашнего задания (БДЗ, часть 2), №№ 4.1 – 4.29.
Задание 2. Для функции из задания 1 построить линии уровня и поверхности, состоящие из линий уровня.
Задание 3. Для функции из задания 1 построить плоские линии уровня без нанесения и с нанесением значений функции с шагом 0.1. Нанести сетку.
Задание 4. Для функций из задания 1 построить в одном графическом окне две подобласти. В одной построить каркасную поверхность с заливкой клеток с обзорами вдоль каждой из осей азимутом 60 и углом возвышения 30, а в другой область определения данной функции.
clear; clc;
x = 0:0.01:2; y = 0:0.1:2;
[x,y]=meshgrid(x,y);
z = x.^4+y.^4-x.^2-2.*x.*y-y.^2;
figure(1)
title('#1')
hold on; surf(x,y,z); colorbar
figure(2)
title('#2.1')
hold on; meshc(x,y,z); colorbar
figure(3)
title('#2.2')
hold on; contour3(x,y,z); colorbar
figure(4)
title('#3.1')
hold on; contour(x,y,z); colorbar
figure(5)
title('#3.2')
hold on; V = -1.5:0.1:0;%Дальше некрасиво
[CMatr,h]=contour(x, y, z, V);
clabel(CMatr,h); colorbar; grid on
figure(6)
hold on; title('#4') ;surf(x,y,z); view([60, 30]);
colorbar
|
|
|
|
|
|
clear; clc;
x = 0:0.1:2; y = 0:0.1:2;
[x,y]=meshgrid(x,y);
z = x.^3+6.*x.^2.*y+9*x.*y.^2-8.*y.^3+2.*x.^2+12.*x.*y+24.*y.^2;
figure(1)
title('#1')
hold on; surf(x,y,z); colorbar
figure(2)
title('#2.1')
hold on; surfc(x,y,z); colorbar
figure(3)
title('#2.2')
hold on; contour3(x,y,z); colorbar
figure(4)
title('#3.1')
hold on; contour(x,y,z); colorbar
figure(5)
title('#3.2')
hold on; V = -1.5:0.1:0;%Дальше некрасиво
[CMatr,h]=contour(x, y, z, V);
clabel(CMatr,h); colorbar; grid on
figure(6)
hold on; title('#4') ;surf(x,y,z); view([60, 30]);
colorbar
|
|
|
|
|
|
Как можно построить область пересечения двух поверхностей, отрезав лишние части поверхностей? Приведите пример.
clear; clc;
X = 0:0.05:2; Y = 0:0.05:2;
[x,y]=meshgrid(X,Y);
z1 = x.^3+6.*x.^2.*y+9*x.*y.^2-8.*y.^3+2.*x.^2+12.*x.*y+24.*y.^2;
% surf(x,y,z1);
z2 = x.^4+y.^4-x.^2-2.*x.*y-y.^2+50;
hold on; view([30, 30]);axis([0 2 0 2 0 250]); grid on;
% surf(x,y,z2);
dz = z1 - z2;
C = contours(x, y, dz, [0 0]);
xN = C(1, 2:end);
yN = C(2, 2:end);
zN = interp2(x, y, z1, xN, yN);
line(xN, yN, zN, 'Color', 'm', 'LineWidth', 4);
|
|