Вычисление определенных интегралов методом прямоугольников
Вычисление высоты прямоугольника по значению подынтегральной функции в правой его границе. Описание алгоритма вычисления определенного интеграла методом прямоугольников. Подсчет определенных интегралов методом трапеций и интеграла по методу Симпсона.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 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 Методы вычисления определенных интегралов: метод трапеций и метод Симпсона (парабол). Примеры применения, блок-схемы методов трапеций и Симпсона. Разработка программы в объектно-ориентированной среде программирования Lazarus, конструирование интерфейса.
реферат [2,1 M], добавлен 18.04.2011Создание приложения, демонстрирующего решение нелинейного уравнения методом хорд, вычисление интеграла методом Симпсона. Характеристика системы программирования. Разработка мощных систем для работы с локальными и удаленными базами данных с помощью Delphi.
дипломная работа [846,0 K], добавлен 22.09.2012Построение графика функции. Поиск корней уравнения методом половинного деления. Определение минимума функции методом перебора и значения аргумента. Вычисление определенного интеграла на заданном отрезке с использованием метода правых прямоугольников.
контрольная работа [316,1 K], добавлен 13.11.2014Разработка программы, которая по заданной самостоятельно функции будет выполнять интегрирование методом прямоугольников. Блок-схема алгоритма вычисления интеграла (функция rectangle_integrate). Экспериментальная проверка программы, ее текст на языке C.
курсовая работа [232,0 K], добавлен 27.05.2013Разработка программы, выполняющей интегрирование методом входящих прямоугольников с кратностями и методом Симпсона. Расчет определённого интеграла приближенным и точным методами. Оценка погрешности при вычислении приблизительного значения интеграла.
контрольная работа [71,7 K], добавлен 13.02.2016Решение циклических программ и программ вычисления функции с условием. Уравнение в табличном редакторе Microsoft Excel и в Turbo Pascal. Вычисление определенного интеграла методом прямоугольников, трапеции, Симпсона. Линейные и нелинейные уравнения.
курсовая работа [233,6 K], добавлен 27.12.2009Методика и основные этапы процесса поиска уравнения по методу половинного деления, его сущность и содержание, анализ результатов. Порядок вычисления экстремумов функции методом перебора. Расчет определенного интеграла по методу правых прямоугольников.
контрольная работа [200,9 K], добавлен 20.01.2014Требования к аппаратным ресурсам персонального компьютера. Расчет цены и прибыли на программное средство. Процедура нахождения значения интеграла методом Симпсона, трапеции, прямоугольников. Формы для ввода и вывода данных с доступным интерфейсом.
дипломная работа [7,4 M], добавлен 11.06.2012Теория вычисления интеграла и описание используемых численных методов (метод левых и правых прямоугольников, метод трапеции, метод Симпсона). Расчеты в пакете Matlab. Отчет о результатах вычисления в MS Excel. Описание приложения созданного в Delphi.
курсовая работа [2,8 M], добавлен 18.08.2014Особенности метода численного интегрирования функции одной переменной. Замена на каждом элементарном отрезке подынтегральной функции на многочлен первой степени (линейную функцию). Разработка алгоритма программы, ее листинг. Пример работы программы.
контрольная работа [217,9 K], добавлен 14.07.2012