Обчислення визначених iнтегралiв за формулами прямокутникiв, трапецiй та Сiмпсона

Курсова робота

на тему:

Обчислення визначених iнтегралiв за формулами прямокутникiв, трапецiй та Сiмпсона.


Змiст

Вступ

1. Огляд лiтератури

2. Формулювання задачi

3. Алгоритм розвтАЩязку задач

4. Опис програми на мовi Turbo С

5. РЖнструкцiя користувачевi програми

6. Контрольнi приклади та аналiз iх реалiзацiй

Висновок

Список використаноi лiтератури

Додатки


Вступ

Обчислювальну технiку останнiми разами широко застосовують у всiх сферах дiяльностi людини. Вона стала каталiзатором науковотАУтехнiчного процесу. РЖсторiя розвитку обчислювальноi технiки починаiться з 1945 року, коли американський вчений Фал Нейман та iншi визначили основнi принципи побудови ПК (так званi основнi принципи програми управлiння).

У 1946 р. в Пенсильванському унiверситетi було побудовано першу машину тАУ тАЬМашину 1-го поколiннятАЭ. Найхарактернiшою ознакою цих машин було використання електричних ламп. Потiм зтАЩявилися зовнiшнi запамтАЩятовуючi пристроi тАУ пристроi вводу iнформацii. Ламповi машини мали великi габарити, у них була мала iмкiсть оперативноi памтАЩятi, було слабке математичне забезпечення. Пiзнiше зтАЩявилися напiвпровiдниковi пристроi. Цi машини були бiльш надiйними, мали меншi габарити. На початку 60-тих рокiв була розроблена технологiя виробництва iнтегральних схем. Це вирiшило проблеми надiйностi i цiнносстi машин ПК.

З 1968 р. Починаiться РЖРЖРЖ поколiння ПК. Використовуiться постiйна памтАЩять. Важливим кроком в цьому поколiннi i використання дисплея, зтАЩявилась уже клавiатура. З середини 80-тих рокiв поряд з машинами РЖРЖРЖ-го поколiння зтАЩявляються машини РЖV-го поколiння. Характерною особливiстю РЖV-го поколiння i використання iнтегральних систем.

Обчислювальнi машини можна використовувати ефективно лише за умови глибокого знання чисельних методiв математики.

Бурхливий розвиток ПК сприяв широкому процесу математизацii науки, технiки i господарства в цiлому. Саме розробка i застосування математичних методiв розвтАЩязування прикладних задач на базi ПК i предметом сучасноi прикладноi математики.

Математика тАУ одна з найдавнiших наук тАУ виникла з практичних потреб людини.

Застосування швидкодiючих ПК для розвтАЩязування складних прикладних задач сформувало новий спосiб проведення теоретичних дослiджень на базi математичних моделей тАУ обчислювальний експеримент.

Видiляють 5 етапiв технологiчного циклу обчислювального експерименту, побудова математичноi моделi задачi, розробка методу розвтАЩязування математичноi моделi, програмування, розрахунки на ПК, аналiз результатiв розрахункiв i застосування.

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

Вiдомо топологiчною задачею i проблема 4-рьох фарб. Ця гiпотеза була пiдтверджена в 1976 р. американським математиком Аппелем i Хакеном за допомогою ПК. В даний час вiдбуваiться швидкий розвиток усiх галузей науки. Людство прагне зрозумiти себе та свiт навколо себе. Тому виникають сотнi нових задач, якi зводяться до використання числових методiв. В багатьох випадках для iхнього розвтАЩязання використовуiться чисельне iнтегрування, а саме методи прямокутникiв, трапецiй, Сiмпсона. Тому важливим i актуальним i розроблення програмного забезпечення, яке дозволяi виконувати обислення за допомогою цих формул.

Метою даноi курсовоi роботи i практичне закрiплення, поглиблення та розширення знань i вмiнь, набутих мною при вивченнi дисциплiн тАЬОснови програмуваннятАЭ та тАЬПроблемно-орiiнтованi мови програмуваннятАЭ.

Тема курсовоi роботи тАУ тАЬ Обчислення визначених iнтегралiв за формулами прямокутникiв, трапецiй та СiмпсонатАЭ.


