Курсовая работа по предмету "Программирование, компьютеры и кибернетика, ИТ технологии"


Розвязок інтеграла методом Чебиша, Гауса, Сімпсона


Зміст

Вступ

1. Огляд та варіантний аналіз чисельних методів дослідження еліптичного інтегралу першого порядку

1.1. Основні поняття та визначення

1.2. Класифікація методів рішення поставленої задачі

1.3. Опис методів дослідження еліптичного інтегралу першого порядку на ЕОМ

1.4 Уточнена постановка задачі

2. Розробка алгоритмів дослідження еліптичного інтегралу першого порядку

на ЕОМ

2.1 Планування вхідних та вихідних даних

2.2 Аналіз задач, які вирішуються при дослідженні еліптичного інтегралу першого порядку на ЕОМ

2.3 Описовий алгоритм головної програми

2.4 Схема алгоритму головної програми

2.5 Опис основних функцій моделювання

2.6 Структура комплексу програм для дослідження еліптичного інтегралу

першого порядку на ЕОМ

3. Лістинг програми

4. Розробка тестів та аналіз результатів дослідження

4.1 Класифікація експериментів

4.2 Опис експериментальних досліджень

4.3 Дослідження еліптичного інтегралу першого порядку на ЕОМ

4.4 Тестова перевірка чисельних методів

5. Оцінка похибок отриманих результатів

6. Оцінка ефективності комплексу програм для дослідження

7. Розробка пакету документів для супроводження комплексу програм

7.1 Розробка інструкції програмісту

7.2 Розробка інструкції користувачу

Висновки

Література

Додатки

Додаток А. Технічне завдання.

Додаток Б Структура дискети.

Анотація

В даній курсовій роботі розроблено комплекс програм для застосування точного рiвняння Ейлера-Бернулi для великих деформацiй бруса, а саме для обчислення значення еліптичного інтеграла за допомогою чисельних методів Сімпсона, Чебишева та Гауса. Описано алгоритм розвязку поставленої задачі. Складено програму на мові Turbo C++.

Вступ

В наш час науково-технічний прогрес невідривно повязаний з бурхливим розвитком систем управління і автоматики. Автоматика - це галузь науки і техніки, яка охоплює теорію та принципи побудови систем управління процесами, що діють без безпосередньої участі людини. У відповідності до загальних принципів управління різними процесами, автоматичне управління здійснюється на основі інформації з використанням комплексу технічних засобів.

Автоматизація технологічних процесів на основі застосування автоматизованих станків, машин та механізмів, робототехнічних комплексів, сучасних засобів автоматики та обчислювальної техніки складає один з головних напрямків науково технічного прогресу в усіх галузях народного господарства. Вирішення задач автоматизації в наш час неможливе без застосування досягнень мікроелектроніки, яка забезпечує випуск елементної бази для пристроїв автоматики та систем управління в цілому.

1 Огляд та варіантний аналіз чисельних методів дослідження еліптичного інтегралу першого порядку

1.1 Основні поняття та визначення

Інтеграл є основним поняттям інтегрального числення.

Нехай f(x) - неперервна функція, а функція F(x) така, що її похідна дорівнює f(x), тобто F(x)=f(x). Таку функцію F(x) називають інтегралом, або первісною функцією, відносно f(x). Разом з F(x) первісною відносно f(x) є і F(x)+С, де С - довільна константа. Вираз F(x)+С називається невизначеним інтегралом для f(x) і позначають .

Нехай функція f(x) неперервна на відрізку [a, b]. Розділимо [a, b] на частини точками a=x0<x1<x2<…<xn=b і складемо так звану інтегральну суму

,

де xi-1<ci<xi, xi=xi-xi-1. Визначеним інтегралом функції на відрізку [a, b] називається границя, до якої прямує інтегральна сума, коли найбільша різниця xi прямує до нуля; його позначають .

Застосування точного рiвняння Ейлера-Бернулi для великих деформацiй бруса призводить до еліптичних інтегралів. Еліптичний інтеграл першого порядку (роду) записується у вигляді:

,

де 0К1.

Чисельні методи - методи наближеного вирішення математичних задач, які зводяться до скінченого числа елементарних операцій над числами. Під елементарними операціями розуміють арифметичні та логічні дії, а також допоміжні операції (записи проміжних операцій, вибірки із таблиць тощо). Розробка нових числових методів і застосування їх на ЕОМ привели до виникнення обчислювальної математики.

1.2 Класифікація методів рішення поставленої задачі

Рис. 1.1 Класифікація методів чисельного обчислення визначених інтегралів

Метод Сімпсона - частинний випадок метода Ньютона-Котеса при n=2. Цей метод досить точний навіть для многочленів третього степеня. Ця особливість методу пояснює його переважне застосування на ЕОМ.

Метод Чебишева - чисельний метод обчислення визначених інтегралів, який характеризується великою точністю обчислень для поліномів степеня n.

Метод Гауса - чисельний метод обчислення визначених інтегралів, який базується на інтерполяції поліномом Лагранжа, але абсциси вибираються із умови забезпечення мінімума похибки інтерполяції. Цей метод забезпечую підвищену точність.

1.3 Опис методів дослідження еліптичного інтегралу першого порядку на ЕОМ

Метод Сімпсона реалізується наступною формулою:

,

де h - крок інтегрування.

Похибка методу R~(h5).

Метод Чебишева реалізується застосуванням формули:

,

де ;

; ; , при n=3.

Метод Гауса реалізується за допомогою формули:

,

де ; ; ; ; ; , при n=3.

Дає похибку R~(h7).

Для підвищення точності інтегрування відрізок [a, b] розділяється на m частин.

1.4 Уточнена постановка задачі

Необхідно розробити комплекс програм для застосування точного рiвняння Ейлера-Бернулi для великих деформацiй бруса, а саме для обчислення значення еліптичного інтеграла за допомогою чисельних методів Сімпсона, Чебишева та Гауса.

2 Розробка алгоритмів дослідження еліптичного інтегралу першого порядку на ЕОМ

2.1 Планування вхідних та вихідних даних

Таблиця 2.1 - Перелік вхідних даних

Математичний зміст

Іденти-фікатор

Діапазон значень

Тип даних

Приклад використання

Параметр К

К

3.4E-38-3.4E+38

Float

sqrt(1-pow(K,2.0)*pow(sin(pow(O,K)),2.0));

Таблиця 2.2 - Перелік вихідних даних

Математичний зміст

Ідентифікатор

Діапазон значень

Тип даних

Приклад використання

Значення інтегралу

s

3.4E-38-3.4E+38

Float

s=s+F(x);

2.2 Аналіз задач, які вирішуються при дослідженні еліптичного інтегралу першого порядку на ЕОМ

Дана програма дозволяє чисельно обчислювати значення елiптичного iнтегралу за допомогою чисельних методів Сімпсона, Чебишева та Гауса.

2.3 Описовий алгоритм основної програми

1. Виведення на екран строки меню та строки підказки.

2. При виборі в підменю “Про програму” пункту ”Про автора” вивести вікно з інформацією про автора програми.

3. Перейти до пункту 1.

4. При виборі в підменю “Про програму” пункту ”Завдання” вивести вікно з інформацією про завдання курсової роботи.

5. Перейти до пункту 1.

6. При виборі в підменю “Моделювання” пункту ”Сімпсон” вивести діалогове вікно для введення значення параметра К.

Знайти значення визначеного інтегралу за методом Сімсона.

Вивести на екран таблицю значень інтегралів.

Очікувати натиснення будь-якої клавіші.

10. Перейти до пункту 1.

11. При виборі в підменю “Моделювання” пункту ”Чебишев” вивести діалогове вікно для введення значення параметра К.

12. Знайти значення визначеного інтегралу за методом Чебишева.

13. Вивести на екран таблицю значень інтегралів.

14. Очікувати натиснення будь-якої клавіші.

15. Перейти до пункту 1.

16. При виборі в підменю “Моделювання” пункту ”Гаус” вивести діалогове вікно для введення значення параметра К.

17. Знайти значення визначеного інтегралу за методом Гауса.

18. Вивести на екран таблицю значень інтегралів.

19. Очікувати натиснення будь-якої клавіші.

20. Перейти до пункту 1.

21. При виборі в підменю “Тестування” пункту ”Тест1” знайти значення визначеного інтегралу за методом Сімсона.

Вивести на екран таблицю значень інтегралів, а також тестове значення інтегралу, абсолютну та відносну похибку.

Очікувати натиснення будь-якої клавіші.

24. Перейти до пункту 1.

25. При виборі в підменю “Тестування” пункту ”Тест2” знайти значення визначеного інтегралу за методом Чебишева.

Вивести на екран таблицю значень інтегралів, а також тестове значення інтегралу, абсолютну та відносну похибку.

27. Очікувати натиснення будь-якої клавіші.

28. Перейти до пункту 1.

29. При виборі в підменю “Тестування” пункту ”Тест3” знайти значення визначеного інтегралу за методом Гауса.

Вивести на екран таблицю значень інтегралів, а також тестове значення інтегралу, абсолютну та відносну похибку.

31. Очікувати натиснення будь-якої клавіші.

32. Перейти до пункту 1.

33. При виборі в підменю “Виведення результатів” пункту ”Читати файл” підпункту “На екран” вивести із масиву на екран таблицю інтегралів.

34. Очікувати натиснення будь-якої клавіші.

35. Перейти до пункту 1.

36. При виборі в підменю “Виведення результатів” пункту ”Читати файл” підпункту “Друк” вивести із масиву на друк таблицю інтегралів.

37. Очікувати натиснення будь-якої клавіші.

38. Перейти до пункту 1.

39. При виборі в підменю “Вихід” вийти із програми.

2.4 Схема алгоритму головної програми

2.5 Опис основних функцій моделювання

Основними функціями при моделюванні заданої системи є:

1) Simpson(int m) - функція чисельного обчислення значення визначеного iнтегралу методом Сімпсона;

2) Chebyshev(int m) - функція чисельного обчислення значення визначеного iнтегралу методом Чебишева;

3) Gaus(int m1) - функція чисельного обчислення значення визначеного iнтегралу методом Гауса;

4) F(float O) - підінтегральна функція.

Функція Simpson

Назва функції - Simpson.

Заголовок функції - Simpson(int m).

Вхідні та вихідні дані.

Таблиця 2.3 - Перелік вхідних даних

Математичний зміст

Іденти-фікатор

Діапазон значень

Тип даних

Приклад використання

Значення підінтегральної функції

F

3.4E-38-3.4E+38

Float

s=s+2*F(a);

Таблиця 2.4 - Перелік вихідних даних

Математичний зміст

Ідентифікатор

Діапазон значень

Тип даних

Приклад використання

Значення інтегралу

s

3.4E-38-3.4E+38

Float

