Вычисление определенных интегралов методом прямоугольников

При вычислении определенного интеграла методом прямоугольников подинтегральная функция f(x) на интервале интегрирования заменяется полиномом нулевой степени, т.е. константой. Вычисление определенного интеграла по методу прямоугольников сводится к вычислению площади прямоугольника, одна из сторон которого – длина отрезка интегрирования, другая. Будем линейно аппроксимировать функцию f(x) на некотором разбиении отрезка [a,b] на n частей.

Формула для приближенного вычисления интеграла будет иметь вид:

Вычисление определенных интегралов методом прямоугольников - student2.ru ,

где Si = fi*hi – площадь i – го прямоугольника, fi - значение функции в некоторой точке внутри i – го отрезка, hi – ширина этого отрезка. В частном случае, когда все отрезки имеют одинаковую ширину, hi = h =(b-a)/n.

Если высота i – го прямоугольника вычисляется по значению подынтегральной функции в левой границе прямоугольника – этот метод называется методом левых прямоугольников, соответственно при вычислении высоты прямоугольника по значению подынтегральной функции в правой границе прямоугольника называют методом правых прямоугольников.

Метод правых (рис.1) и левых (рис.2) прямоугольников имеет сравнительно высокую погрешность.

Вычисление определенных интегралов методом прямоугольников - student2.ru Вычисление определенных интегралов методом прямоугольников - student2.ru

Рис. 1 Метод правых прямоугольников. Рис.2 Метод левых прямоугольников

Если функция на всем интервале интегрирования возрастает, тогда метод левых прямоугольников дает заниженное значение интеграла, а метод правых прямоугольников – завышенное значение, и наоборот, если функция убывающая, то метод левых прямоугольников дает завышенное, а метод правых прямоугольников – заниженное значение интеграла.

Более низкую погрешность имеет метод средних прямоугольников (рис.3), в котором высота прямоугольников вычисляется по значению подынтегральной функции в середине отрезка интегрирования. В этом случае Si = f((xi+1 - xi )/2)*(xi+1 - xi ) или, в случае равномерной сетки, Si = f(xi +h/2)*h.

Вычисление определенных интегралов методом прямоугольников - student2.ru

Рис. 3 Метод средних прямоугольников.

Описание алгоритма вычисления определенного интеграла методом прямоугольников:

n=значение

а=значение

b=значение

h=(b-а)/n

s=0

s1=0

s2=0

Цикл по х от а до b-h с шагом h

s=s+f(x)*h && метод левых прямоугольников

s1=s1+f(x+h)*h && метод правых прямоугольников

s2=s2+f(x+h/2)*h && метод средних прямоугольников

КонецЦикла

Печать s, s1, s2

ЗадатьФункцию F

Параметры x

Вернуть (выражение подынтегральной функции от x)

Пример решения на языке VFP:

clear

k=2

?k^3/3

n=500

a=0

b=2

h=(b-a)/n

s=0

s1=0

s2=0

FOR x=a TO b-h STEP h

s=s+f(x)*h &&метод левых прямоугольников

s1=s1+f(x+h)*h &&метод правых прямоугольников

s2=s2+f(x+h/2)*h &&метод средних прямоугольников

endfor

?"s=",s," s1=",s1, "s2=", s2

FUNCTION f

PARAMETERS x

RETURN x^2

Пример решения на языке VBA:

Sub sub1()

n = 500

a = 0

b = 2

h = (b - a) / n

s = 0

s1 = 0

s2 = 0

For x = a To b - h Step h

‘метод левых прямоугольников

s = s + f(x) * h

‘метод правых прямоугольников

s1 = s1 + f(x + h) * h

‘метод средних прямоугольников

s2 = s2 + f(x + h / 2) * h

Next

Debug.Print "Метод левых прямоугольников : s= " & s & " : s_test= " & s_test(b - a)

Debug.Print "Метод правых прямоугольников

: s1= " & s1 & " : s_test= " & s_test(b - a)

Debug.Print "Метод средних прямоугольников : s2= " & s2 & " : s_test= " & s_test(b - a)

End Sub

Function f(x)

f = x ^ 2

End Function

Function s_test(x)

s_test = x ^ 3 / 3

End Function

Результат работы программы на VBA:

Метод левых прямоугольников : s= 2,642735936 : s_test= 2,66666666666667

Метод правых прямоугольников : s1= 2,658672 : s_test= 2,66666666666667

Метод средних прямоугольников : s2= 2,650695984 : s_test= 2,66666666666667

Наши рекомендации