Наближене обчислення значень певного інтеграла

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Федеральне агентство з освіти РФ

Тульський державний університет

Кафедра АОТ і ОС

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

по курсу інформатика

"Наближеного обчислення значень ВИЗНАЧЕНОГО ІНТЕГРАЛА"

Тула, 2007

Зміст

Введення

Метод середніх прямокутників

Метод трапецій

Метод Ньютона-Котеса

Метод Чебишева

Блок-схема основної програми

Блок-схема процедури: метод трапецій

Блок-схема процедури: метод Ньютона-Котеса

Блок-схема процедури: метод Чебишева

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

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

Введення

На практиці рідко вдається обчислити точно визначений інтеграл. Наприклад, в елементарних функціях не обчислюється функція Лапласа

широко використовується в теорії ймовірностей для обчислення ймовірностей, пов'язаних з нормально розподіленими випадковими величинами.

Завдання чисельного інтегрування полягає в знаходженні наближеного значення інтеграла:

(1)

від безперервної на відрізку [a, b] функції .

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

Приклад: Наближене нерівність

(2)

де q j - деякі числа, x j - деякі точки відрізка [a, b], називається квадратурної формулою, яка визначається вагами q j і вузлами x j.

Кажуть, що квадратурна формула точна для многочленів ступеня m, якщо при заміні на довільний алгебраїчний m наближене рівність (2) стає точним.

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

Метод середніх прямокутників

Обчислення визначеного інтеграла геометрично означає обчислення площі фігури, обмеженої кривою , Прямими х = а і х = b і віссю абсцис. Наближено ця площа дорівнює сумі площ прямокутників.

Позначимо , Де

n - кількість кроків.

Формула лівих прямокутників:

Формула правих прямокутників:

Більш точною є формула середніх прямокутників:

Метод трапецій

Площа під кривою замінюється сумою площ трапецій:

або

Неважко переконатися, що

Оскільки точність обчислень за наведеними формулами залежить від числа розбиття n вихідного відрізка [a; b], то обчислювальний процес доцільно будувати ітераційним методом, збільшуючи n до тих пір, поки не буде виконана умова

<

де - Значення інтеграла на кроці, а - Точність обчислень.

Метод Ньютона-Котеса

Замінимо підінтегральна функція f (x) інтерполяційним многочленом Лагранжа:

.

Тоді

;

(1)

Так як dx = hdq, то

Так як , То

Остаточно отримуємо формулу Ньютона-Котеса:

(2)

Величини H i називають коефіцієнтами Ньютона-Котеса. Вони не залежать від f (x). Їх можна обчислювати заздалегідь для різного числа вузлів n (таблиця 1).

Формула Ньютона-Котеса з n вузлами точна для поліномів ступеня не вище n. Для одержання більшої точності не рекомендується використовувати формули з великим числом вузлів, а краще розбивати відрізок на подотрезкі, до кожного з яких застосовується формула з одним і тим же невеликим числом вузлів.

Таблиця 1. Значення коефіцієнтів Ньютона-Котеса

H

N


1

2

3

4

H 0

1 / 2

1 / 6

1 / 8

7 / 90

H 1

1 / 2

2 / 3

3 / 8

16/45

H 2

-

1 / 6

3 / 8

2 / 15

H 3

-

-

1 / 8

16/45

H 4

-

-

-

7 / 90

Цікаво відзначити, що з формули (2) випливають як приватні випадки: формула трапецій при n = 1

;

формула Сімпсона при n = 2

;

правило трьох восьмих при n = 3

.

Формулу (2) при n> 6 не застосовують, тому що коефіцієнти Ньютона-Котеса стають занадто великими і обчислювальна похибка різко зростає.

Метод Чебишева

П.Л. Чебишев запропонував формулу:

,

в якій коефіцієнти c i фіксовані, а х i підлягають визначенню.

Користуючись алгебраїчними властивостями симетричних многочленів, опустивши перетворення, обмежимося готовими результатами. У таблиці 2 наведені значення вузлів квадратурної формули Чебишева для деяких значень n.

Таблиця 2. Значення вузлів квадратурної формули Чебишева

Число інтервалів n

Номер вузла i

Значення вузла X i

1

1

2

0,211325

0,788675

2

1

2

3

0,146447

0,500000

0,853553

3

1

2

3

4

0,102673

0,406204

0,593796

0,897327

4

1

2

3

4

5

0,083751

0,312730

0,500000

0,687270

0,916249

5

1

2

3

4

5

6

0,066877

0,288740

0,366682

0,633318

0,712260

0,933123

Для будь-яких меж інтегрування маємо:

де ,

Значення x i беруться з таблиці при обраному значенні n. Для підвищення точності можна не тільки збільшувати кількість вузлів, але і розбивати відрізок [a, b] на подотрезкі, до кожного з яких застосовується відповідна формула. Не рекомендується застосовувати формули з великою кількістю вузлів (n> = 8). Доведено, що для n = 8 побудувати квадратурної формули Чебишева неможливо.

Блок-схема основної програми

Блок-схема процедури: метод трапецій

Блок-схема процедури: метод Ньютона-Котеса

Блок-схема процедури: метод Чебишева

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

program Curs;

uses crt, graph;

var i, n: integer;

t: byte;

a, b, eps, h: real;

x, sum1, sum2, seps, m0, m1, m2, m3, m4: real;

lf: text;

st: string;

function f (x: real): real;

begin

f: = 19.44 * exp (0.224 * x);

end;

procedure gr (xn, xk: real);

var x, y, mx, my, dx, dy,

ymin, ymax, xh: real;

xb, yb, xm, ym, xl, yv, xp, yn, bord1, bord2, bord3, bord4, xt, yt, xt1, yt1, dxp, dyp, nd, nr, i, kx, ky, k: integer;

st: string;

begin

k: = 100;

xh: = (xk-xn) / 100;

ymax: = f (xn);

dx: = (xk-xn) / 100;

for i: = 1 to 100 do

begin x: = xn + dx * i;

y: = f (x);

if y> ymax then ymax: = y;

end;

ymin: = 0;

ymax: = round (ymax);

nd: = detect;

initgraph (nd, nr, 'c: \ tp7 \ bgi');

bord1: = 60; kx: = 6;

bord2: = 30; ky: = 8;

bord3: = 30;

bord4: = 80;

xb: = 0; yb: = 0; xm: = getmaxx; ym: = getmaxy;

xl: = xb + bord1;

xp: = xm-bord2;

yv: = yb + bord3;

yn: = ym-bord4;

dxp: = (xp-xl) div kx;

dyp: = (yn-yv) div ky;

dx: = (xk-xn) / kx;

dy: = (ymax-ymin) / ky;

xl: = xp-dxp * kx;

yn: = yv + dyp * ky;

mx: = (xp-xl) / (xk-xn);

my: = (yn-yv) / (ymax-ymin);

setfillstyle (1,15);

bar (xb, yb, xm, ym);

setcolor (0);

setlinestyle (0,0,1);

bar (xl, yv, xp, yn);

rectangle (xl, yv, xp, yn);

settextjustify (0,2);

settextstyle (2,1,4);

setcolor (9);

for i: = 0 to kx do begin

xt: = xl + dxp * i;

str (xn + dx * i: 6:3, st);

line (xt, yn 3, xt, yn +3);

outtextxy (xt +4, yn +8, st);

end;

settextstyle (0,0,1);

for i: = 0 to ky do begin

yt: = yv + dyp * i;

str (ymax-dy * i: 6:3, st);

line (xl 3, yt, xl +3, yt);

outtextxy (xl 56, yt 4, st);

end;

outtextxy (xl +100, bord3 div 2, 'y = 19.44 * exp (0.224 * x)');

setcolor (12);

if xn * xk <0 then begin

xt: = xl-trunc (xn * mx);

line (xt, yv, xt, yn);

end;

if ymax * ymin <0 then begin

yt: = yv + trunc (ymax * my);

line (xl, yt, xp, yt);

end;

xh: = (xk-xn) / 5;

for i: = 0 to 5 do begin

setcolor (3);

x: = xn + xh * i;

y: = f (x);

xt: = xl + trunc ((x-xn) * mx);

yt: = yv + trunc ((ymax-y) * my);

circle (xt, yt, 3);

if i> 0 then

line (xt, yt, xt1, yt1);

setcolor (5);

rectangle (xt1, yt1, xt, yn);

xt1: = xt;

yt1: = yt;

end;

repeat until keypressed;

closegraph;

end;

function pr: real;

var s, x: real;

begin

s: = 0;

x: = a;

for i: = 1 to n do

begin

s: = s + abs (f (x)) * h;

x: = x + h;

end;

pr: = s;

end;

function tr: real;

var s, x: real;

begin

s: = 0;

x: = a;

for i: = 1 to n do

begin

s: = s + (f (x) + f (x + h)) / 2 * h;

x: = x + h;

end;

tr: = s;

end;

function ch: real;

var s, dp, kf, a1, b1: real;

begin

s: = 0;

kf: = sqrt (1 / 3);

for i: = 2 to n +1 do

begin

a1: = a + h * (i 2);

b1: = a1 + h;

s: = s + ((b1 a1) / 2) * (f ((a1 + b1) / 2 kf * ((b1 a1) / 2)) + f ((a1 + b1) / 2 + kf * ((b1 a1) / 2)));

end;

ch: = s;

end;

function si: real;

var s, x, f1, f2: real;

begin

s: = 0;

x: = a;

i: = 1;

f1: = 0;

repeat

f1: = f1 + f (a + h * i);

i: = i +2;

until i> = n;

i: = 2;

f2: = 0;

repeat

f2: = f2 + f (a + h * i);

i: = i +2;

until i> = n;

s: = h / 3 * (f (a) + f (bh) + (4 * f1) + (2 * f2));

si: = s;

end;

begin

assign (lf, 'otchet.txt');

rewrite (lf);

clrscr;

write ('Введіть значення лівої межі інтегрування:'); readln (a);

write ('Введіть значення правого межі інтегрування:'); readln (b);

write ('Введіть значення похибки:'); readln (eps);

write ('Введіть початкове значення кількості разбиений:'); readln (n);

writeln;

gr (a, b);

write ('Чекайте, йде обробка даних');

m0: = 0;

writeln (lf, 'Курсова робота');

writeln (lf, 'ПО КУРСУ ІНФОРМАТИКА');

writeln (lf, '«наближеного обчислення значень');

writeln (lf, 'ВИЗНАЧЕНОГО ІНТЕГРАЛА »');

writeln (lf, 'Виконав: студент гр.');

writeln (lf, 'Варіант 22 y = 19.44 * exp (0.224 * x)');

writeln (lf, 'Xn =', a: 5:3, 'Xk =', b: 5:3, 'Eps =', eps: 5:3);

writeln (lf);

writeln (lf, 'РЕЗУЛЬТАТИ ОБЧИСЛЕНЬ');

repeat

h: = abs (b - a) / n;

m1: = pr;

m2: = tr;

m3: = si;

m4: = ch;

seps: = abs (m1 m0);

writeln (lf, '│', n: 7, '│', m1: 11:8, '│', m2: 11:8, '│', m3: 11:8, '│', m4: 11: 8, '│', seps: 11:8, '│');

m0: = m1;

n: = n +200;

until (seps <= eps);

clrscr;

reset (lf);

while not eof (lf) do

begin

readln (lf, st);

writeln (st);

end;

{Write ('Натисніть <Enter> для виходу з програми');

repeat until keypressed;}

close (lf);

end.

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

  1. Бахвалов Н.С. «Чисельні методи». М.: Наука, 1987 - 598 с.

  2. Каліткін М.М. «Чисельні методи». М.: Наука, 1988 - 512 с.

  3. Крилов В.І. «Обчислювальні методи». М.: Наука, 1977 - 408 с.

  4. Нечаєв В.І., Нечаєва О.А., Почуева Л.М. «Чисельні методи». Тула, 1999.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
73.9кб. | скачати


Схожі роботи:
Техніка інтегрування і додатки певного інтеграла
Додаток певного інтеграла до вирішення завдань практичного змісту
Програми певного інтеграла до рішення деяких завдань механіки і фізики
Наближене обчислення означених інтегралів формули прямокутників трапецій Сімпсона
Обчислення визначеного інтеграла
Обчислення визначеного інтеграла методом трапецій
Розробка програмного модуля для обчислення інтеграла
Обчислення подвійного інтеграла в декартових і полярних координатах
Обчислення інтеграла за допомогою методу трапецій на комп`ютері
© Усі права захищені
написати до нас