s=s+2*F(a);

Логічна схема програми

Функція Chebyshev

Назва функції - Chebyshev.

Заголовок функції - Chebyshev(int m).

Вхідні та вихідні дані.

Таблиця 2.5 - Перелік вхідних даних

Математичний зміст

Іденти-фікатор

Діапазон значень

Тип даних

Приклад використання

Значення підінтегральної функції

F

3.4E-38-3.4E+38

Float

s=s+F(x);

Таблиця 2.6 - Перелік вихідних даних

Математичний зміст

Ідентифікатор

Діапазон значень

Тип даних

Приклад використання

Значення інтегралу

s

3.4E-38-3.4E+38

Float

s=s+F(x);

Логічна схема програми

Функція Gaus

Назва функції - Gaus.

Заголовок функції - Gaus(int m1).

Вхідні та вихідні дані.

Таблиця 2.7 - Перелік вхідних даних

Математичний зміст

Іденти-фікатор

Діапазон значень

Тип даних

Приклад використання

Значення підінтегральної функції

F

3.4E-38-3.4E+38

Float

s=s+A[k-1]*F(x+h/2.0+t[k-1]*h/2.0);

Таблиця 2.8 - Перелік вихідних даних

Математичний зміст

Ідентифікатор

Діапазон значень

Тип даних

Приклад використання

Значення інтегралу

s

3.4E-38-3.4E+38

Float

s=s*h/2.0;

Логічна схема програми

Функція F

Назва функції - F.

Заголовок функції - F(int n,Float O).

Вхідні та вихідні дані.

Таблиця 2.9 - Перелік вхідних даних

Математичний зміст

Іденти-фікатор

Діапазон значень

Тип даних

Приклад використання

Параметр К

К

3.4E-38-3.4E+38

Float

return sqrt(1-pow(K,2.0)*pow(sin(pow(O,K)),2.0));

Таблиця 2.10 - Перелік вихідних даних

Математичний зміст

Ідентифікатор

Діапазон значень

Тип даних

Приклад використання

Значення підінтегральної функції

F

3.4E-38-3.4E+38

Float

F(float O)

4) Логічна схема програми

2.6 Структура комплексу програм для дослідження еліптичного інтегралу першого порядку на ЕОМ

Розроблена програма містить наступні функції:

main() - головна програма;

2) Simpson(int m) - функція чисельного обчислення значення визначеного iнтегралу методом Сімпсона;

3) Chebyshev(int m) - функція чисельного обчислення значення визначеного iнтегралу методом Чебишева;

4) Gaus(int m) - функція чисельного обчислення значення визначеного iнтегралу методом Гауса;

5) F(int n,float O) - підінтегральна функція;

6) cls1() - функція очищення робочого поля програми;

druk() - функцiя виводу результатiв на друк;

list() - функцiя виводу результатiв на екран;

Vvod() - функцiя введення початкових даних;

about() - функцiя виведення вiдомостей про автора;

zavdannja() - функцiя виведення завдання.

3 Лістинг програми

* Застосування точного рiвняння Ейлера-Бернулi для великих деформацiй бруса */

#include<conio.h>

#include<stdio.h>

#include<math.h>

#include<stdlib.h>

const dx1=1,dy1=2,dx2=20;

const ct=4;

const ctf=3;

const ctfa=1;

const ctfp=7;

const cr=15;

const Pi=3.14;

float zr=0.52942863,zrS=1.398717474,zrC=1.398717533,zrG=1.398717474,aS=0.0,bS=1.0;

float K=0.5;

char s[20],s0[20],sb[20];

FILE *fp1,*fp2;

int i,j;

float x,e,ds;

float y[7],f[12];

char NameM[9];

void cls1(){ /* Очищення робочого поля програми */

int short i;

for(i=1;i<24;i++){

gotoxy(1,i+1);

textattr(15 + (0 << 4));

cprintf("________________________________________________________________________________");

}

}

void about(){ /* Виведення вiдомостей про автора */

cls1();

gotoxy(dx2,2);

textattr(ct+ (ctfp << 4));

cprintf("+---- Про автора -----------------------+n"); gotoxy(dx2,3);

cprintf("¦ Автор: ст. гр. 5АС-02 Болоненков А.С. ¦n"); gotoxy(dx2,4);

cprintf("+---------------------------------------+");

}

