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

2016-07-31СтудИзба

Описание файла

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

Онлайн просмотр документа "61979"

Текст из документа "61979"

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

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

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

Лицей №1557

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

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

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

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

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

Москва, 2001г.


  1. Введение..................................................................................... 3

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

  3. Алгоритм работы........................................................................8

  4. Код программы.........................................................................17

  • Модуль K_graph............................................................17

  • Модуль Graphic.............................................................34

  • Модуль K_unit...............................................................38

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

  1. Тестовые испытания.................................................................42

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

  3. Окна ввода и вывода программы.............................................

  4. Вывод..........................................................................................43

  5. Список литературы...................................................................44


Математика - одна из самых древних наук. Труды многих ученых вошли в мировой фонд и стали основой современных алгебры и геометрии. В конце XVII в., когда развитие науки шло быстрыми темпами, появились понятия дифференцирование, а вслед за ним и интегрирование. Многие правила нахождения неопределенного интеграла в то время не были известны, поэтому ученые пытались найти другие, обходные пути поиска значений. Первым методом явился метод Ньютона – поиск интеграла через график функции, т.е. нахождение площади под графиком, методом прямоугольников, в последствии усовершенствованный в метод трапеций. Позже был придуман параболический метод или метод Симпсона. Однако часть ученых терзал вопрос: А можно ли объединить все эти методы в один??

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


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

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

X0=a
X1
X2

XN=b

Y0=f(x0)

Y1=f(x1)

Y2=f(x2)

YN=f(xN)

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

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

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

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

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

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

Для равноотстоящих узлов интерполяции на отрезке [a,b] величина шаг определяется как h=(a-b)/n. Представив это выражение для h в формулу (4) и вынося (b-a) за знак суммы, получим:

Положим, что

где i=0,1,2…,n; Числа Hi называют коэффициентами Ньютона-Котеса. Эти коэффиценты не зависят от вида f(x), а являются функцией только по n. Поэтому их можно вычислить заранее. Окончательная формула выглядит так:

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

Пример 1.

Вычислить с помощью метода Ньютона-Котаса: , при 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.

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

, взяв 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

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

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

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

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

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

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

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

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

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


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

Для вычисления интеграла сначала находятся коэффициенты Ньютона-Котеса. Их нахождение осуществляется в процедуре hkoef.

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

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

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

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

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

Далее вычисляем факториалы (функция faktorial) и перемножаем полученные выражения (функция mainint). Для увеличения быстроты работы вводится вычисление половины от количества узлов интерполяции и последующей подстановкой их вместо неподсчитанных.

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

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

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

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

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

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

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

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


Программа состоит из 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);

setcolor(15);

setfillstyle(1,7);

bar(160,150,460,260);

rectangle(165,155,455,255);

rectangle(167,157,453,253);

case (ea mod 2) of

0: outtextxy(180,170,' Идет работа .Ждите..');

1: outtextxy(180,170,' Working.Please wait..');

end;

setfillstyle(1,12);

setcolor(0);

rectangle(200,199,401,221);

for i:=1 to 9 do

line(200+i*20,200,200+i*20,220);

delay(20000);

for i:=1 to 100 do

begin

if ((i-1) mod 10)=0 then

line(200+((i-1) div 10)*20,200,200+((i-1) div 10)*20,220);

bar(round(200+2*(i-0.5)),200,200+2*i,220);

delay(1100);

setcolor(15);

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее