Вычисление определенных интегралов методом прямоугольников
Вычисление высоты прямоугольника по значению подынтегральной функции в правой его границе. Описание алгоритма вычисления определенного интеграла методом прямоугольников. Подсчет определенных интегралов методом трапеций и интеграла по методу Симпсона.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 28.03.2020 |
Размер файла | 89,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1. Вычисление определенных интегралов методом прямоугольников
При вычислении определенного интеграла методом прямоугольников подынтегральная функция 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
k3/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 &&метод средних прямоугольников
end for
?"s=",s," s1=",s1, "s2=", s2
FUNCTION f
PARAMETERS x
RETURN x^2
Пример решения на языке VBA:
Sub sub1()
k = 2
Debug.Print 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
Next
Debug.Print "s=", s, " s1=", s1, "s2=", s2
End Sub
Function f(x)
f = x ^ 2
End Function
2. Вычисление определенных интегралов методом трапеций
Вычисление определенного интеграла по методу трапеций сводится к вычислению площади фигуры, ограниченной осью абсцисс, графиком подынтегральной функции и прямыми x = a и x = b. Будем линейно аппроксимировать функцию f(x) на некотором разбиении отрезка [a,b] на n частей.
Формула для приближенного вычисления интеграла будет иметь вид:
где Si = (fi-1 +fi)*h/2 - площадь i - й трапеции, где h=(b-a)/n.
Если раскрыть скобки в выражениях для Si, то формула для вычисления интеграла примет вид:
Описание алгоритма вычисления определенного интеграла методом трапеций:
n=значение
а=значение
b=значение
h=(b-а)/n
s=0
Цикл по х от а до b-h с шагом h
s=s+(f(x)+f(x+h))*h/2
Конец Цикла
Печать s
Задать Функцию F
Параметры x
Вернуть (выражение подынтегральной функции от x)
Пример решения на языке VFP:
clear
k=2
?k^3/3
n=500
a=0
b=2
h=(b-a)/n
s=0
FOR x=a TO b-h STEP h
s=s+(f(x)+f(x+h))*(h/2)
endfor
s3
FUNCTION f
PARAMETERS x
RETURN x^2
Пример решения на языке VBA:
Sub sub1()
k = 2
Debug.Print k ^ 3 / 3
n = 500
a = 0
b = 2
h = (b - a) / n
s = 0
For x = a To b - h Step h
s=s+(f(x)+f(x+h))*(h/2)
Next
Debug.Print "s=", s
End Sub
Function f(x)
f = x ^ 2
End Function
3. Вычисление интеграла по методу Симпсона
Метод Симпсона применяется для вычисления определенных интегралов вида I=.
Разобьем отрезок [a, b] на n точек.
Представим искомый интеграл в виде суммы интегралов: , здесь
Рассмотрим i-ый отрезок [xi-1, xi]
xi-1/2=(xi+xi-1)/2 - середина i-го отрезка
Представим на отрезке [xi-1, xi] подынтегральную функцию f(x) в виде полинома третьей степени Pi(x). Этот полином должен быть равен значениям подынтегральной функции в точках сетки и в середине отрезка: Pi(xi-1) = f(xi-1) - равенство полинома значению функции на левой границе i-го отрезка, Pi(x i-1/2) = f(xi-1/2), Pi(x i) = f(xi).
Такой полином можно записать, например, следующим образом:
Pi(x)=a+b(x-xi-1)+c(x-xi-1)(x-xi-1/2),
здесь a, b, c - неизвестные коэффициенты, подлежащие определению.
Введем обозначение для ширины i-го отрезка: hi=xi-xi-1,
тогда (x-xi-1/2)= hi/2, а (xi-1/2-x i-1)= hi/2.
Запишем значения полинома на левой, правой границах и в середине i-го отрезка
Pi(x i) = a+b*hi+c*hi*hi/2 = f(x i)= fi (1)
Pi(x i-1) = a = f(x i-1)= fi-1 (2)
Pi(x i-1/2)= f(x i-1/2)= a+b*hi/2 = fi-1/2 (3)
Из соотношения (2) следует a= fi-1,
из выражения (3) легко увидеть, что b= hi (fi-1/2 - fi)/2,
из выражения (1) получаем c=2 (fi-a-b hi)/hi2, подставим в выражение для коэффициента c выражения для коэффициентов a и b, в результате получим:
c=2(fi - fi-1) /hi2 - (2/hi)(2/hi) (fi-1/2- fi-1),
c=2 [fi - fi-1-2 fi-1/2+2 fi-1] /hi2,
c=2 [fi -2 fi-1/2+fi-1] /hi2.
Подставим найденные коэффициенты a, b, c в выражение для полинома:
Pi(x )= fi-1 + 2 (fi-1/2- fi-1)( x -x i-1) /hi + 2 [fi -2 fi-1/2+fi-1] ( x -x i-1) ( x -x i-1/2)/hi2
Перейдем от переменной x к переменной t= x -x i-1
Тогда dt = dx, а при x = x i-1; t=0, при x = x i; t=hi при
x = x i-1/2=x-( xi -x i-1)/2= x-xi/2 -x i-1/2= x- x i-1+x i-1/2-xi/2=t-hi/2
Тогда на i-ом интервале значение интеграла с учетом введенных обозначений, можно записать:
Si==at+bt2/2+ct3/3-ct2hi/4 =
=ahi+bhi2/2+chi3/3-chi3/4 = ahi+bhi2/2+chi3(1/3-1/4)= ahi+bhi2/2+chi3/12 =
= fi-1hi+ (hi2/2)(fi-1/2-fi-1)/(hi2/2)+ (hi3/12)(2/hi2)(fi-2fi-1/2+ fi-1)=
= fi-1hi+ hifi-1/2- hi fi-1+(hi/6)(fi-2fi-1/2+ fi-1)=
= fi-1hi+(hi/6) fi-1 - fi-1 hi+hi fi-1/2-(hi/3)fi-1/2+(hi/6) fi=
=(hi/6) fi-1+ (2hi/3)fi-1/2+(hi/6) fi
Таким образом,
Si= (hi/3)( fi-1/2+2 fi-1/2 +fi/2)
Si - представляет собой значение интеграла на i-ом отрезке. Для получения интеграла на отрезке от a до b, необходимо сложить все Si
Если hi=h для любого i=1,…, N, тогда Si= (hi/3)( fi-1/2+2 fi-1/2 +fi/2) и формулу Симпсона можно упростить
(4)
Формулу (4) можно упростить, для этого раскроем скобки в выражении под знаком суммирования
Выделим из первой суммы значение функции в точке x=a
,
а из последней суммы - значение функции в точке x=b
В результате получаем рабочую формулу Симпсона для равномерной сетки.
Учтем, что , , получим окончательное выражение для формулы Симпсона
(5)
В первой сумме формулы (5) вычисляют сумму значений функции во всех внутренних узлах отрезка [a, b], вторая сумма вычисляет сумму значений функции в средних точках i-ых отрезков.
Если середины отрезков включить в сетку наряду с узлами, тогда новый шаг h0 = h/2 = (b-a)/(2*n), а формула (5) может быть записана в виде:
(6)
Рассмотрим . Значение данного интеграла легко найти аналитически и оно равно -0,75. Метод Симпсона для подынтегральной функции в виде полинома степени 3 и ниже дает точное значение.
Алгоритм вычисления этого интеграла методом Симпсона (формула (5)).
a=0
b=1
n=5
h=(b-a)/n
f0=f1(a)
fn=f1(b)
s1=0
x1=a+h
цикл по i от 1 до n-1
s1=s1+f1(x1)
x1=x1+h
конец цикла
x2=a+h/2
s2=0
цикл по I от 1 до n
s2=s2+f1(x2)
x2=x2+h
конец цикла
s=h*(f0+2*s1+4*s2+fn)/6
Печать s
функция f1
параметры x
возврат x^3+3*x^2 + x*4 - 4
прямоугольник алгоритм интеграл вычисление
Пример программы вычисления интеграла методом Симпсона на языке VFP (по формуле (6)).
CLEAR
SET DECIMALS TO 10
? "I=",simpson(0,2,20)
x=2
? "I=",x^3/3
PROCEDURE simpson
PARAMETERS a,b,n
h=(b-a)/n
S_четные=0
S_нечетные=0
for x=a+h TO b-h STEP 2*h
S_нечетны = S_нечетные + 4*f(x)
NEXT
for x=a+2*h TO b-h STEP 2*h
S_четные = S_четные + 2*f(x)
NEXT
S=f(a)*h/3+(S_четные+S_нечетные)*h/3+f(b)*h/3
RETURN s
FUNCTION f
PARAMETERS x
RETURN x^2
Пример решения на языке VBA:
Процедура проверки правильности вычисления значения интеграла по его первообразной
Sub integ()
x = 2
i = x ^ 3 / 3
Debug.Print i
End Sub
Function f(x)
f = x ^ 2
End Function
Sub simpson()
a = 0
b = 2
n = 30
x = 2
h = (b - a) / n
s_четные = 0
s_нечетные = 0
For x = a + h To b - h Step 2 * h
s_нечетные = s_нечетные + 4 * f(x)
Next Debug.Print "s_нечетные = " & s_нечетные
For x = a + 2 * h To b - h Step 2 * h
s_четные = s_четные + 2 * f(x)
Next Debug.Print "s_четные=" & s_четные
s = h / 3 * (f(a) + (s_четные + s_нечетные) + f(b))
Debug.Print "n=" & n & " s=" & s
End Sub
Размещено на Allbest.ru
Подобные документы
MPI - библиотека передачи сообщений на языке программирования C/C++, ее переносимость, стандартизация, эффективная работа, функциональность. Форматы фактических вызовов MPI. Метод прямоугольников для приближенного вычисления определенного интеграла.
курсовая работа [286,0 K], добавлен 20.06.2012Методы и алгоритмы вычисления определенных интегралов: метод трапеций и метод Симпсона (метод парабол). Оформление функции вычисления заданного определённого интеграла на Visual Basic 6.0. Программный код функции. Создание приложения для вычисления.
курсовая работа [483,6 K], добавлен 25.06.2014Численные методы. Создание программного продукта, использование которого позволит одновременно исследовать два метода вычисления определенных интегралов: метод трапеций и метод Симпсона. Рассмотрен ход вычисления интеграла в виде кода программы.
курсовая работа [834,6 K], добавлен 14.04.2019Математическое описание, алгоритм и программа вычисления определенного интеграла методом трапеций. Расчет n-значений исследуемой функции и вывод их в виде таблицы. Технические и программные средства. Входные и выходные данные, функциональное назначение.
курсовая работа [21,0 K], добавлен 03.01.2010Метод хорд решения нелинейных уравнений. Вычисление интеграла методом Симпсона. Процесс численного решения уравнения. Окно программы расчета корней уравнения методом хорд. Алгоритм вычисления интеграла в виде блок-схемы. Выбор алгоритма для вычислений.
курсовая работа [832,6 K], добавлен 24.07.2012Вычисление определенных интегралов методом Симпсона. Функциональная схема программного комплекса. Реализация функции разбора произвольно заданных математических функций. Методика сохранения графика в графический файл. Интерфейс программного комплекса.
курсовая работа [1,7 M], добавлен 15.06.2009Рассмотрение методов прямоугольников и трапеций как способов вычисления определенных интегралов. Характеристика графика зависимости погрешности от числа разбиений N. Создание приложения по вычислению интеграла с помощью методов приближенного вычисления.
курсовая работа [1,6 M], добавлен 20.06.2012Средства Delphi для разработки Windows приложений. Математическая формулировка задачи, описание программы вычисления определенного интеграла по формуле левых прямоугольников. Руководство пользователя, методика испытаний продукта. Листинг программы.
курсовая работа [178,1 K], добавлен 14.11.2010Аппроксимация линейной, степенной и квадратичной функции. Определение корней уравнения вида f(x)=0 методом половинного деления. Вычисление определенного интеграла методом прямоугольников, трапеций, парабол и Эйлера. Интерполяция формулой Лагранжа.
курсовая работа [1,3 M], добавлен 21.09.2011- Разработка программы, вычисляющей определенный интеграл методом трапеций для подынтегральной функции
Разработка алгоритма решения определенного интеграла методом трапеций для подынтегральной функции и моделирования задачи вынужденных колебаний без затухания. Описание интерфейса программы в среде Delphi и MathCad; идентификаторы, модули и приложения.
курсовая работа [500,4 K], добавлен 28.05.2013