void zavdannja(){ /* Виведення допомоги */

/* cls1();*/

gotoxy(dx2,2);

textattr(ct+ (ctfp << 4));

cprintf("+----

Завдання ---+n"); gotoxy(dx2,3);

cprintf("¦ Застосування точного рiвняння Ейлера-Бернулi для великих ¦n"); gotoxy(dx2,4);

cprintf("¦деформацiй бруса призводить до елiптичних iнтегралiв. Елiп-¦n"); gotoxy(dx2,5);

cprintf("¦тичний iнтеграл першого порядку (роду) записуэться у вигля-¦n"); gotoxy(dx2,6);

cprintf("¦дi: ф¦n"); gotoxy(dx2,7);

cprintf("¦+- ----------+ ¦n"); gotoxy(dx2,8);

cprintf("¦¦ / 2 2 K¦n"); gotoxy(dx2,9);

cprintf("¦ F(K,ф)=¦/1-K*sin O dO, ¦n"); gotoxy(dx2,10);

cprintf("¦¦¦n"); gotoxy(dx2,11);

cprintf("¦ -+¦n"); gotoxy(dx2,12);

cprintf("¦ 0¦n"); gotoxy(dx2,13);

cprintf("¦ Дослiдити iнтеграл на ЕОМ при рiзних значеннях ф за допо-¦n"); gotoxy(dx2,14);

cprintf("¦могою методiв Сiмпсона, Чебишева, Гауса. Результати розра-¦n"); gotoxy(dx2,15);

cprintf("¦хункiв звести в таблицю. Точнiсть перевiрити, зрiвнюючи з¦n"); gotoxy(dx2,16);

cprintf("¦табличним значенням. ¦n"); gotoxy(dx2,17);

cprintf("¦ F(0,5;п/6)=0,52942863. ¦n"); gotoxy(dx2,18);

cprintf("¦ Зробити висновки. ¦n"); gotoxy(dx2,19);

cprintf("+-----------------------------------------------------------+");

}

float F(int n,float O){ /* пiдiнтегральна функцiя */

if(n==0) return sqrt(1-pow(K,2.0)*pow(sin(pow(O,K)),2.0));

if(n>=1) return sqrt(2.0*O+1.0);

}

void Simpson(int m){ /* Обчислення iнтегралу методом Сiмпсона */

const n=8;

int i,j,k;

float b0,b9,a,h,s;

cls1();

textattr(ct+ (ctfp << 4));

gotoxy(1,2);

cprintf(" Метод Сiмпсона "); strcpy(NameM,"Сiмпсона");

if(m==0) {

gotoxy(1,3);

cprintf("+-----------------+");gotoxy(1,4);

strcpy(s0,gcvt(K,3,&sb));

cprintf("¦ fi ¦ F(%3s,fi) ¦",s0);gotoxy(1,5);

cprintf("+-----+-----------¦"); gotoxy(1,6);

b0=0.0;

for(i=1;i<=12;i++){

b9=Pi*i/6.0;

a=b0;

h=(b9-b0)/n;

s=F(m,b0)+F(m,b9);

k=1;

for(j=1;j<=n-1;j++){

a=a+h;

if(k!=1) s=s+2*F(m,a); else s=s+4*F(m,a);

k=-k;

}

s=s*h/3; f[i-1]=s;

cprintf("¦%2dп/6¦ %f ¦",i,s); gotoxy(1,6+i);

/*if(m==1)*/

if(i==1){

gotoxy(20,5+i);

ds=zr-s;

e=fabs(ds/zr)*100.0;

cprintf("табл. знач.=%f абс. пох.=%f вiдн. пох.=%f%%",zr,ds,e);

gotoxy(1,6+i);

}

}

cprintf("+-----------------+");

}

else{

b0=aS; b9=bS;

a=b0;

h=(b9-b0)/n;

s=F(m,b0)+F(m,b9);

k=1;

for(j=1;j<=n-1;j++){

a=a+h;

if(k!=1) s=s+2*F(m,a); else s=s+4*F(m,a);

k=-k;

}

s=s*h/3; f[i-1]=s;

cprintf(" - тест"); gotoxy(1,3);

textattr(ct+ (15 << 4));

cprintf("1"); gotoxy(1,4);

cprintf("+ ----+",s); gotoxy(1,5);

cprintf("¦/2x+1 dx=%f;",s); gotoxy(1,6);

cprintf("+",s); gotoxy(1,7);

cprintf("0"); gotoxy(20,5);

ds=zrS-s;

e=fabs(ds/zrS)*100.0;

cprintf("табл. знач.=%f абс. пох.=%f вiдн. пох.=%f%%",zrS,ds,e);

}

}

void Chebyshev(int m){ /* Обчислення iнтегралу методом Чебишева */

const n=7;

int i,j;

float b0,b9,s,x;

float

t[7]={-0.883862,-0.529657,-0.321912,0.0,0.321912,0.529657,0.883862};

cls1();

textattr(ct+ (ctfp << 4));

gotoxy(1,2);

cprintf(" Метод Чебишева "); strcpy(NameM,"Чебишева");

if(m==0){

gotoxy(1,3);

cprintf("+-----------------+");gotoxy(1,4);

strcpy(s0,gcvt(K,3,&sb));

cprintf("¦ fi ¦ F(%3s,fi) ¦",s0);gotoxy(1,5);

cprintf("+-----+-----------¦"); gotoxy(1,6);

b0=0.0;

for(i=1;i<=12;i++){

b9=Pi*i/6.0;

s=0.0;

for(j=1;j<=n;j++){

x=(b9+b0)/2.0+(b9-b0)*t[j-1]/2.0;

s=s+F(m,x);

}

s=s*(b9-b0)/n; f[i-1]=s;

cprintf("¦%2dп/6¦ %f ¦",i,s); gotoxy(1,6+i);

if(i==1){

gotoxy(20,5+i);

ds=zr-s;

e=fabs(ds/zr)*100.0;

cprintf("табл. знач.=%f абс. пох.=%f вiдн. пох.=%f%%",zr,ds,e);

gotoxy(1,6+i);

}

}

cprintf("+-----------------+");

}

else{

b0=aS;

b9=bS;

s=0.0;

for(j=1;j<=n;j++){

x=(b9+b0)/2.0+(b9-b0)*t[j-1]/2.0;

s=s+F(m,x);

}

s=s*(b9-b0)/n; f[i-1]=s;

cprintf(" - тест"); gotoxy(1,3);

textattr(ct+ (15 << 4));

cprintf("1"); gotoxy(1,4);

cprintf("+ ----+",s); gotoxy(1,5);

cprintf("¦/2x+1 dx=%f;",s); gotoxy(1,6);

cprintf("+",s); gotoxy(1,7);

cprintf("0"); gotoxy(20,5);

ds=fabs(zrC-s);

e=fabs(ds/zrC)*100.0;

cprintf("табл. знач.=%f абс. пох.=%f вiдн. пох.=%f%%",zrC,ds,e);

}

}

void Gaus(int m1){ /* Обчислення iнтегралу методом Гауса */

const n=7,m=3;

int i,j,k;

float b0,b9,s,x,h;

float t[3]={-0.774597,0.0,0.774597};

float A[3]={5.0/9.0,8.0/9.0,5.0/9.0};

cls1();

textattr(ct+ (ctfp << 4));

gotoxy(1,2);

cprintf(" Метод Гауса"); strcpy(NameM,"Гауса ");

if(m1==0){

gotoxy(1,3);

cprintf("+-----------------+");gotoxy(1,4);

strcpy(s0,gcvt(K,3,&sb));

cprintf("¦ fi ¦ F(%3s,fi) ¦",s0);gotoxy(1,5);

cprintf("+-----+-----------¦"); gotoxy(1,6);

b0=0.0;

for(i=1;i<=12;i++){

b9=Pi*i/6.0;

h=(b9-b0)/n;

s=0.0;

for(j=0;j<=n-1;j++){

for(k=1;k<=m;k++){

x=b0+h*j;

s=s+A[k-1]*F(m,x+h/2.0+t[k-1]*h/2.0);

}

}

s=s*h/2.0; f[i-1]=s;

cprintf("¦%2dп/6¦ %f ¦",i,s); gotoxy(1,6+i);

if(i==1){

gotoxy(20,5+i);

ds=zr-s;

e=fabs(ds/zr)*100.0;

cprintf("табл. знач.=%f абс. пох.=%f вiдн. пох.=%f%%",zr,ds,e);

gotoxy(1,6+i);

}

}

cprintf("+-----------------+");

}

else{

b0=aS;

b9=bS;

h=(b9-b0)/n;

s=0.0;

for(j=0;j<=n-1;j++){

for(k=1;k<=m;k++){

x=b0+h*j;

s=s+A[k-1]*F(m,x+h/2.0+t[k-1]*h/2.0);

}

}

s=s*h/2.0; f[i-1]=s;

cprintf(" - тест"); gotoxy(1,3);

textattr(ct+ (15 << 4));

cprintf("1"); gotoxy(1,4);

cprintf("+ ----+",s); gotoxy(1,5);

cprintf("¦/2x+1 dx=%f;",s); gotoxy(1,6);

cprintf("+",s); gotoxy(1,7);

cprintf("0"); gotoxy(20,5);

ds=fabs(zrG-s);

e=fabs(ds/zrG)*100.0;

cprintf("табл. знач.=%f абс. пох.=%f вiдн. пох.=%f%%",zrG,ds,e);

}

}

void list(){ /* функцiя виводу результатiв на екран */

cls1();

textattr(ct+ (ctfp << 4));

gotoxy(1,2);

cprintf(" Метод %9s ",NameM);

gotoxy(1,3);

cprintf("+-----------------+");gotoxy(1,4);

strcpy(s0,gcvt(K,3,&sb));

cprintf("¦ fi ¦ F(%3s,fi) ¦",s0);gotoxy(1,5);

cprintf("+-----+-----------¦"); gotoxy(1,6);

for(i=1;i<=12;i++){

cprintf("¦%2dп/6¦ %f ¦",i,f[i-1]); gotoxy(1,6+i);

}

cprintf("+-----------------+");

}

void druk(){ /* функцiя виводу результатiв на друк */

cls1();

fp2=fopen("lpt1", "w+");

fprintf(fp2," Метод %9s n",NameM);

fprintf(fp2,"+-----------------+n");

strcpy(s0,gcvt(K,3,&sb));

fprintf(fp2,"¦ fi ¦ F(%3s,fi) ¦n",s0);

fprintf(fp2,"+-----+-----------¦n");

for(i=1;i<=12;i++){

fprintf(fp2,"¦%2dп/6¦ %f ¦n",i,f[i-1]);

}

fprintf(fp2,"+-----------------+n");

fclose(fp1);

}

void Vvod(){ /* функцiя введення початкових даних */

cls1();

gotoxy(17,7);

textattr(ct+ (ctf << 4));

cprintf("+------------------------+"); gotoxy(17,8);

cprintf("¦ Введiть значення K= ¦"); gotoxy(17,9);

cprintf("+------------------------+");

gotoxy(17+21,8);

scanf("%f",&K);

cls1();

gotoxy(17,7);

}

void main(void){ /* Головна функцiя */

char vibor,tab, c;

int short i,a,b,x,y,mi,mi1,mif,mi13,ls;

const nm=5,nm1=3,nm13=2;

int npm[4]={2,3,3,1};

char *m[5]={"Про програму","Моделювання","Тестування","Виведення результатiв","Вихiд"};

char *pm[4][3]={{"Про автора","Завдання "},{"Сiмпсон","Чебишев","Гаус "},

{"Тест1","Тест2","Тест3"},{"Читати файл"}};

char *m13[2]={"На екран","Друк "};

do{

l3:;textbackground(7);

clrscr();

l1:; cls1();

mi=1;

gotoxy(1,25);

textattr(ct+ (ctf << 4));

cprintf(" Alt-F4 Вихiд F1 Допомога");

do{

gotoxy(1,1);

textattr(ct+ (ctf << 4));

cprintf(" ");

ls=2;

for(i=0;i<=nm;i++){

gotoxy(ls,1);

if(mi==i+1) textattr(ct+ (ctfa << 4));

else textattr(ct+ (ctf << 4));

cprintf("%s",m[i]);

ls=ls+strlen(m[i])+3;

}

c=getch();

if(c==75) {if(mi==1) mi=nm; else mi--;}

if(c==77) {if(mi==nm) mi=1; else mi++;}

if(c==107) exit(0); /* Alt-F4 - Вихiд */

if(c==59) zavdannja(); /* F1 - Допомога */

if(c==13){

if(mi<=4){

mi1=1;

l2:; do{

if(c!=13) c=getch();

else c=32;

if(c==72) if(mi1==1) mi1=npm[mi-1]; else mi1--;

if(c==80) if(mi1==npm[mi-1]) mi1=1; else mi1++;

if(c==27) goto l1;

if(c==107) exit(0); /* Alt-F4 - Вихiд */

if(c==59) zavdannja(); /* F1 - Допомога */

ls=2;

for(i=0;i<mi-1;i++) ls=ls+strlen(m[i])+3;

gotoxy(ls,2);

textattr(cr+ (ctf << 4));

strcpy(s,"+");

for(i=0;i<strlen(pm[mi-1][0]);i++) strcat(s,"-");

strcat(s,"+");

cprintf(s);

for(i=0;i<npm[mi-1];i++){

gotoxy(ls,i+3);

textattr(cr+ (ctf << 4));

cprintf("¦");

if(mi1==i+1) textattr(ct+ (ctfa << 4));

else textattr(ct+ (ctf << 4));

cprintf(pm[mi-1][i]);

textattr(cr+ (ctf << 4));

cprintf("¦");

}

gotoxy(ls,npm[mi-1]+3);

textattr(cr+ (ctf << 4));

strcpy(s,"+");

for(i=0;i<strlen(pm[mi-1][0]);i++) strcat(s,"-");

strcat(s,"+");

cprintf(s);

}

while(c!=13);

if(mi==1){

if(mi1==1) about(); else zavdannja();

while(!kbhit());

getch();

goto l3;

}

if(mi==2){

Vvod();

if(mi1==1) Simpson(0);

if(mi1==2) Chebyshev(0);

if(mi1==3) Gaus(0);

getch(); goto l3;

}

if(mi==3){

if(mi1==1) Simpson(1);

if(mi1==2) Chebyshev(1);

if(mi1==3) Gaus(1);

getch(); goto l3;

}

if(mi==4){

mi13=1; ls=2+strlen(pm[3][0])+2;

for(i=0;i<mi-1;i++) ls=ls+strlen(m[i])+3;

do{

if(c!=13) c=getch();

else c=32;

if(c==72) if(mi13==1) mi13=nm13; else mi13--;

if(c==80) if(mi13==nm13) mi13=1; else mi13++;

if(c==27){

for(i=0;i<nm13+2;i++){

gotoxy(ls/*12*/,i+3);

textattr(15 + (0 << 4));

cprintf("__________");

}

mi1=3;

goto l2;

}

if(c==107) exit(0); /* Alt-F4 - Вихiд */

if(c==59) zavdannja(); /* F1 - Допомога */

gotoxy(ls,3);

textattr(cr+ (ctf << 4));

cprintf("+--------+");

for(i=0;i<nm13;i++){

gotoxy(ls,i+4);

textattr(cr+ (ctf << 4));

cprintf("¦");

if(mi13==i+1) textattr(ct+ (ctfa << 4));

else textattr(ct+ (ctf << 4));

cprintf(m13[i]);

textattr(cr+ (ctf << 4));

cprintf("¦");

}

gotoxy(ls,nm13+4);

textattr(cr+ (ctf << 4));

cprintf("+--------+");

}

while(c!=13);

if(mi13==1) list(); else druk();

getch();

c=32;

}

}

else {exit(0); c=32;}

}

}

while(c!=13);

mif=1;

}

while(1==1);

exit(0);

}

4 Розробка тестів та аналіз результатів дослідження

4.1 Класифікація експериментів

Усі експерименти умовно поділяються на:

натурні, які проводяться на експериментальних установках;

чисельні, які проводяться за допомогою моделювання на ЕОМ.

4.2 Опис експериментальних досліджень

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

В результаті досліджень отримуються табличні значення інтегралів.

4.3 Дослідження еліптичного інтегралу першого порядку на ЕОМ

В результаті дослідження на ЕОМ отримані табличні значення інтегралу.

а)

б)

в)

Рис. 4.1. Табличні значення інтегралу:

а) методом Сімпсона, б) методом Чебишева, в) методом Гауса

Як видно із рис. 4.1 табличні значення інтегралу, отримані різними методами: Сімпсона, Чебишева, Гауса відрізняються несуттєво, що свідчить про високу точність цих методів.

4.4 Тестова перевірка чисельних методів

а)

б)

в)

Рис. 4.2. Тестова перевірка чисельних методів:

а) методом Сімпсона, б) методом Чебишева, в) методом Гауса

5 Оцінка похибок отриманих результатів

Оцінка похибок результатів дослідження проводилася шляхом порівняння табличних значень інтегралів (рис. 4.2), отриманих за допомогою розробленого програмного комплексу з тестовим прикладом. Результати цієї оцінки наведені в табл. 5.1.

Таблиця 5.1 - Оцінка похибок результатів дослідження

Метод

Абсолютна похибка

Відносна похибка, %

Сімпсона

0,000004

0,000256

Чебишева

0,000017

0,001202

Гауса

0,000000

0,000009

Відносна похибка розрахунків дуже мала, що є цілком прийнятним. Найбільш точний метод Гауса.

6 Оцінка ефективності комплексу програм для дослідження

Таблиця 6.1 - Оцінка ефективності комплексу програм для дослідження

