74243

Алгоритмы вычисления определенных интегралов

Лекция

Информатика, кибернетика и программирование

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

Русский

2014-12-30

1.27 MB

11 чел.

Лекция 5

Алгоритмы вычисления определенных интегралов.

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

называют площадь криволинейной трапеции, ограниченную подынтегральной кривой, осью абсцисс и ординатами f(a) и f(b). На рис. 5.1 данная площадь заштрихована.

 

 

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

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

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

где          

   

Аналогичная формула прямоугольников получится и в том случае, если брать для интегральной суммы значения функции f(x) не в левых, а в правых концах участков разбиения:

В результате расчетов по формулам «слева» и «справа» получается приближенное значение интервала (с недостатком или с избытком), которое может отличаться от действительного на некоторую величину, называемую ошибкой ограничения. Эта ошибка определяется величиной остаточного члена ряда Тейлора:

В качестве примера на рис. 5.3 приведена схема алгоритма, реализующего вычисления по формуле прямоугольников «слева». Увеличение числа участков разбиения n приводит к повышению точности вычисления интеграла. Следует обратить внимание также на формирование условия выхода из цикла на рис. 5.3, добавление половины шага h в условие необходимо для избежания возможного сравнения на равенство двух вещественных значений x и bh.

Определение интеграла по формуле прямоугольников

С целью повышения точности вычислений по методу прямоугольников значение подынтегральной функции целесообразно взять не на концах участков, а в их середине. В результате  получим формулу средних:

,

где  i=1,2,…,n. Остаточный член формулы средних  где M = max |f "(v)| v[a,b].

Данный метод вычисления определенного интеграла обеспечивает более высокую точность при равном n по сравнению с формулами прямоугольников. Формулу средних рекомендуется использовать для достаточно гладких функций f(x), не содержащих высокочастотных колебаний на отдельных интервалах интегрирования. На рис. 5.4 показана схема алгоритма вычисления интеграла по формуле средних.

Формулы Ньютона-Котеса

Если подынтегральную функцию заменить каким-либо интерполяционным многочленом, то получим квадратурные формулы вида:

где хк – выбранные узлы интерполяции; Ak – коэффициенты, которые зависят от выбранных узлов, но не зависят от вида функции f(x); R – остаточный член, определяющий максимальную ошибку при использовании квадратурной формулы; k=0, 1, …, n.

Разбивая отрезок интегрирования [a, b] на n равных частей системой точек

xk = x0+kh; k=0, 1, …, n;  x0=a;  xn=b

и вычисляя подынтегральную функцию в полученных  узлах

yk=f(xk);  k=0, 1, …, n,

получают квадратурные формулы для равноотстоящих узлов. Эти формулы называют формулами Ньютона-Котеса. Наиболее удобны при численном интегрировании интерполяционные многочлены невысоких порядков, при использовании которых получают достаточно простые составные формулы.

Формула трапеций. 

Формула трапеций получается в случае использования интерполяционного многочлена 1-го порядка:

Остаточный член имеет вид:  Использование формулы трапеций при вычислении определенного интеграла приводит к ошибке  где

Для нахождения приближенного значения определенного интеграла по формуле трапеций можно использовать алгоритм, схема которого представлена на рис. 5.5.

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

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

Используя интерполяционный многочлен 2-го порядка (параболу) получают формулу численного интегрирования – формулу Симпсона:

где  

На рис. 5.6 показана схема алгоритма, реализующего вычисления по формуле парабол. При реализации формулы число узлов обязательно нечетно, т. е. число участков разбиения интервала интегрирования должно быть четным: n=2m. В алгоритме использован прием, при котором число повторений цикла уменьшается в два раза, т. е. дважды реализуется модификация параметра цикла, что уменьшает время выполнения алгоритма. Метод Симпсона считается одним из наиболее применяемых методов численного интегрирования, обеспечивающим достаточно хорошую точность вычислений.

Алгоритм вычисления  суммы бесконечного ряда

Характерным примером итерационных циклов является задача вычисления суммы бесконечного ряда:

где tn(x) – слагаемое, зависящее от параметра x (в общем случае) и номера n. Вычисляемая последовательность

где  – частная сумма.

Для контроля погрешности можно использовать последовательность

где tn(x) = sn(x) – sn-1(x) – слагаемые ряда n.

.

Условие выхода из итерационного цикла (справедливо при знакопеременном ряде {tn(x)}):

| tn ( x ) | < .

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

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

то общая схема итерационного алгоритма для вычисления бесконечной суммы показана на рис. 5.10, б.

Например, тригонометрическая функция sin(x) может быть представлена в виде бесконечной суммы