1. Огляд лiтератури

Пiдходячи до реалiзацii питань курсовоi роботи , не можливо обiйтись без таких апаратних можливостей та структур як масиви, функцii, структури, символьнi рядки, та файли. Тому давайте ознайомимось iз структурними можливостями мови програмування С/С++.

Масиви. Масив тАУ це набiр елементiв одного i того ж типу. Елементи зберiгаються в памтАЩятi у виглядi послiдовностi, а доступ до них вiдбуваiться з допомогою цiлочислового iндекса. В мовi С перший елемент масиву маi iндекс 0, звiдси випливаi , що кiнцевий елемент масиву , який зберiгаi n елементiв. Маi iндекс n-1 . Контроль за правильним використанням iндексiв покладаiться на програмiста, оскiльки нi компiлятор , нi виконуюча програма не вiдстежують за цим процесом. Працюючи з масивами ми стикаiмось iз великим обтАЩiмом iнформацii. Досить часто масиви пропонують найкращi способи манiпуляцii , зручнi та ефективнi. РЖмтАЩя масиву i адресою його першого елемента. Звертання до елементiв масиву вiдбуваiться через iндексну або вказiвникову форми.

Структура оголошення масиву :

<тип > [розмiр];

Приклад:

int ar[10][6];

int temp[n][m];

void main (void)

{

int temp[n][m];

temp[0][0]=2;

ar[0][0]=2;

};

РЖмтАЩя масиву i адресою його першого елемента.

Функцii. Функцiя тАУ це самостiйна одиниця програмного коду,яка розроблена для вирiшення конкретноi задачi, яка супроводжуiться обовтАЩязково ( ). Умiло володiючи ii можливостями у нас в руках опиняiться потужний програмний iнструмент.Користуючись аргументами для передачi значень функцiй , а для повернення результату реалiзацii функцiя використовуi ключове слово return . Якщо функцiя повертаi якесь значення , тип якого не int , ми повиннi описати тип функцii в описi даноi функцii в роздiлi оголошень викликаючи функцiй. Якщо ми хочемо , щоб функцiя реагувала на змiннi що викликаються функцiiю , потрiбно використовувати адреси i вказiвники.

Стандарт ANSI С пропонуi прототипнi функцii , що i потужним покращенням мови С, яке дозволяi компiляторам перевiряти чи правильно вказана кiлькiсть типiв аргументiв при виклику функцii. Функцiя С здатна викликати саму себе , що називаiться рекурсiiю. Деякi задачi можна вирiшувати мотодом рекурсii, але цей метод бути не ефективним з точки зору використання памтАЩятi i часу.

Використовуючи функцii ми одержуiмо деякi переваги такi як :

а).необхiднiсть багаторазового повтору у програмах одного i того програмного коду. Якщо в програмi необхiдно вирiшувати одну i ту ж задачу декiлька раз, нам достатньо написати вiдповiдну функцiю всього лиш раз. Програма використовуватиме дану функцiю там, де це буде необхiдно, а ми можемо використовувати цю функцiю в декiлькох програмах. Навiть тодi, коли задача в програмi виконуiться лише раз , використання функцii цiлеспрямоване, поскiльки при цьому повишаiться рiвень модульностi, через що програма стаi бiльш зрозумiлою при читаннi, а ще в неi легко можна вноси змiни i доповнення.

Функцii мають наступну структуру:

< тип результату > < iмтАЩя функцii >( <оголошення формальних параметрiв>)

{ < опис внутрiшнiх змiнних >;

<операцii тiла функцii>

*******************************

}

<тип результату>;

Функцiя може повертати в точку ii виклику значення будь-якого типу в тому числi користувацького крiм масиву (символьного рядка i функцii) , але може повертати вказiвник на довiльний тип , включаючи масив i функцiю. Внутрiшнi змiннi функцii описуються на початку i можуть використовуватися тiльки в межах цiii функцii. У разi , якщо функцiя повинна повертати значення якогось типу в операторi return вказують вираз значення якого i результатом роботи функцii.

Приклад:

int Min3(int a, int b, int c)

