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

Міністерство освіти інауки УкраїниВінницький державний технічний університет
Інститут ІНАЕКСУФакультет АКСУКафедра АІВТКурсова робота з дисципліни :«Обчислювальні методи та застосування ЕОМ»
Керівник професор, д.т.н._______________ Квєтний Р.Н.
Студент гр. 3АВ-0_______________ КучерявийВ.Р.
2003

ЗмістЗавдання
1.Загальні відомості
2.Вибір методу інструментальних засобів вирішеннязадач
3.Функціональне призначення програми4.Розробката опис логічної частини програми5.Керівництвооператору6.РезультатиобчисленьВисновкиЛітература
Додаток А
Блок-схема алгоритму
Додаток Б
Лістинг програми

Анотація
В даній курсовій роботі проведено дослідженнярізницевого методу для розв’язання крайової задачі. Дослідження проводиться наприкладі заданого диференційного рівняння. Дається опис методу та задачі вцілому.
1. Загальні відомості
 
Формула Чебишева
Формула обчислення може бути приведена до вигляду
/> (1)
заміною змінних
/>
При виведенні формули Чебишева використовуються такі умови:
• коефіцієнти АІрівні між собою;
• квадратурна формула (1) точна для всіх поліномів до степеня пвключно.
При цих умовах формула (1) має вигляд:
/> (2)
Для знаходження/>використовуємодругу умову, згідно з якою формула (2) повинна бути точною для функції вигляду
/>
Після підстановки цих функцій в (2) отримаємо систему рівнянь
/>
Система рівнянь має розв’язок при п п=9. Вцій обмеженій точності і полягає недолік формули Чебишева. Значення/>для різних п наведенів довідниках.
Для довільного інтервалу (а, b) формула (2)приймає вигляд
/>
Де
/>
Похибка обчислень за методом Чебишева:
/>
Формула Гаусса
Формула Гаусса називається формулою найвищої алгебраїчноїточності. Для формули розрахунку найвища точність може бути досягнута дляполіномів степеня (2п — 1), які визначаються 2n постійними /> і />(і=1,2,…,n).
Завдання полягає у визначенні коефіцієнтів/>і абсцис точок />. Для знаходженняцих постійних розглянемо виконання формули розрахунку для функцій вигляду
/>
Враховуючи, що
/>
отримаємо систему рівнянь
/>
Ця система нелінійна, і її звичайне розв’язання пов’язане іззначними обчислювальними труднощами. Але якщо використовувати систему дляполіномів вигляду
/>
де /> — поліномЛежандра, тоді її можна звести до лінійної відносно коефіцієнтів /> з заданими точками/>. Оскільки степеніполіномів в співвідношенні не перевищують 2п -1, повинна виконуватисясистема (4) і формула (5) приймає вигляд
/>
В результаті властивості ортогональності ліва частина виразудорівнює 0, тоді
/>
що завжди забезпечується при будь-яких значеннях /> в точках/>, які відповідають коренямвідповідних поліномів Лежандра.
Підставляючи ці значення/> всистему і враховуючи перші n. рівнянь, можна визначити коефіцієнти/>.
Формула розрахунку, де /> — нуліполінома Лежандра/>, а/>
визначаються із системи, називається формулою Гаусса.
Значення/>для різних п наведенів довідниках.
Для довільного Інтервалу (а,b) формула дляметоду Гаусса приймає вигляд
/>
Де
/>

Оцінка похибки формули Гаусса з п вузлами визначається ізспіввідношення
/>
де/> — максимальнезначення />похідної на ділянці />
 
2.Вибір методу інструментальних засобів вирішення задач
Розв’язок даної задачіреалізовано на ЕОМ, причому було складено алгоритм та програму в середовищі Borland Delphi 7. Програма є досить простою та зрозумілою для користувачасереднього рівня. Готову програму можна використовувати навіть на мінімальнихсистемних параметрах процесора типу Intel P-100, 8 Мb ОЗУ таопераційній системі MS-Windows 95.
3. Функціональнепризначення
 
Розробленапрограма дозволяє розрахувати вказаний інтеграл:
/>,
методами Чебишевата Гауса з кроками 0,1 і 0,05.
Результатививодяться у текстовій формі.
4.Розробката опис логічної частини програми
В даній курсовій роботібуло розроблено програмне забезпечення для розв’язання та дослідження заданогодиференційного рівняння. Розвязок ведеться за різницевим алгоритмом. Кодуванняна мові Паскаль проводилося з застосуванням інтуїтивно-зрозумілих назв зміннихта процедур. Також відступи та табуляція дозволяє досить легко збагнутиструктуру програми.
В інтерфейсі також недопущено зайвих елементів.
5.Керівництво оператору
Для завантаження програми необхідно запуститипрограмний файл Project1.exe. При цьому зявиться вікно (рис. 1), деможна задати початкові умови, переглянути постановку задачі а такожознайомитися з розв’язком при натисненні кнопки Розвязок.
/>
Рисунок 1. Інтерфейс програми.
6.Результати обчислень
 
