49567 (Дослідження методів чисельного інтегрування), страница 2

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

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

Документ из архива "Дослідження методів чисельного інтегрування", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

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

Текст 2 страницы из документа "49567"

Похибка обчислень за методом Чебишева знаходиться за формулою:


2. Розробка та опис логічної частини програми

Програма складається з двох блоків. Це – інтерфейний модуль, що забезпечує користувача змогою спілкуватися з комп’ютером за допомогою клавіатури, та сама програма, що здійснює всі обчислювальні операції.

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

  1. обчислення інтегралу методом Чебишева 3-го порядку: виконується алгоритм, який детально пояснено в додатку Б.

  2. обчислення інтегралу методом Чебишева 4-го порядку.

  3. обчислення інтегралу методом Чебишева 5-го порядку

  4. Задається крок обчислення h=0.1;

  5. Задається крок обчислення h=0.2;

  6. Задається крок обчислення h=0.5;

  7. Про автора – довідка про автора програми;

  8. Вихід з програми – здійснюється вихід з програмного середовища ТР;

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

Тип TMenuItems – масив пунктів меню. Далі задаємо підінтегральну функцію. Процедура InitGraphMode – процедура для ініціалізації графіки, VGA - тип графічного драйверу, VGAHi – тип графічного режиму.

  • DrawCursor(x,y:integer) – процедура для малювання курсору;

  • HideCursor(x,y:integer) – процедура, що автоматично забирає курсор з екрану;

  • Function WaitWhileKeypressed(var FKey:boolean):char – функція, що очікує нажатої клавіші, цикл повторюється до тих пір, доки не буде зчитано код нажатої клавіші;

  • Procedure menu(x,y:integer;…var poin:integer) – дана процедура власне виводить на екран графічне меню та надає змогу користувачеві здійснити вибір пункту меню за допомогою графічного курсору.


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. Похибку для даної функції доцільно було б оцінювати, як абсолютне значення різниці між точним значенням та одержаним в програмі.

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

Література

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

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

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

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

  5. А. І. Марченко, Л. А. Марченко “Программирование в среде Турбо Паскаль 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

#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));

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