Зміст

Назва

Розмір, байт

Час виконання, с

Текст основної програми

integral.cpp

12515

1,5

Час виконання програми є порівняно невеликим, що підтверджує ефективність розробки програми.

7 Розробка пакету документів для супроводження комплексу програм

7.1 Розробка інструкції програмісту

Середовище програмування - Turbo C++ версії 3.0 або вище.

Апаратне забезпечення.

Для розробки даного програмного продукту необхідно використовувати будь-яку модель IBM-сумісного компютерного комплексу. В комплект повинні входити наступні пристрої:

процесор 80286 або вище;

24 Кб або більше вільної оперативної памяті;

клавіатура, сумісна з Microsoft Natural;

привід дисководу для накопичувачів на магнітних дисках діаметром 3,5";

відеоадаптер, що підтримує режими монітору 80х25 символів і 16 кольорів в текстовому режимі;

CGA-сумісний монітор.

Програмний продукт розроблений для використання під керуванням операційної системи MS DOS.

7.2 Розробка інструкції користувачу

Дана програма дозволяє чисельно обчислювати значення елiптичного iнтегралу.

Строка меню мiстить 5 пiдменю: “Про програму”, “Моделювання”, “Тестування”, “Виведення результатів”, “Вихід”.

В пiдменю “Про програму” мiстяться наступнi пункти:

