Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Alg_Lang_All.doc
Скачиваний:
11
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

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

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

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

,

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

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

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

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

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

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

Рис. 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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]