Рефераты. Вычисление интеграла методом Ньютона-Котеса (теория и программа на Паскале)

Вычисление интеграла методом Ньютона-Котеса (теория и программа на Паскале)

Министерство Высшего Образования РФ.

Московский Институт Электронной Техники

(Технический Университет)

Лицей №1557

КУРСОВАЯ РАБОТА

“Вычисление интеграла методом

Ньютона-Котеса”

Написал: Коноплев А.А.

Проверил: доцент Колдаев В.Д.

Москва, 2001г.

1.

Введение..................................................................

................... 3

2. Теоретическая

часть...................................................................4

3. Алгоритм

работы....................................................................

....8

4. Код

программы.................................................................

........17

. Модуль

K_graph............................................................17

. Модуль

Graphic.............................................................34

. Модуль

K_unit...............................................................38

. Основная программа....................................................40

5. Тестовые

испытания.................................................................

42

6. Полезные советы по работе с программой.............................42

7. Окна ввода и вывода

программы.............................................

8.

Вывод.....................................................................

.....................43

9. Список

литературы................................................................

...44

Математика - одна из самых древних наук. Труды многих ученых вошли в

мировой фонд и стали основой современных алгебры и геометрии. В конце XVII

в., когда развитие науки шло быстрыми темпами, появились понятия

дифференцирование, а вслед за ним и интегрирование. Многие правила

нахождения неопределенного интеграла в то время не были известны, поэтому

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

методом явился метод Ньютона – поиск интеграла через график функции, т.е.

нахождение площади под графиком, методом прямоугольников, в последствии

усовершенствованный в метод трапеций. Позже был придуман параболический

метод или метод Симпсона. Однако часть ученых терзал вопрос: А можно ли

объединить все эти методы в один??

Ответ на него был дан одновременно двумя математиками Ньютоном и Котесом.

Они вывели общую формулу, названную в их честь. Однако их метод был

частично забыт. В этой работе будут изложены основные положения теории,

рассмотрены различные примеры, приведены таблицы, полученные при различных

погрешностях, и конечно описана работа и код программы, рассчитывающей

интеграл методом Ньютона-Котеса.

Пусть некоторая функция f(x) задана в уздах интерполяции:

[pic] (i=1,2,3…,n) на отрезке [а,b] таблицей значений:

|X0=a |X1 |X2 |… |XN=b |

|Y0=f(x0) |Y1=f(x1) |Y2=f(x2) |… |YN=f(xN) |

Требуется найти значение интеграла [pic] .

Для начала составим интерполяционный многочлен Лагранджа:

[pic]

Для равноотстоящих узлов интерполяционный многочлен имеет вид:

[pic]

где q=(x-x0)/h – шаг интерполяции, заменим подынтегральную функцию f(x)

интерполяционным многочленом Лагранжа:

[pic]

Поменяем знак суммирования и интеграл и вынесем за знак интеграла

постоянные элементы:

[pic]

Так как dp=dx/h, то, заменив пределы интегрирования, имеем:

[pic]

Для равноотстоящих узлов интерполяции на отрезке [a,b] величина шаг

определяется как h=(a-b)/n. Представив это выражение для h в формулу (4) и

вынося (b-a) за знак суммы, получим:

[pic]

Положим, что

[pic]

где i=0,1,2…,n; Числа Hi называют коэффициентами Ньютона-Котеса. Эти

коэффиценты не зависят от вида f(x), а являются функцией только по n.

Поэтому их можно вычислить заранее. Окончательная формула выглядит так:

[pic]

Теперь рассмотрим несколько примеров.

Пример 1.

Вычислить с помощью метода Ньютона-Котаса: [pic]

, при n=7.

Вычисление.

1) Определим шаг: h=(7-0)/7=1.

2)Найдем значения y:

|x0=0 |y0=1 |

|x1=1 |y1=0.5 |

|x2=2 |y2=0.2 |

|x3=3 |y3=0.1 |

|x4=4 |y4=0.0588 |

|x5=5 |y5=0.0384 |

|x6=6 |y6=0.0270 |

|x7=7 |y7=0.02 |

3) Находим коэффициенты Ньютона-Котеса:

H1=H7=0.0435, H1=H6=0.2040, H2=H5=0.0760 ,H3=H4=0.1730

Подставим значения в формулу и получим:

При подсчете с помощью формулы Ньютона-Лейбница получим:

Пример 2.

Вычислить при помощи метода Ньютона-Котеса

[pic] , взяв n=5;

Вычисление:

1) Определим шаг h=(8-4)/5=0.8

2) Найдем значения y:

|x0=0 |y0=-2.61 |

|x1=4.8 |y1=0.42 |

|x2=5.6 |y2=4.34 |

|x3=6.4 |y3=6.35 |

|x4=7.2 |y4=4.38 |

|x5=8 |y5=-0.16 |

3) Находим коэффициенты Ньютона –Котеса:

H0=H5=0.065972 ;H1=H4=0.260417 ;H2=H3=0.173611 ;

4)Подставим значения в формулу и получим:

[pic]

Рассмотрим частные случаи формулы Ньйтона-Котеса.

Пусть n=1 тогда

H0=H1=0.5 и конечная формула примет вид:

[pic] Тем самым в качестве частного случая нашей формулы мы получили

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

Взяв n=3, мы получим

[pic] . Частный случай формулы Ньютона –Котеса – формула Симпсона

Теперь произведем анализ алгоритма и рассмотрим основной принцип

работы программы.

Для вычисления интеграла сначала находятся коэффициенты Ньютона-

Котеса. Их нахождение осуществляется в процедуре hkoef.

Основной проблемой вычисления коэффициентов является интеграл от

произведения множителей. Для его расчета необходимо:

А) посчитать коэффициенты при раскрытии скобок при q

(процедура mnogoclen)

Б) домножить их на 1/n , где n –степень при q (процедура koef)

В) подставить вместо q значение n (функция integral)

Далее вычисляем факториалы (функция faktorial) и перемножаем

полученные выражения (функция mainint). Для увеличения быстроты работы

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

подстановкой их вместо неподсчитанных.

Процедура koef(w: массив;n:целый;var e:массив);

[pic]

Процедура hkoef(n:целый;var h:массив);

[pic]

[pic]

Процедура mnogochlen(n,i:целые;var c:массив );

[pic]

[pic]

Процедура funktia(n:целая;a,b:вещест.;var y:массив;c:вещест.;f:строка);

[pic]

Функция facktorial(n:целый):двойной;

[pic]

Функция integral(w:массив;n:целый):двойной;

[pic]

Функция mainint(n:целый;a,b:вещест.;y:массив):двойной;

[pic]

Основная программа

[pic]

Программа состоит из 8 файлов:

. K_main.exe – файл загрузки основной программы

. K_unit.tpu – модуль вычислительных процедур и функций

. K_graph.tpu – модуль графических процедур

. Graphic.tpu – модуль процедур для построения графика

. Egavga.bgi – файл графической инициализации

. Sans.chr, litt.chr – файлы шрифтов

. Keyrus.com (не обязательно) – файл установки русского языка.

Для работы программы с русским интерфайсом желательно запускать ее в

режиме DOS.

================================================

==========МОДУЛЬ GRAPH==========

================================================

{$N+}

unit k_graph;

interface

uses

crt,graph,k_unit,graphic;

procedure winwin1;

procedure proline(ea:word);

procedure winwwodab(ea:word);

procedure error1(ea:word);

procedure helpwin(ea:word);

procedure error(ea:word);

procedure newsctext(ea:word);

procedure newsc(ea:word);

procedure win1(ea:word);

procedure win2(ea:word;var k:word);

procedure wwodn(ea:word;var n:integer);

procedure wwodab(ea:word;var a,b:real);

procedure wwod1(ea:word;var y:array of double;var n:integer;var a,b:real);

procedure wwod2(ea:word;var ea1:word;var n:integer;var a,b:real;var

st:string);

procedure win3(ea:word;n:integer;a,b:real;int:double;f:string;h:array of

double;var k:word);

implementation

procedure proline(ea:word);

{Проседура полосы процесса}

var

i:integer;

f:string;

c:char;

begin

newsc(ea);

Страницы: 1, 2, 3, 4, 5, 6



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.