В данном случае

тогда

Теперь можно определить

Начальное значение слагаемого находим по формуле

Алгоритмы нахождения корней уравнений.

Решение алгебраических уравнений численными методами состоит из двух этапов:

отделение корней, т. е. отыскание достаточно малых интервалов
(
a, b), в каждом из которых заключен один и только один корень;

вычисление (уточнение) корня с заданной погрешностью.

Рассмотрим более подробно алгоритмы для уточнения корней.

Метод половинного деления

Метод половинного деления является более универсальным, всегда приводит к искомому результату, хотя и требует большого объема вычислений. Для нахождения корня уравнения f(x)=0, принадлежащего отрезку [a, b], делим отрезок пополам z = (a+b)/2 (см. рис. 5.12,а). Далее рассмотрим значения функции y = f(x) в точках x = a  и x = z. Если значения f(a) и f(z) разных знаков, т. е. f(a) f(z) < 0, то исходный отрезок [a, b] уменьшим в два раза путем переноса точки x = b в точку x = z. Новый отрезок [a, b] вновь делим пополам (см. рис. 5.12,б) и так как f(a) f(z) < 0, то переносим точку x = a  в точку x = z, уменьшая [a, b] в два раза. Повторяем указанную процедуру до тех пор, пока длина отрезка, содержащего корень, не станет меньше заданной погрешности ε. Любое значение  является искомым значением корня, однако на практике в качестве корня выбирают середину отрезка, т. е.  x = (a+b)/2.

При организации итерационного цикла вычисляется последовательность отрезков

[a0, b0],  [a1, b1],  …,  [an, bn], … ,

для которой

Для контроля точности вычисления корня можно использовать следующую последовательность значений

поэтому условие выхода из цикла

или условие продолжения цикла

Схема алгоритма уточнения корня алгебраического уравнения методом половинного деления приведена на рис. 5.13. В результате выполнения такого алгоритма выводится значение корня (с заданной погрешностью), а также значение функции f(x), которое очень близко к нулевому значению и может быть использовано для контроля правильности полученного результата.

      y

                                                                                                             

f(z)

  1.                 a    

                            x*           z                 b          

f(a)      

                              a)

y

                                                                            y=f(x)

 0                 a       x*

f(z)                       z              b                        x

f(a)

                             b)

Метод касательных

Для обеспечения сходимости метода касательных (метода Ньютона) необходимо, чтобы производные f' (x) и f" (x) были определены, непрерывны и сохраняли постоянные знаки на отрезке [a, b]. На рис. 5.14 представлена геометрическая интерпретация метода Ньютона.

Выберем некоторую точку x0 на отрезке [a, b] и проведем касательную к кривой y=f(x) в точке P0(x0, y0). Ее уравнение

y = y0 + f' (x0)(xx0),

где y0 = f(x0).

Новое приближение корня х1, равно абсциссе точки пересечения касательной с осью абсцисс, т. е.

y

y0

y1

y2

Выберем некоторую точку x0 на отрезке [a, b] и проведем касательную к кривой y=f(x) в точке P0(x0, y0). Ее уравнение

y = y0 + f' (x0)(xx0),

где y0 = f(x0).

Новое приближение корня х1, равно абсциссе точки пересечения касательной с осью абсцисс, т. е.

Проведя касательную через точку P1(x1, y1), получим второе приближение корня x2. Вычисление приближений корня по формуле

продолжается до выполнения неравенства

,

где ε – абсолютная погрешность определения корня уравнения.

Начальное приближение х0 выбирают таким образом, чтобы выполнялось условие

В противном случае сходимость метода Ньютона не гарантируется. На практике выбирают x0 = a или x0 = b, в зависимости от того, в какой из этих точек выполняется указанное условие. Схема алгоритма уточнения корня методом Ньютона (методом касательных) приведена на рис. 5.15.

Алгоритмы обработки массивов

Определение минимального элемента в массиве.

Задача нахождения минимума (или максимума) в массиве из N элементов может быть решена последовательным сравнением "текущего" минимального (максимального) значения со значением очередного элемента массива и "запоминанием" при необходимости нового значения. Схема алгоритма показана на рис. 5.18.

 

Рис. 5.18  Алгоритм определения минимального элемента массива

Сортировка массива. 

Допустим, необходимо упорядочить массив из N элементов по возрастанию. Задача решается последовательным сравнением пар соседних элементов массива и при необходимости их перестановкой. Сравнение происходит при  N-1 проходах по всему массиву. Схема алгоритма показана на рис. 5.19.

Рис. 5.19  Алгоритм сортировки массива методом пузырька

Произведение матриц

Пусть необходимо найти произведение двух матриц А и В размером 2х3 и 3х3 соответственно. Элементы результирующей матрицы С (размером 2х3) определяются по формуле

где n – число строк матрицы А;

     m – число столбцов матрицы А и число строк матрицы В;

     p – число столбцов матрицы В.

В общем случае результирующая матрица имеет размер np. Схема алгоритма умножения двух матриц представлена на рис. 5.20.

Рис. 5.20  Алгоритм умножения матриц


Алгоритм обработки строк

Пусть дана строка символов, группы символов в ней между одним или несколькими пробелами считаются словами. Подсчитать, сколько слов содержит строка, и вывести каждое из них на отдельной строке.

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

Схема алгоритма решения данной задачи приведена на рис. 5.21. При этом алгоритм удаления пробелов в начале строки оформлен в виде процедуры, а выделения слова – в виде функции.

Рис. 5.21  Алгоритм подсчета количества слов в строке и их вывод

Алгоритм обработка записей

Пусть имеются некоторые данные о заводах города, сведенные в следующую таблицу:

Завод

Основные сведения

Зани-маемая площадь

Объем выпускаемой продукции

Количество обслуживающего персонала

по плану

факти-чески

с высшим образованием

со средним образованием

АЗЛК

ВАЗ

ЗИЛ

ИЖ

800

396

203

544

484,9

348,5

384,3

667,3

484,9

348,7

399,4

701,3

282

130

448

396

204

669

125

157

Всего

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

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

Рис. 5.22  Алгоритм обработки массива записей

PAGE  16


y=f(x)

a

     y

  x

 b

Рис. 5.1  Геометрический смысл

определенного интеграла

0    a=x0     x1        x2      …       b=xn   x

y=f(x)

y1

y2

Обязательные параметры отсутствуют или неверны.Рис. 5.2  Иллюстрация метода прямоугольников

 y

Начало

a, b, n

EMBED Equation.3  

s:=s+f(x)

x:=x+h

x:=a

EMBED Equation.3  

s:=sh

s

Нет

Да

онец

Рис. 5.3  Алгоритм вычисления определенного

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

Начало

Ввод a, b, n

EMBED Equation.3  

s:=s+f(x)

x:=x+h

EMBED Equation.3  

EMBED Equation.3  

s:=sh

Вывод s

Конец

Нет

Да

Рис. 5.4  Алгоритм вычисления определенного

интеграла по формуле средних.

Начало

Ввод a, b, n

EMBED Equation.3  

x:=a+h

s:=s+f(x)

x:=x+h

EMBED Equation.3  

s:=sּh

Вывод s

Конец

Нет

Да

Рис. 5.5  Алгоритм вычисления определенного

интеграла по формуле трапеций

Начало

Ввод a, b, n

EMBED Equation.3  

x:=a+h

s:=s+4f(x)

x:=x+h

s:=s+2f(x)

x:=x+h

EMBED Equation.3  

EMBED Equation.3  

Вывод s

Конец

Нет

Да

Рис. 5.6  Алгоритм вычисления определенного

интеграла по формуле Симпсона

Начало

Ввод x, ε

EMBED Equation.3  

|t|>ε

t:=tn(x)

s:=s+t

n:=n+1

Конец

Вывод s

Начало

Ввод x xx, ε

EMBED Equation.3  

|t|>ε

t:=n(x)

s:=s+t

n:=n+1

Вывод s

Конец

Нет

Да

Нет

Да

Рис. 5.10  Схемы алгоритмов итерационных циклов,

реализующих вычисление бесконечной суммы

б)

а)

y=f(x)

Рис. 5.12  Графическая иллюстрация

метода половинного деления

Начало

Ввод a, b, ε

|b-a| ≥ ε

EMBED Equation.3  

f(z)f(a) < 0

a:=z

b:=z

EMBED Equation.3  

Вывод x, f(x)

Конец

Нет

Да

Да

Нет

Рис. 5.13  Схема алгоритма уточнения корня

методом половинного деления

Рис. 5.14 Геометрическая интерпретация

метода касательных

      0                 a                   x*         x2           x1                x0          b   x

y=f(x)

Начало

Ввод a, b, ε

f(a)f"(a) > 0

f(b)f"(b) > 0

x:=a

x:=b

"ошибка"

h:=f(x)/f'(x)

x:=x-h

|h| < ε

Вывод x, f(x)

Конец

Нет

Да

Нет

Да

5.15  Схема алгоритма уточнения корня методом касательных


 

А также другие работы, которые могут Вас заинтересовать

77318. Практика разработки видов отображения в системах компьютерной визуализации 27 KB
  Вид отображения определим как абстракцию графического вывода содержащую спецификацию визуальных объектов их атрибутов их взаимо-расположения возможной динамики и способов взаимодействия. В процессе визуализация модельные сущности связываются с видом отображения так что суть поведение особенности и атрибуты модельных сущностей представляются в конкретном графическом выводе точно идентифицирующем все визуальные свойства в которые переходят атрибуты соответствующего вида отображения. Можно говорить о видах отображения как о стандартных...
77319. СТРУКТУРА F-ЗАМЫКАНИЙ В СРЕДЕ RiDE 36.5 KB
  Перечисление наборов глобальных имён блоков данных которое предполагалось давать в неком подобии дизъюнктивной нормальной формы: 1ый набор имён или 2ой набор. Такой момент наступает когда в ходе вычисления сформированы все блоки данных имена которых перечислены в одном из указанных наборов назовём такой набор готовым. C; аргументами для этого запуска служат уже сформированные блоки данных поименованные некоторым готовым набором. Мы называем блоки данных с перечисленными в S именами предпосылками для активации.
77320. Structure of f-closures of RiDE environment 29 KB
  Bkhterev The distributed computtion support system we propose RiDE is built round the simple formlism of fclosure f is from future. Originlly we imgine fclosure consisting of five following fields. This field defines the moment in time fter which the system my ctivte the given fclosure.
77321. ТРЕХМЕРНАЯ ВИЗУАЛИЗАЦИЯ В СИСТЕМЕ ИСКУССТВЕННОГО ВИДЕНИЯ ДЛЯ ПИЛОТОВ МАЛОЙ АВИАЦИИ 1.39 MB
  Это вызвано тем что данные летательные аппараты перемещаются на относительно небольшой высоте в области действия природного ландшафта и искусственных высотных объектов и управляются пилотом в ручном режиме а не на автопилоте. На основе этих данных пилотажный монитор должен в реальном режиме времени строить трёхмерное представление о реальной картине окружающей самолёт. Экран пилотажного монитора Программа пилотажного монитора получает данные от сервера данных о текущих параметрах полёта и в режиме реального времени строит соответствующее...
77322. C89 COMPILER FOR MCp 0411100101 CPU 21.5 KB
  Produced by «MultiClet» Corp. high performance processors of MCp family are based on original EPIC (Explicitly Parallel Instruction Computing) architecture. Traditional EPIC solutions with very long instruction words (VLIW) suggest to compose programs from words containing independent commands for different functional units
77323. DEVELOPMENT OF ENVIRONMENT FOR GRIDS VISUALIZATION 22 KB
  Strodubtsev IMM UrB RS UrFU Ekterinburg In our reserch tem during the lst decde the tools for grids visuliztion re designed nd developed. The second one is the visuliztion of grids which re results of lrge computing. Now the new system for visuliztion of grids t stge of genertion is under development.
77324. ЭФФЕКТИВНОСТЬ НИТЕЙ В СИСТЕМАХ С ОБЩЕЙ ПАМЯТЬЮ 29.5 KB
  Бахтерев ИММ УрО РАН Екатеринбург Традиционно считается что в системах с общей памятью разбивать вычисление на параллельно выполняющиеся задачи эффективней при помощи нитей а не процессов. Когда же уточняют то говорят о контексте исполнения связанным с TLB Trnsltion Lookside Buffer специальный кэш ускоряющий трансляцию виртуальных адресов в физические который нужно сбрасывать и заполнять новыми значениями при переключении процессора на исполнение разных процессов и которой можно не изменять при переключении на исполнение нитей одного...
77325. The RiDE.C microkernel 12 KB
  C microkernel M. t this point it is resonble to begin with description of microkernel RiDE. nd microkernel rchitecture ssumes to orgnize services mnging resources in the form of userlevel servers which re ccessed over interprocess communiction mchinery IPC nd over the stck of protocols built on IPC.C microkernel re determined by bsic intertsk exchnge protocol – RiDE.
77326. RiDE.L – programming language 12 KB
  Kosenko IMM UrB RS USU Yekterinburg With time ti is getting hrder to develop softwre for highperformnce computing HPC; the min reson for tht is the complexity grow of hrdwre rchitectures mthemticl models dt structures nd lgorithms complexity which re pplied in lrge computtions. The lnguges with clssicl compiler rchitectures trditionlly used in HPC: C C FORTRN Pscl – re not so good t hndling tht complexity s lter lnguges: Hskell JvScript Oz Ruby. The best in tht Hskell GHC even when breking hrmonious syntx nd semntic...