Лабораторная работа №2 Упражнение 1.
Построить график функции на отрезкеВычислить площадь фигуры, ограниченной графиком функции и линиями,
clear; clc; clf; grid on; hold on; axis equal; syms x;
% Задаём функцию
f = 'x*cos(x)'; ezplot(f);
% Задаём границы отрисовки
xmin = -1; xmax = 2.5;
ymin = -1; ymax = 1.5;
% Задаём нужный промежуток
x1 = 0; x2 = pi/2;
% Задаём шаг штриховки площади
dx = 0.05;
% Рисуем оси координат
XY(xmin, xmax, ymin, ymax);
% Рисуем заданную часть графика
set(ezplot(f,[x1, x2]), 'LineWidth', 2);
% Устанавливаем границы отображения
axis([xmin, xmax, ymin, ymax]);
% Преобразуем строку в функцию
f=str2func(strcat('@(x)',f));
% Заштриховываем площадь
fori=x1:dx:x2
if f(i) > 0
line([i i],[0, f(i)]);
else
line([i i],[f(i), 0]);
end;
end;
% Вычисляем площадь
S = int(f,x,x1,x2);
disp(['S = ', num2str(double(vpa(S)))]);
S = 0.5708
Упражнение 2.
Построить графики функций иНайти точки пересечения графиков. Вычислить площадь фигуры, ограниченной графиками.
clear;clc;clf;gridon;holdon;axisequal;symsx;
% Задаём цвет графиков и линий штриховки
f_color = 'blue'; g_color = 'red'; l_color = 'magenta';
% Задаём функцию f, рисуем искиз
f = 'x^2+2*x'; set(ezplot(f), 'Color', f_color);
% Задаём функцию g, рисуем искиз
g = '7-4*x-x^2'; set(ezplot(g), 'Color', g_color);
% Задаём границы отрисовки
xmin = -7; xmax = 5;
ymin = -2; ymax = 12;
% Задаём шаг штриховки площади
dx = 0.25;
% Находим точки пересечения функций
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]);
% Считаем площадь
S = abs(int(g,x,x1,x2)-int(f,x,x1,x2));
disp('Площадь полученной фигуры:');
disp(['S = ', num2str(double(vpa(S)))]);
Точки пересечния функций:
x1 = -3.8979
x2 = 0.89792
Площадь полученной фигуры:
S = 36.768
Упражнение 3.
Построить графики функций, заданные параметрически. Вычислить площадь фигуры, ограниченной графиками. Упражнение проделать с использованием MatLab
а) ,;
б) ,.
clear;clc;clf;gridon;holdon;axisequal;
% Задаём границы изменения параметра
t1 = 0; t2 = 2*pi;
% Задаём параметрическую функцию
x = 'cos(t)';
y = 'sin(t)';
% Задаём границы отрисовки
xmin = -1.5; xmax = 1.5;
ymin = -1.5; ymax = 1.5;
% Вычисляем площадь
S = abs(int(y*diff(x),t1,t2));
disp('Площадь фигуры:');
disp(['S = ', num2str(double(S))]);
% Преобразуем строки x и y в функции
x = str2func(strcat('@(t)',x));
y = str2func(strcat('@(t)',y));
% Рисуем график
t = t1 : pi/100 : t2;
X = x(t); Y = y(t);
plot(X,Y,'LineWidth',2)
% Рисуем оси координат
XY(xmin, xmax, ymin, ymax);
% Устанавливаем границы отображения
axis([xmin,xmax,ymin,ymax]);
Площадь фигуры:
S = 3.1416
...
% Задаём границы изменения параметра
t1 = 0; t2 = 2*pi;
% Задаём параметрическую функцию
x = '2*cos(t)';
y = '3*sin(t)';
...
Площадь фигуры:
S = 18.8496