- “Про автора” - для виведення інформації про автора програми;

- “Завдання” - для виведення інформації про завдання на курсову роботу (F1).

В пiдменю “Моделювання” мiстяться наступнi пункти:

- “Сімпсон” - для чисельного рішенення визначеного інтегралу методом Сімпсона;

- “Чебишев” - для чисельного рішенення визначеного інтегралу методом Чебишева;

- “Гаус” - для чисельного рішенення визначеного інтегралу методом Гауса.

В пiдменю “Тестування” мiстяться наступнi пункти:

- “Тест1” - для тестового рішенення визначеного інтегралу методом Сімпсона;

- “Тест2” - для тестового рішенення визначеного інтегралу методом Чебишева;

- “Тест3” - для тестового рішенення визначеного інтегралу методом Гауса.

В пiдменю “Виведення результатів” мiстяться наступнi пункти:

- “Читати файл” - для читання таблиці інтегралів.

Цей пункт містить наступнi підпункти:

- “На екран” - для виведення таблиці інтегралів на екран;

- “Друк” - для виведення таблиці інтегралів на друк.

Підменю “Вихiд” призначене для виходу з програми (Alt-F4).

Висновки

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

В розділі 1 описано короткі теоретичні відомості, присвячені вибору чисельного методу для розвязання поставленої задачі.

В розділі 2 розроблено алгоритми моделювання, а саме: планування вхідних та вихідних даних, описано задачі, які вирішує система, наведено описовий алгоритм головної програми, зображено схему алгоритму головної програми, описано основні функції моделювання.

В розділі 3 подано лістинг всієї програми.

В розділі 4 проведено аналіз результатів досліджень, який показав, що значення інтегралу, отримані різними методами: Сімпсона, Чебишева, Гауса відрізняються несуттєво.

В розділі 5 здійснено оцінку похибки отриманих результатів, в результаті якої встановлено, що відносна похибка розрахунків дуже мала, що є цілком прийнятним. Найбільш точний метод Гауса.

В розділі 6 проведено оцінку ефективності комплексу програм для дослідження, в результаті якого ми прийшли до висновку, що програма є ефективною.

В розділі 7 розроблено пакет документів на супроводження програми: інструкція програмісту, інструкція користувачу.

Додаток А

Міністерство освіти і науки України

Вінницький національний технічний університет

Інститут автоматики електроніки та компютерних систем управління

Кафедра компютерних систем управління

УзгодженоРозроблено

Керівник __________С.М. Москвіна

Студент_________ А.С. Болоненков

”_____” __________2006р.

Технічне завдання

на виконання курсової роботи

«Дослідження еліптичного інтегралу першого порядку на ЕОМ за допомогою чисельних методів»

При розробці даної роботи необхідно виконувати слідуючи етапи:

1.1 Найменування та галузь застосування обєкта розробки: цей комплекс програм може бути застосований на будь-якому підприємстві для полегшення та покращення результатів роботи інженерів

1.2 Підстава для проведення роботи: дослід штучного інтелекту

1.3 Дата початку роботи:8.01.06.

1.4 Дата закінчення роботи: 10.04.06.

1.5 Мета призначення розробки: створити як найкращий комплекс програм для полегшення та покращення роботи інженера підприємства

1.6 Вимоги до надійності системи: використання структурного програмування, окреме підключення модулів, єдине меню, тощо - усе це забезпечує надійність системи. Програмне забезпечення та супроводжуюча текстова документація повинна задовільнити таким гостам:

ГОСТ 19.701-90 (МСО 5807-85) ГОСТ 19.101-77 (СТСЄВ 1626-7а)

ГОСТ 19.781-74 ГОСТ 7.1-84 ДСТУ 3008-85

ГОСТ 19.401-78 ГОСТ 19.106-78

1.7 Стадії та етапи розробки:

1 етап: розробка індивідуального та технічног о завдання.(до 15.01.06)

2 етап: огляд та аналіз методів дослідження еліптичного інтегралу першого порядку на ЕОМ (до 1.02.6.

3 етап: розробка алгоритмів дослідження еліптичного інтегралу першого порядку на ЕОМ (до 20.02.06).

4 етап: розробка керуючої програми, яка повинна працювати в режимі багато ієрархічного меню (до 10.03.06).

5 етап: обєднання всіх програмних модулів та тестування керуючої програми (до 15.03.06)

6 етап: розробка тестів, тестування та демонстрація роботи всього комплексу (до 15.03.06).

7 етап: розробка технічної документації та пояснювальної записки (до 20.03.06).

8 етап: вимоги до безпеки: розроблене програмне забезпечення повинно відповідати вимогам Сніп та ДЕСТів до робочого місця оператора ЕОМ.

Додаток Б

Структура дискети

Дискета складається з двох розділів:

1. Текст

2. Програма

ТекстПрограма

- Титульний лист.doc- Integral.cpp

- Завдання.doc- Integral.exe

- Зміст.doc

- Вступ.doc

- Анотація.doc

- Глава №1.doc

- Глава №2.doc

- Глава №3.doc

- Глава №4.doc

- Глава №5.doc

- Глава №6.doc

- Глава №7.doc

- Висновки.doc

- Література.doc

- Додаток А.doc

- Додаток Б.doc

Література

1. Керниган Б., Ритчи Б. Язык программирования Си. - М.: Финансы и статистика, 1985. - 205 с.

2. Уинер Р. Язык Турбо Си. - М.: Мир, 1991 - 363 с.

3. Лэнгсам Й., Огенстайн М., Тененбаум А. Структуры данных для персональных ЭВМ. - М.: Мир,1989 - 145 с.

4. Вирт Н. Алгоритмы и структуры данных. - М.: Мир, 1978 - 403 с.

5. Стивенс А. Техника программирования на Турбо Си. - Мир, 1991 - 322 с.

6. Ракитин Т.А., Первушин В.А. “Практическое руководство по численным методам с приложением программ на языке Basic“

7. Крылов В.И. “Приближенные вычисления интегралов“ - М. : Физмат.

8. Міщенко С.М., Конспект лекцій з обчислювальних методів та застосування ЕОМ, ВНТУ, 2004.

9. Дьяконов В.П. Справочник по алгоритмам и программам на языке бейсик для персональных ЭВМ: Справочник. - М.: Наука. Гл. ред. физ-мат. лит., 1987. - 240 с.



Не сдавайте скачаную работу преподавателю!
Данную курсовую работу Вы можете использовать для написания своего курсового проекта.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем курсовую работу самостоятельно:
! Как писать курсовую работу Практические советы по написанию семестровых и курсовых работ.
! Схема написания курсовой Из каких частей состоит курсовик. С чего начать и как правильно закончить работу.
! Формулировка проблемы Описываем цель курсовой, что анализируем, разрабатываем, какого результата хотим добиться.
! План курсовой работы Нумерованным списком описывается порядок и структура будующей работы.
! Введение курсовой работы Что пишется в введении, какой объем вводной части?
! Задачи курсовой работы Правильно начинать любую работу с постановки задач, описания того что необходимо сделать.
! Источники информации Какими источниками следует пользоваться. Почему не стоит доверять бесплатно скачанным работа.
! Заключение курсовой работы Подведение итогов проведенных мероприятий, достигнута ли цель, решена ли проблема.
! Оригинальность текстов Каким образом можно повысить оригинальность текстов чтобы пройти проверку антиплагиатом.
! Оформление курсовика Требования и методические рекомендации по оформлению работы по ГОСТ.

Читайте также:
Разновидности курсовых Какие курсовые бывают в чем их особенности и принципиальные отличия.
Отличие курсового проекта от работы Чем принципиально отличается по структуре и подходу разработка курсового проекта.
Типичные недостатки На что чаще всего обращают внимание преподаватели и какие ошибки допускают студенты.
Защита курсовой работы Как подготовиться к защите курсовой работы и как ее провести.
Доклад на защиту Как подготовить доклад чтобы он был не скучным, интересным и информативным для преподавателя.
Оценка курсовой работы Каким образом преподаватели оценивают качества подготовленного курсовика.

Сейчас смотрят :

Курсовая работа Наследование по закону и по завещанию
Курсовая работа Юридическая ответственность: понятие, виды, принципы
Курсовая работа Сюжетно-ролевая игра, как фактор формирования взаимоотношений детей старшего дошкольного возраста со сверстниками
Курсовая работа Особенности перевода аббревиатур и сокращений с английского на русский язык
Курсовая работа Ценовая политика предприятия
Курсовая работа Операции коммерческого банка с пластиковыми картами
Курсовая работа Управление закупками в торговой фирме (на примере ООО "Орио")
Курсовая работа Политический лидер в современной России
Курсовая работа Особенностьи проявления самооценки у детей старшего дошкольного возраста
Курсовая работа Виды и составы преступлений
Курсовая работа Организация банкета-чая на 20 человек
Курсовая работа Оценка стоимости предприятия
Курсовая работа Социальная защита инвалидов
Курсовая работа Организация административно-хозяйственной службы гостиницы
Курсовая работа Цех разлива пива под давлением