на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Дослідження методів чисельного інтегрування
3. Функціональне призначення програми

Програма призначена для обчислення визначеного інтегралу I=, методом Чебишева третього, четвертого та п'ятого порядків, також дає змогу зменшити похибку обчислень за рахунок зменшення кроку інтегрування.

Програма має гарний інтерфейс користувача з меню, що керується з клавіатури. Результати обчислень виводяться на екран монітора.

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

Комп'ютер може швидко опрацьовувати дані і виводити результати на екран.

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

Вхідні дані:

1. Інтеграл: I=;

2. Крок обчислень 0.1,0.2,0.5;

3. Порядок інтегрування: третього , четвертого та п'ятого порядку.

Вихідні дані:

1. Значення інтегралу, що знаходить программа.

2. Загальна похибка по заданим методам.

3. Порівняння результатів з точним значенням.

5. Результати розрахунків

Результатами обчислень є знаходження значення визначеного інтеграла I=, , зазначеними методами, з кроком: h=0.1, h=0.2, h=0.5.

При розрахунку інтегралу 3-го порядку програма виведе на екран слідуючі результати:

Інтеграл Чебишева 3-го порядку: 2.649061117170

Загальна похибка: 0.0316342854

Точне розв'язання (Mathcad 2001): 2.68069545714219

Крок: 0.5

Інтеграл Чебишева 3-го порядку: 2,66138784520

Загальна похибка: 0.0193076119

Точне розв'язання (Mathcad 2001): 2.68069545714219

Крок: 0.2

Інтеграл Чебишева 3-го порядку: 2,67298758310

Загальна похибка: 0.00770787

Точне розв'язання (Mathcad 2001): 2.68069545714219

Крок: 0.1

При розрахунку інтегралу 4-го порядку програма виведе на екран слідуючі результати:

Інтеграл Чебишева 4-го порядку: 2.6680680931

Загальна похибка: 0.01262744

Точне розв'язання (Mathcad 2001): 2.68069545714219

Крок: 0.5

Інтеграл Чебишева 4-го порядку: 2,6743859370

Загальна похибка: 0.006309519

Точне розв'язання (Mathcad 2001): 2.68069545714219

Крок: 0.2

Інтеграл Чебишева 4-го порядку: 2,676438956720

Загальна похибка: 0,00385156152

Точне розв'язання (Mathcad 2001): 2.68069545714219

Крок: 0.1

При розрахунку інтегралу 5-го порядку програма виведе на екран слідуючі результати:

Інтеграл Чебишева 5-го порядку: 2,68069554160

Загальна похибка: 0.00000008443

Точне розв'язання (Mathcad 2001): 2.68069545714219

Крок: 0.5

Інтеграл Чебишева 5-го порядку: 2.68069545713707

Загальна похибка: 0.00000000512

Точне розв'язання (Mathcad 2001): 2.68069545714219

Крок: 0.2

Інтеграл Чебишева 5-го порядку: 2.68069545714209

Загальна похибка: 0,00000000010

Точне розв'язання (Mathcad 2001): 2.68069545714219

Крок: 0.1

Висновки

В даній курсовій роботі було проведене дослідження чисельних методів вирішення визначеного інтегралу виду I=, по методу Чебишева.

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

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

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

Література

В.Т.Маликов, Р.Н.Кветный. Вычислительные методы и применение ЭВМ. - К.: Вища школа, 1989.- 213 с.

В.М. Дубовий, Р.Н.Квєтний Методичні вказівки до лабораторних робіт з програмування та застосування ЕОМ . Навчальне видання. -Вінниця, ВПІ, 1992.

В.М. Дубовий, Р.Н.Квєтний. Програмування комп'ютеризованих систем управління та автоматики. - В.: ВДТУ, 1997. - 208с.

Р.Н.Кветний Методи комп'ютерних обчислень. Навчальний посібник.- Вінниця: ВДТУ, 2001.-148с.

А. І. Марченко, Л. А. Марченко “Программирование в среде Турбо Паскаль 7.0”, Київ “ВЕК+”, 1999 р.

Додаток А

Лістинг

program Kursova;

uses crt,graph;

const

a=0;

b=1;

c=1.5;

d=2;

t3:array[1..3] of real=(-0.707107,0,0.707107);

t4:array[1..4] of real=(-0.794654,-0.187592,0.187592,0.794654);

t5:array[1..5] of real=(-0.832498,-0.374541,0,0.374541,0.832498);

Type TMenuItems=array[1..10] of string;

TDelta=array[1..300] of real;

Var Item:TMenuItems;

ResM:TDelta;

i,n:integer;

h:real;

ki:integer;

M,x,Ic,I2n,nc,sc1,sc2,I1n,x1,x2:real;

s,hs,s1:string;

k:Integer;

sum,int,si:real;

Delta,AllDelta,sum1:real;

Function Fact(n:integer):integer;

begin

if n=0 then Fact:=1

else Fact:=n*Fact(n-1)

end;

{Ф-я}

function f(x1:real):real;

begin

f:=exp(-d*x1*x1+c)

end;

procedure InitGraphMode;

var gd,gm:integer;

begin

gd:=VGA;

gm:=VGAHi;

initgraph(gd,gm,'');

end;

procedure DrawCursor(x,y:integer);

var i,j:integer;

begin

setcolor(white);

setlinestyle(0,0,1);

MoveTo(x,y+3);LineTo(x+10+5,y);LineTo(x+5,y-10);LineTo(x+10+10+5,y+3);

LineTo(x+5,y+16);LineTo(x+10+5,y+6);LineTo(x,y+3);

setfillstyle(1,red);

end;

{---------------------------------------------------------------------------}

Procedure HideCursor(x,y:integer);

begin

setcolor(lightblue); {insert your background color instead of black}

setlinestyle(0,0,1);

MoveTo(x,y+3);LineTo(x+10+5,y);LineTo(x+5,y-10);LineTo(x+10+10+5,y+3);

LineTo(x+5,y+16);LineTo(x+10+5,y+6);LineTo(x,y+3);

setfillstyle(1,red);

end;

Function WaitWhileKeypressed(var FKey:boolean):char;

var result:char;

begin

FKey:=false;

while keypressed do result:=readkey; {It clears keyboard buffer}

repeat until keypressed;

result:=readkey;

if result=#0 then

begin

result:=readkey;

FKey:=true;

end;

WaitWhileKeypressed:=result;

end;

Procedure Menu(x,y:integer;Items:TMenuItems;n:integer;var point:integer);

var i:integer;

ch:char;

FKey:boolean;

begin

setbkcolor(lightblue);

setcolor(yellow);

Rectangle(10,10,625,465);

setcolor(lightgreen);

Rectangle(14,14,621,461);

setcolor(lightred);

for i:=1 to n do outtextxy(x+50,y+(i-1)*30,Items[i]);

repeat

for i:=1 to n do

if i<>point then HideCursor(x,y+(i-1)*30)

else DrawCursor(x,y+(i-1)*30);

ch:=WaitWhileKeypressed(FKey);

case ch of

#72: if point>1 then dec(point);

#80: if point<n then inc(point);

#27: point:=-1;

end;

until (ch=#13) or (ch=#27);

for i:=1 to n do HideCursor(x,y+(i-1)*30);

end;

procedure PrintArray(n:integer; m:TDelta);

var s0,s1:string;

begin

setfillstyle(1,lightblue);

bar(360,40,620,450);

for i:=1 to n do

begin

str(i,s0);

str(m[i]:5:10,s1);

if (i mod 25 =0) then

begin

readln;

bar(360,40,620,450);

end;

outtextxy(430,(i mod 25)*15+40,s0+' '+s1);

end;

end;

{-----------------------------------------------------------------------}

begin

InitGraphMode;

setcolor(blue);

h:=0.1;

repeat

cleardevice;

Item[1]:='Метод Чебишева 3-го порядку';

Item[2]:='Метод Чебишева 4-го порядку';

Item[3]:='Метод Чебишева 5-го порядку';

Item[4]:='Крок обчислень=0.1';

Item[5]:='Крок обчислень=0.2';

Item[6]:='Крок обчислень=0.5';

Item[7]:='Про автора';

Item[8]:='Вихид';

i:=1;

setcolor(white);

Menu(50,30,Item,7,i);

case i of

1:begin

setbkcolor(lightblue);x:=a; sum:=0; i:=0;

while x<=b do begin

inc(i);

x:=x+h;

si:=0;

for k:=1 to 3 do si:=si+f(x-h/2+h/2*t3[k]);

si:=h/3*si;

sum:=sum+si;

sum1:=(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*

48*exp(-2*x*x+1.5)-384*x*x*exp(-2*x*x+1.5)+256*x*x*x*x*exp(-2*x*x+1.5);

n:=i+10;

end;

delta:=((b-a)/(n*fact(3)))*sum1;

delta:=Abs(delta);

AllDelta:=abs(delta);

str(Delta:12:10,s1);

Resm[i]:=Delta;

setcolor(red);

str(Sum:12:18,s);

str(AllDelta:12:20,s1);

str(h:2:3,hs);

setcolor(blue);

Outtextxy(100,240,'Интеграл: '+s);

Outtextxy(45,260,'Точне значення (Mathcad): 2.68069545714219');

Outtextxy(100,280,'Похибка: '+s1);

Outtextxy(100,300,'Крок: '+hs);

readln;

end;

2: begin

setbkcolor(lightblue);x:=a; sum:=0; i:=0;

while x<=b do begin

inc(i);

x:=x+h;

si:=0;

for k:=1 to 4 do si:=si+f(x-h/2+h/2*t4[k]);

si:=h/4*si;

sum:=sum+si;

sum1:=(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*

(-960*x*exp(-2*x*x+1.5)+2560*x*x*x*exp(-2*x*x+1.5)-1024*x*x*x*x*x*exp(-2*x*x+1.5));

n:=i+10;

end;

delta:=((b-a)/(n*fact(3)))*sum1;

delta:=Abs(delta);

AllDelta:=abs(delta);

str(Delta:12:10,s1);

Resm[i]:=Delta;

setcolor(red);

str(Sum:12:18,s);

str(AllDelta:12:20,s1);

str(h:2:3,hs);

setcolor(blue);

Outtextxy(100,240,'Интеграл: '+s);

Outtextxy(45,260,'Точне значення (Mathcad): 2.68069545714219');

Outtextxy(100,280,'Похибка: '+s1);

Outtextxy(100,300,'Крок: '+hs);

readln;

end;

3:begin

setbkcolor(lightblue);x:=a; sum:=0; i:=0;

while x<=b do begin

inc(i);

x:=x+h;

si:=0;

for k:=1 to 5 do si:=si+f(x-h/2+h/2*t5[k]);

si:=h/5*si;

sum:=sum+si;

sum1:=(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*(x-((a+b)/2))*

(x-((a+b)/2))*(-960*exp(-2*x*x+1.5)+11520*x*x*exp(-2*x*x+1.5)

-15360*x*x*x*x*exp(-2*x*x+1.5)+4096*x*x*x*x*x*x*exp(-2*x*x+1.5));

n:=i+10;

end;

delta:=((b-a)/(n*fact(3)))*sum1;

delta:=Abs(delta);

AllDelta:=abs(delta);

str(Delta:12:10,s1);

Resm[i]:=Delta;

setcolor(red);

str(Sum:12:18,s);

str(AllDelta:12:20,s1);

str(h:2:3,hs);

setcolor(blue);

Outtextxy(100,240,'Интеграл: '+s);

Outtextxy(45,260,'Точне значення (Mathcad): 2.68069545714219');

Outtextxy(100,280,'Похибка: '+s1);

Outtextxy(100,300,'Крок: '+hs);

readln;

end;

4: begin

sound(500);

setbkcolor(lightred);

h:=0.01;

Outtextxy(150,200,'Крок h=0.01 ');

Outtextxy(170,250,'Натиснить будь-яку клавишу ...');

delay(10000);

nosound;

repeat until keypressed;

end;

5: begin

setbkcolor(lightred);

h:=0.02;

Outtextxy(150,200,'Крок h=0.02 ');

Outtextxy(170,250,'Натиснить будь-яку клавишу ...');

repeat until keypressed;

end;

6: begin

setbkcolor(lightred);

h:=0.05;

Outtextxy(150,200,'Крок h=0.05 ');

Outtextxy(170,250,'Натиснить будь-яку клавишу ...');

repeat until keypressed;

end;

7: begin

setbkcolor(lightred);

Outtextxy(160,200,'Програму виконав ст.гр. 3АВ-02');

Outtextxy(210,220,'Нетяга О.В.');

repeat until keypressed;

end;

8: exit;

end;

until (i=7) or (i=-1);

CloseGraph;

end.

Додаток Б

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.