{

int min;

min=a

return min

};

Символьнi рядки. Символьнi рядки тАУ це один iз найкориснiших i важливих типiв даних в мовi С. Бiблiотека функцiй в мовi С пропонуi широкий спектр функцiй для читання i запису, копiювання, порiвняння, комбiнування, пошуку i виконання iнших корисних операцiй iз рядками. Символьний рядок тАУ це один iз рiзновидiв масиву типу char, який суттiво вирiзняiться тим, що в кiнцi кожного символьного рядка, як такого стоiть ескейп-символ Влнуль-символ(\0)В». РЖз символьних рядкiв можна утворювати складнi синтаксичнi структури. До елементiв рядка можна звертатись двома способами : через iндекси або через вказiвники. Використовуючи вказiвники ми оперуiмо чудовим iнструментом доступу до елементiв, який набагато ефективнiший за iндексну форму. Використовуючи вказiвники ми можемо звертатись до елементiв не тiльки як до символа, але й як адресу , на яку вказуi вказiвник.

Рядок може зберiгатись в символьному масивi. Рядок може бути представлений у виглядi рядковоi константи, в якiй символи за виключенням нульового вставленi у подвiйнi лапки. Нуль-символ проставляi компiлятор. Довжина рядка вимiряють за допомогою функцii strlrn( ), не враховуючи нуль-символ . Рядковi константи вiдомi ще як рядковi лiтерали i можуть використовуватись для iнiцiалiзацii символьних масивiв. Розмiр масиву повинен мiстити принаймi на один символ бiльше , щоб включити нуль-символ. Символьнi константи використовують для iнiцiалiзацii вказiвникiв на тип char.Для iдентифiкацii опрацьовуючого рядка

функцii використовують вказiвник на перший символ даного рядка . В загальному випадку вiдповiдним фактичним параметрам являiться iмтАЩя масиву, змiнна типу вказiвник або рядок, помiщений у лапки.

Функцii gets( ) i puts( ) ,вiдповiдно, читають рядок вводу i показують рядок виводу. Вони являються частиною сiмейства stdio.h.

Бiблiотека С включаi в себе декiлька функцiй опрацювання рядкiв. В умовах дii стандарту ANSI C цi функцii оголошенi в заголовному файлi string.h .Дана бiблiотека мiстить декiлька функцii опрацювання символiв; вони оголошенi в заголовному файлi ctype.h . РЖснують функцii перетворення символьного представлення чисел вiдповiдно в тип int , long , double як atoi( ), atol( ), atof( ), i зворотнi strtol( ), strtoul( ), strtod( ).

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

Struct <тег > {

<тип 1> <поле1>;

<тип 2 > <поле 2>

тАжтАжтАжтАжтАжтАжтАжтАж.

< тип К > <поле К>

};

де < ТЕГ > --- унiкальне поле структури , яке визначаi дану структуру .

Поля структур --- це елементи з яких складаiться структура , кожне поле маi свiй тип . Тип поля --- довiльний , простий або складений допустимий для С.

Розмiр структури (обсяг оперативноi памтАЩятi) , яку займаi структура буде бiльший (рiвний) за розмiр усiх ii полiв. Тому реальний розмiр структури визначають операцiiю size of(<назва структури>) . Шаблони структур фактично створюють новий користувацький тип, але для них не видiляiться мiсце в оперативнiй памтАЩятi. ПамтАЩять видiляiться тiльки для структурних змiнних, якi можна оголошувати разом зi шаблоном , або окремо , посилаючись на шаблон.

Для iдентифiкацii шаблону i оголошення змiнних даного типу можна використовувати дескриптори. Операцiя приналежностi (.) дозволяi получити доступ до окремих елементiв структури через використання мiток шаблона структури.

Якщо у нас i вказiвник на конкретну структуру, для доступу до окремого елемента структури ми можемо використати вказiвник i складену операцiю приналежностi (->) замiсть iменi i операцii крапка. Здобути адресу структури можна з допомогою &. На вiдмiну вiд масивiв , iмтАЩя структури не може бути адресою структури.

Традицiйно функцiя , орiiнтована на роботу зi структурими , використовують вказiвники на структури в якостi аргументiв. Сучасна версiя С допускаi передачу структур в якостi аргументiв, використання структур в якостi повертаючи значень i виконання операцii присвоiння над структурами одного i того ж типу. Подiбним синтаксисом володiють обтАЩiднаня. Прикладом який демонструi структуру може бути :

struct book {

char avtor[60];

char name[120] ;

int year ;

} book1,book2;

Файли. Файли являються частиною теперiшнiх комптАЩютерних систем. Вони використовуються для зберiгання програм, даних, кореспонденцii, форм, графiчних даних та багато iншоi iнформацii.Будучи програмiстом , ми повиннi знати , як писати програми, якi створюють, записують та читають файли .

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

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

Файл являi собою iменований роздiл памтАЩятi , зазвичай розмiщений на диску. Однак для операцiйноi системи файл являiться бiльш складним обтАЩiктом.

С розглядаi файл як неперервну послiдовнiсть байтiв, кожен з яких може бути прочитаний iндивiдуально. Це вiдповiдаi структурi файлу в операцiйнiй системi Unix, з якоi мова С бере свiй початок. Оскiльки iншi операцiйнi системи не вiдповiдають цiй моделi , стандарт ANSI С пропонуi два способи представлення файлiв: текстове представлення i двiйкове представлення.

Програма на мовi С розглядаi ввiд як деякий потiк даних. Джерелом цього потоку може бути файл, пристрiй вводу(клавiатура) або навiть вивiд в iншу програму . Програма на С трактуi вивiд як потiк байтiв , мiсцем призначення яких може бути файл, пристрiй вiдображення i тому подiбне . Як С iнтерпретуi вхiдний або вихiдний потiк байтiв, залежить вiд того , яку функцiю вводу-виводу ми використовуiмо. Програма може читати i зберiгати

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

Якщо i числовi , якi необхiдно зберегти , а потiм використати без втрати точностi iх представлення , використовують двiйковий режим i функцii fread( ) i fwrite( ). Якщо зберiгати текстову iнформацiю i хочемо створити файл , який легко переглядаiться з допомогою звичайних текстових редакторiв, скористаiмося текстовим режимом i функцiями getc( ) i fprint( ).

Щоб отримати доступ до файлу , потрiбно створити вказiвник на файл (типу FILE *) i повтАЩязати його з конкретним iмтАЩям файлу.

C пiдтримуi операцii введення/виведення даних через вiдповiднi набори бiблiотечних функцiй , при чому вони можуть бути реалiзованi на трьох рiвнях :

А). високий --- це так званi потокоорiiнтованi операцii буферизованого вводу/виводу , iх прототипи мiстяться у заголовному файлi Влstdio.hВ», якi i дуже мобiльнi.

Б). низький --- (не пiдтримуваний стандартом) базуiться на операцiях MS DOS , прототипи мiстяться у заголовном уфайлi .

В). консольний --- базуiться на засобах BIOS , прототипи в заголовному файлi < conio.h>.

Важливо памтАЩятати , що С сприймаi поняття кiнця файлу i виконуi читання файлу вциклi до тих пiр доки не досягне кiнця файлу. Функцii вводу у мовi С не знаходять кiнець файлу до того часу , доки не попробують читати символи , що йдуть за кiнцем файлу.

Ввiд i вивiд файлiв буферезований . Стандартний пакет вводу-виводу автоматично створюi буфер для вводу i виводу, що прискорюi передачу даних. Функцiя fopen( ) вiдкриваi файл для стандартного вводу-виводу i створюi структури даних , якi пизначенi для зберiгання iнформацii про файл i буфер. Повертаi вказiвник на цю структуру даних , а сам вказiвник використовуiться iншими функцiями. Розрiзняють декiлька режимiв виконання для функцii fopen( ):

тАЬrтАЭтАФвiдкриття текстового файлу для читання;

тАЬwтАЭтАФвiдкриваi текстовий файл для запису, вiдрiзаючи довжину iснуючого файлу до нуля, або створюi файл якщо такого не iснуi;

тАЬaтАЭ--- вiдкриваi текстовий файл для запису, добавляючи данi в кiнець iснуючого файлу, або створюi файл якщо такого не iснуi;

тАЬr+тАЭ--- вiдкриваi текстовий файл для обновлення;

тАЬw+тАЭ--- вiдкриваi текстовий файл для обновлення, виконавши спочатку обтинання файлу до нульовоi довжини , якщо вiн iснуi , або створюi файл , якщо той ще не iснуi;

тАЬa+тАЭ--- вiдкриваi текстовий файл для обновлення, добавляючи данi в кiнець iснуючого файлу, або створюi файл якщо такого не iснуi,але при цьому можна читати весь файл , однак записана iнформацiя добавляiться в кiнецьфайла;

Функцii feof( ) i ferror( ) повiдомляють про причини невдалого завершення операцiй вводу-виводу.

До задач числових методiв вiдносяться прикладнi задачi, розвтАЩязок яких мiстить числову iнформацiю. Вони зводяться до математичрих обчислювальних методiв. Видiляють наступнi етапи розвтАЩязування задач числових методiв, якi наведенi [1,2]:

побудова математичних моделей (математичне формулювання задачi) - охоплюi найважливiшi для даноi задачi сторони, явища;

вибiр методу розвтАЩязування тАУ для найпростiших задач знаходять аналiтичний розвтАЩязок, складнiшi розвтАЩязуються наближеними методами, зокрема числовими;

алгоритмiзацiя процесу тАУ складання алгоритму розвтАЩязку задач (якщо задача розвязуiться на ПК, складаiться програма);

виконання обчислення на ПК чи вручну;

аналiз результатiв.

Числовi методи для розвтАЩязання рiзноманiтних задач почали широко використовуватися в 50-х рр. ХХ столiття, коли починаiться розвиток комптАЩютерноi технiки. Громiздкi обчислення з появою електронно-обчислювальних машин перестали бути такими складними, адже iх виконувала машина.

Формула прямокутникiв.

РЖдея формули прямокутникiв полягаi в тому, що на малому вiдрiзку [x;x+h] площа криволiнiйноi трапецii наближено рiвна площi прямокутника з основою (x;x+h) i висотою рiвною ординатi будь-якоi точки ,яка належить вiдрiзку [x;x+h].

Ва(1)

В залежностi вiд вибору точки Ваотримаiмо рiзновидностi формул прямокутникiв (1).

РозiбтАЩiмо вiдрiзок [a;b] на n рiвних частин точками a=x; x; x, причому x=x+h; x=x+2h; x=x+nh.

Ва(2)

На кожному вiдрiзку [x;x+h] замiнемо вiдповiдну криволiнiйну трапецiю на прямокутник висоту якого можна визначити по рiзному.

Формула тАЮлiвихтАЭ прямокутникiв.

Якщо за висоту прямокутника на кожному вiдрiзку [x;x+h] вибрати ординату в лiвому кiнцi, тобто y, то криволiнiйна трапецiя замiниться на ступiнчасту фiгуру, площу якоi можна приймати за площу криволiнiйноi трапецii.

Формула тАЮлiвихтАЭ прямокутникiв:

Ва(3)

Формула тАЮправихтАЭ прямокутникiв.

Якщо за висоту прямокутника вибрати ординату правого кiнця, тобто y(мал.3), то отримаiмо формулу тАЮправихтАЭ прямокутникiв (4).

Формула тАЮправихтАЭ прямокутникiв:

Ва(4)

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

Вона полягаi в тому, що на вiдрiзку [x;x+h] до кривоi y=f(x) замiнюють хордою, яка стягуi кiнцi цiii дуги, тобто використовують лiнiйну iнтерпуляцiю функцii y=f(x). При цьому площа криволiнiйноi трапецii замiнюiться площею криволiнiйноi трапецii з основами i висотою h.

Ва(5)

Вместе с этим смотрят:


РЖнварiантнi пiдпростори. Власнi вектори i власнi значення лiнiйного оператора


РЖнтегральнi характеристики векторних полiв


РЖнтерполювання функцiй


Автокорреляционная функция. Примеры расчётов


Актуальные проблемы квантовой механики