Аппроксимация Площади Прямоугольниками

Рассмотрим площадь фигуры, ограниченной линией f(x) = x^3-5*x^2+x+10 на интервале [-1, 4].

> restart;

> f:=x->x^3-5*x^2+x+10;

f := proc (x) options operator, arrow; x^3-5*x^2+x+...

> plot(f(x), x=-1..4);

[Maple Plot]

Как бы нам исхитриться, да и вычислить площадь фигуры, ограниченной этим графиком (на указанном отрезке)?

Предупреждение: Ни о каком определённом интеграле речи пока не идёт!

Может разбить всю рассматриваемую область на множество узких прямоугольников, одно основание у которых принадлежит оси х , а второе "упирается" в кривую? Одна часть таких прямоугольников принадлежала бы верхней полуплоскости, а другая - нижней. Ничего гениального, но именно в этом и состоит основная идея аппроксимации площади фигуры прямоугольниками. Остаются лишь детали.

Конкретнее: разделим отрезок [-1;4] на определённое число равных суботрезков. Каждый из этих суботрезков (подотрезков, подинтервалов) будем воспринимать как одно из оснований соответствующего прямоугольника. Противоположное основание такого прямоугольника пусть упирается правым концом в график данной функции. Т.е. одна из вершин прямоугольника (правая верхняя или правая нижняя) будет принадлежать графику функции. Мы можем с лёгкостью выполнить указанное построение при помощи специальной Maple-команды rightbox из пакета student .

> with(student);

> rightbox(f(x), x=-1..4, 5);

[Maple Plot]

В данном случае мы используем 5 подинтервалов. (Команде rightbox мы об этом сообщили последним её параметром). Можно с лёгкостью определить сумму площадей всех прямоугольников (отметьте, что основание каждого из них равно 1):

> evalf( abs(f(0)) + abs(f(1)) + abs(f(2)) + abs(f(3)) + abs(f(4)) );

24.

Высота каждого из прямоугольников будет совпадать с абсолютной величиной значения функции на правом конце соответствующего подинтервала).

То же самое можно выполнить и более изящно - с помощью команды sum :

> evalf( sum(1*abs(f(-1 + k)), k=1..5) );

24.

Разумеется, такое приближение является чрезвычайно грубым. Попробуем использовать большее количество прямоугольников. Увеличим их число вдвое (при этом длина каждого подинтервала уменьшится вдвое и станет равной 1/2):

> rightbox(f, x=-1..4, 10);

[Maple Plot]

> sum((1/2)*abs(f(-1 + k*(1/2))), k=1..10);

425/16

Ну и так далее. Чем большее количество прямоугольников мы возьмём, тем точнее их суммарная площадь будет соответствовать истинной. Это очевидно, не правда ли? В десятичной форме нам будет проще следить за изменением результата.

Увеличим число подинтервалов до 25...:

> rightbox(f(x), x=-1..4, 25);

[Maple Plot]

> evalf(sum((1/5)*abs(f(-1 + k*(1/5))), k=1..25));

27.36000000

> rightbox(f(x), x=-1..4, 50);

[Maple Plot]

> evalf(sum((1/10)*abs(f(-1 + k*(1/10))), k=1..50));

27.50250000

> rightbox(f(x), x=-1..4, 100);

[Maple Plot]

> evalf(sum((1/20)*abs(f(-1 + k*(1/20))), k=1..100));

27.55062500

 

 
 
Hosted by uCoz