Упражнение 8.
Вычислить объем тела, полученного при вращении криволинейной трапеции, ограниченной графиком функции и прямой():
а) относительно оси б) относительно оси
clear; clc; syms x;
% Задаём функцию
y = sin(x);
% Задаём нужный промежуток
x1 = 0; x2 = 2*pi;
% Вычисляем объём тела вращения
V1 = abs(pi*int(y^2,x1,x2));
disp('Объём тела вращения относительно OX:');
disp(['V = ', num2str(double(V1))]);
V2 = abs(2*pi*int(x*y,x1,x2));
disp('Объём тела вращения относительно OY:');
disp(['V = ', num2str(double(V2))]);
% Отрисовка тела вращения относительно OX
clf; grid on; hold on; axis equal;
x = 0:pi/10:2*pi;
y = sin(x);
z = 0*x;
% Задаём границы отрисовки
xmin = -0.5; xmax = 6.5;
ymin = -2.0; ymax = 2.0;
zmin= -1.0;zmax= 2.0
% Рисуем оси координат X и Y
XY(xmin, xmax, ymin, ymax);
% Рисуем ось Z
quiver3(0,0,zmin, 0,0,zmax-zmin, 1, 'black', 'lineWidth', 2);
% Подписываем оси координат
xlabel('X'); ylabel('Y'); zlabel('Z')
% Устанавливаем границы отображения
axis([xmin, xmax, ymin, ymax, zmin zmax]);
for i=1:5:360
L=plot3(x,y,z);
rotate(L,[1 0 0],10+i);
pause(0.01);
end
Объём тела вращения относительно OX:
V = 9.8696
Объём тела вращения относительно OY:
V = 39.4784
Упражнение с1.
В пакете MatLab построить графики функций ,,. Вычислить площадь фигуры, ограниченной графиками всех трех функций. График оформить: сделать одинаковый масштаб по осям, нанести сетку, пометить оси координат, сделать заголовок.
clear; clc; clf; grid on; hold on; axis equal;
% Задаём цвет графиков и линий штриховки
f_color = 'blue'; g_color = 'red'; l_color = 'magenta';
% Задаём функцию f, рисуем искиз
f = 'x^2+1'; set(ezplot(f), 'Color', f_color);
% Задаём функцию g, рисуем искиз
g = '3-x'; set(ezplot(g), 'Color', g_color);
% Задаём границы отрисовки
xmin = -4; xmax = 4;
ymin = -1; ymax = 7;
% Задаём шаг штриховки площади
dx = 0.2;
% Находим точки пересечения функций
X = solve(strcat(f,'=',g));
disp('Точки пересечния функций:');
for i=1:1:length(X)
disp(['x',num2str(i),' = ',num2str(double(vpa(X(i))))]);
end
% Определяем нужный промежуток
x1 = double(vpa(X(1))); x2 = double(vpa(X(2)));
% Рисуем заданную часть графика f
set(ezplot(f,[x1, x2]), 'LineWidth', 2, 'Color', 'blue');
% Рисуем заданную часть графика f
set(ezplot(g,[x1, x2]), 'LineWidth', 2, 'Color', 'red');
% Подписываем название графика
title(strcat('y=',f,' и y=',g));
% Подписываем оси координат
xlabel('x'); ylabel('y');
% Преобразуем строки f и g в функции
f=str2func(strcat('@(x)',f));
g=str2func(strcat('@(x)',g));
% Рисум точки пересечения
plot(x1,f(x1),'.','Color','black');
plot(x2,f(x2),'.','Color','black');
line([x1,x1],[0,f(x1)],'LineStyle','--','Color','black')
line([x2,x2],[0,f(x2)],'LineStyle','--','Color','black')
% Заштриховываем площадь
fori=x1:dx:x2
if f(i) > g(i)
line([i i],[g(i), f(i)], 'Color', l_color);
else
line([i i],[f(i), g(i)], 'Color', l_color);
end;
end;
% Рисуем оси координат
XY(xmin, xmax, ymin, ymax);
% Устанавливаем границы отображения
axis([xmin, xmax, ymin, ymax]);
syms x;
% Считаем площадь
S = abs(int(f,x,x1,x2)-int(g,x,x1,x2));
disp('Площадь полученной фигуры:');
disp(['S = ', num2str(double(vpa(S)))]);
Точки пересечния функций:
x1 = -2
x2 = 1
Площадь полученной фигуры:
S = 4.5