.

Приближенное вычисление определенных интегралов

Язык: русский
Формат: реферат
Тип документа: Word Doc
2 257
Скачать документ

Магнитогорский Государственный технический университет

Приближенное вычисление определенных интегралов.

Формула парабол (формула симпсона)

Подготовил: Студент группы ФГК-98 Григоренко М.В.

Магнитогорск –1999

Н

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

Формула парабол (формула Симпсона)

Разделим отрезок [a,b] на четное число равных частей n = 2m. Площадь
криволинейной трапеции, соответствующей первым двум отрезкам [x0,x1] и
[x1,x2] и ограниченной заданной кривой y = f(x), заменим площадью
криволинейной трапеции, которая ограничена параболой второй степени,
проходящей через три точки M(x0,y0), M1(x1,y1), M2(x2,y2) и имеющей
ось, параллельную оси Оу (см. рисунок). Такую трапецию будем называть
параболической трапецией.

Уравнение параболы с осью, параллельной оси Оу, имеет вид

y = Ax2 + Bx + C.

Коэффициенты А, В и С однозначно определяются из условия, что парабола
проходит через три заданные точки. Аналогичные параболы строим и для
других пар отрезков. Сумма площадей параболических трапеций и даст
приближенное значение интеграла.

Вычислим сначала площадь одной параболической трапеции.

Если криволинейная трапеция ограничена параболой

y = Ax2 + Bx + C,

осью Ох и двумя ординатами, расстояние между которыми равно 2h, то ее
площадь равна

S = h/3 (y0 + 4y1 + y2), (?)

где у0 и у2 – крайние ординаты, а у1 – ордината кривой в середине
отрезка

Пользуясь формулой (?), мы можем написать следующие приближенные
равенства (h=?x):

. . . . . . . . . . . . . . . . . . . . . .

Складывая левые и правые части, получим слева искомый интеграл, справа
его приближенное значение:

Это и есть формула Симпсона. Здесь число точек деления n = 2m
произвольно, но чем больше это число, тем точнее сумма в правой части
равенства дает значение интеграла.

Примеры

Было дано задания вычислить приблизительно следующие определенные
интегралы:

И

Для вычисления данных интегралов мною были написаны специальные
программы на языке Visual Basic for Application. (тексты программ
приведены в приложении).

Программы осуществляют запрос количества отрезков, на которые следует
разбить заданный отрезок. Структура программ универсальна и применима
для вычисления любых определенных интегралов. Для этого необходимо
изменить границы определенного интеграла в строках (*) и (**), а также
подынтегральную функцию в строке (***).

Были получены следующие ответы:

При n = 20.

Приложение

‘Приближенное вычисление интегралов по формуле парабол

‘(формула Симпсона)

Option Explicit

Sub integral_1()

Dim i As Integer, n As Integer

Dim t As Boolean

Dim b As Double, a As Double

Dim chet As Double, nechet As Double

Dim delta As Double, result As Double

a = 0
‘(*)

b = 1
‘(**)

t = True

Do

n = InputBox(“Введите четное число n”, “Запрос”)

If n Mod 2 = 0 Then t = False

Loop While t

delta = (b – a) / n

chet = 0

nechet = 0

For i = 1 To n – 1

If (i Mod 2) = 0 Then

chet = chet + (f(a + (delta * i)))

Else

nechet = nechet + (f(a + (delta * i)))

End If

Next i

result = (delta / 3) * (f(a) + f(b) + (2 * chet) + (4 * nechet))

MsgBox result, vbInformation, “Результат”

End Sub

Function f(x) As Double

f = Sqr(1 + (x ^ 4))
‘(***)

End Function

‘Приближенное вычисление интегралов по формуле парабол

‘(формула Симпсона)

Option Explicit

Sub integral_1()

Dim i As Integer, n As Integer

Dim t As Boolean

Dim b As Double, a As Double

Dim chet As Double, nechet As Double

Dim delta As Double, result As Double

a = 2
‘(*)

b = 5
‘(**)

t = True

Do

n = InputBox(“Введите четное число n”, “Запрос”)

If n Mod 2 = 0 Then t = False

Loop While t

delta = (b – a) / n

chet = 0

nechet = 0

For i = 1 To n – 1

If (i Mod 2) = 0 Then

chet = chet + (f(a + (delta * i)))

Else

nechet = nechet + (f(a + (delta * i)))

End If

Next i

result = (delta / 3) * (f(a) + f(b) + (2 * chet) + (4 * nechet))

MsgBox result, vbInformation, “Результат”

End Sub

Function f(x) As Double

f = 1 / (Log(x))
‘(***)

End Function

PAGE

PAGE 6

Нашли опечатку? Выделите и нажмите CTRL+Enter

Похожие документы
Обсуждение

Оставить комментарий

avatar
  Подписаться  
Уведомление о
Заказать реферат
UkrReferat.com. Всі права захищені. 2000-2019