Результати обчислень:
Метод Гауса:0,9962219100
Похибка: 0,0004163754
Метод Чебишева:0,9961046200
Похибка: 0,0111120270
Точне розвязання (Mathcad):1,1367262
Висновки
При виконані даної курсової роботи я навчиласьрозраховувати інтеграли за допомогою методів Гауса та Чебишева. Було відмічено,що метод Гауса є значно точнішим від Чебишева, за що і отримав назву методанайвищої математичної точності.

Література
1. Самарський А.А. Вступ вчисельні методи. — М.: Наука,
1987. – 286 с.
2.Квєтний Р.Н., Маліков В.Т. Обчислювльні методи тавикористання ЕОМ. Вища школа, 1989 – 55 с., 104 с.

ДодатокA– Алгоритмроботипрограми
/>

Додаток Б — Лістингпрограми
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, Math;
type
TForm1 = class(TForm)
GroupBox2: TGroupBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
Memo1: TMemo;
LabeledEdit1: TLabeledEdit;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
 private
{ Private declarations }
 public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
const
c = 1.5;
d = 2.0;
n = 3;
tc:array[1..3] of extended = (-0.707107, 0,0.707107);
tg:array[1..3] of extended = (-0.77459667, 0,0.77459667);
Ag:array[1..3] of extended = (5/9, 8/9, 5/9);
function f(x:extended):extended;
begin
result := c*x/2+1/cos(d*x);
end;
function f_4(x:extended):extended;
begin
result := power(d,4)*
(24-20*power(cos(d*x),2)+
power(cos(d*x),4))/
power(cos(d*x),5);
end;
function f_6(x:extended):extended;
begin
 result := -power(d,6)*
(-720-840*power(cos(d*x),2)-
182*power(cos(d*x),4)+power(cos(d*x),6))/
power(cos(d*x),7);
end;
var
i :integer;
h, x,a,b:Extended;
sumC,sumG,iG,iC,ec,max:Extended;
errC,errG:Extended;
begin
try
h:=StrToFloat(LabeledEdit1.Text);
a := 0.0;
b := 0.785-h;
errC:=0; errG:=0;
x:=a; sumC:=0; sumG:=0;
while x
iG:=0; iC:=0; ec:=0; max:=0;
for i:=1 to 3 do begin
iC:=iC+(f((2*x+h)/2+h/2*tC[i]));
iG:=iG+(Ag[i]*f((2*x+h)/2+h/2*tG[i]));
ec:=ec+power((2*x+h)/2+h/2*tC[i]-(2*x+h)/2,n+1)*f_4((2*x+h)/2+h/2*tC[i]);
if f_6((2*x+h)/2+h/2*tG[i])>max thenmax:=f_6((2*x+h)/2+h/2*tG[i]);
end;
iC:=iC*h/n;
iG:=iG*h/2;
sumC:=sumC+iC;
sumG:=sumG+iG;
max:=power(h,2*n+1)*power(6,4)*max/power(2,2*n+1)/power(120,3)/(2*n+1);
if h/18*ec>errC then errC:=h/18*ec;
if max>errG then errG:=max;
x:=x+h;
end;
a := 0.785+h;
b := 1;
x:=a;
while x
iG:=0; iC:=0; ec:=0; max:=0;
for i:=1 to 3 do begin
iC:=iC+(f((2*x+h)/2+h/2*tC[i]));
iG:=iG+(Ag[i]*f((2*x+h)/2+h/2*tG[i]));
ec:=ec+power((2*x+h)/2+h/2*tC[i]-(2*x+h)/2,n+1)*f_4((2*x+h)/2+h/2*tC[i]);
if f_6((2*x+h)/2+h/2*tG[i])>max thenmax:=f_6((2*x+h)/2+h/2*tG[i]);
end;
iC:=iC*h/n;
iG:=iG*h/2;
sumC:=sumC+iC;
sumG:=sumG+iG;
max:=power(h,2*n+1)*power(6,4)*max/power(2,2*n+1)/power(120,3)/(2*n+1);
if h/18*ec>errC then errC:=h/18*ec;
if max>errG then errG:=max;
x:=x+h;
end;
with Memo1.Lines do begin
clear;
Add(‘Результати обчислень: ‘);
Add(‘ Метод Гауса: ‘+FloatToStrF(sumG,ffFixed,8,10));
Add(‘ Похибка: ‘+FloatToStrF(errG,ffFixed,8,10));
Add(‘ Метод Чебишева:’+FloatToStrF(sumC,ffFixed,8,10));
Add(‘ Похибка: ‘+FloatToStrF(errC,ffFixed,8,10));
Add(‘ Точне розвязання (Mathcad):
‘+FloatToStrF(1.1367262217813367605,ffFixed,8,10));
end;
except
on EConvertError do
Application.MessageBox(‘Неправильно введен_ дан_’,’Увага’);
end;
end;
end.