Xreferat.com » Рефераты по информатике и программированию » Приближенное вычисление значений определенного интеграла

Приближенное вычисление значений определенного интеграла

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

Тульский государственный университет

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


КУРСОВАЯ РАБОТА


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


"ПРИБЛИЖЕННОЕ ВЫЧИСЛЕНИЕ ЗНАЧЕНИЙ ОПРЕДЕЛЕННОГО ИНТЕГРАЛА"


Тула, 2007

Содержание


Введение

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

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

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

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

Блок-схема основной программы

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

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

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

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

Список используемой литературы


Введение


На практике редко удается вычислить точно определенный интеграл. Например, в элементарных функциях не вычисляется функция Лапласа


Приближенное вычисление значений определенного интеграла


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

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


Приближенное вычисление значений определенного интеграла (1)


от непрерывной на отрезке [a, b] функции Приближенное вычисление значений определенного интеграла.

Численные методы интегрирования применяются в случаях, когда не удается найти аналитическое выражение первообразной для функции Приближенное вычисление значений определенного интеграла либо если функция Приближенное вычисление значений определенного интеграла задана таблично. Формулы численного интегрирования называются квадратурными формулами.

Пример: Приближенное неравенство


Приближенное вычисление значений определенного интеграла (2)


где qj – некоторые числа, xj – некоторые точки отрезка [a, b], называется квадратурной формулой, определяемой весами qj и узлами xj.

Говорят, что квадратурная формула точна для многочленов степени m, если при замене Приближенное вычисление значений определенного интеграла на произвольный алгебраический многочлен степени m приближенное равенство (2) становится точным.

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


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


Вычисление определенного интеграла геометрически означает вычисление площади фигуры, ограниченной кривой Приближенное вычисление значений определенного интеграла, прямыми х=а и х=b и осью абсцисс. Приближенно эта площадь равна сумме площадей прямоугольников.

Обозначим Приближенное вычисление значений определенного интеграла Приближенное вычисление значений определенного интеграла, где

n – количество шагов.

Формула левых прямоугольников:


Приближенное вычисление значений определенного интеграла


Формула правых прямоугольников:


Приближенное вычисление значений определенного интеграла


Более точной является формула средних прямоугольников:


Приближенное вычисление значений определенного интеграла


Приближенное вычисление значений определенного интеграла


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


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


Приближенное вычисление значений определенного интеграла


или Приближенное вычисление значений определенного интеграла

Нетрудно убедиться, что Приближенное вычисление значений определенного интеграла

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


Приближенное вычисление значений определенного интеграла<Приближенное вычисление значений определенного интеграла


где Приближенное вычисление значений определенного интеграла – значения интеграла на Приближенное вычисление значений определенного интеграла шаге, а Приближенное вычисление значений определенного интеграла – точность вычислений.


Приближенное вычисление значений определенного интеграла


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


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


Приближенное вычисление значений определенного интеграла Приближенное вычисление значений определенного интеграла.


Тогда


Приближенное вычисление значений определенного интеграла;

Приближенное вычисление значений определенного интеграла (1)


Так как dx=hdq, то

Приближенное вычисление значений определенного интеграла

Так как Приближенное вычисление значений определенного интеграла, то


Приближенное вычисление значений определенного интеграла


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


Приближенное вычисление значений определенного интеграла

Приближенное вычисление значений определенного интеграла (2)

Величины Hi называют коэффициентами Ньютона-Котеса. Они не зависят от f(x). Их можно вычислить заранее для различного числа узлов n (таблица 1).

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


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

H

N


1

2

3

4

H0 1/2 1/6 1/8 7/90
H1 1/2 2/3 3/8 16/45
H2 - 1/6 3/8 2/15
H3 - - 1/8 16/45
H4 - - - 7/90

Интересно отметить, что из формулы (2) следуют как частные случаи: формула трапеций при n=1


Приближенное вычисление значений определенного интеграла;


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


Приближенное вычисление значений определенного интеграла;


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


Приближенное вычисление значений определенного интеграла.

Формулу (2) при n>6 не применяют, так как коэффициенты Ньютона-Котеса становятся слишком большими и вычислительная погрешность резко возрастает.


Приближенное вычисление значений определенного интеграла


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


П.Л. Чебышев предложил формулу:


Приближенное вычисление значений определенного интеграла,


в которой коэффициенты ci фиксированы, а хi подлежат определению.

Пользуясь алгебраическими свойствами симметричных многочленов, опустив преобразования, ограничимся готовыми результатами. В таблице 2 приведены значения узлов квадратурной формулы Чебышева для некоторых значений n.


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

Число интервалов n Номер узла i Значение узла Xi
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


Для любых пределов интегрирования имеем:


Приближенное вычисление значений определенного интеграла где Приближенное вычисление значений определенного интеграла, Приближенное вычисление значений определенного интеграла


Значения xi берутся из таблицы при выбранном значении 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:tp7bgi');

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 (b-h)+(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.


Список используемой литературы


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

Калиткин Н.Н. «Численные методы». М.: Наука, 1988 – 512 с.

Крылов В.И. «Вычислительные методы». М.: Наука, 1977 – 408 с.

Нечаев В.И., Нечаева О.А., Почуева Л.Н. «Численные методы». Тула, 1999.

Если Вам нужна помощь с академической работой (курсовая, контрольная, диплом, реферат и т.д.), обратитесь к нашим специалистам. Более 90000 специалистов готовы Вам помочь.
Бесплатные корректировки и доработки. Бесплатная оценка стоимости работы.

Поможем написать работу на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту
Нужна помощь в написании работы?
Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Пишем статьи РИНЦ, ВАК, Scopus. Помогаем в публикации. Правки вносим бесплатно.

Похожие рефераты: