Учебная работа. Реферат: Вычисление определённых интегралов

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Контрольные рефераты

Учебная работа. Реферат: Вычисление определённых интегралов

Министерство Образования Русской Федерации

Рязанская муниципальная радиотехническая академия

Кафедра вычислительной и прикладной арифметики.

ВЫЧИСЛЕНИЕ ОПРЕДЕЛЕННЫХ ИНТЕГРАЛОВ.

Объяснительная записка к курсовой работе по дисциплине «Информатика»

Выполнил: студент гр.

Проверил:

Никитин В.И.

Рязань, 2001г

Задание.

Составить программку вычисления определенного интеграла

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

способ вычислений – Формула Гаусса.

f(x)

a

b

c

d

1
edx/2
cos2
(cx)
0
p
0.9; 1; 1.05; 1.1
2.4; 2.5; 2.6
10-4

2
(x ln(cdx))2

1
e
3; 3.2; 3.4; 3.5
0.5; 0.4; 0.85
10-3

Содержание.

Задание…………………………………………………………………………………………………… 1

Содержание…………………………………………………………………………………………… 2

Описание способа решения……………………………………………………………. 3

Блок-схема программки…………………………………………………………………… 4

текст программки и результаты счета……………………………………… 5

Заключение………………………………………………………………………………………….. 7

Библиографический перечень…………………………………………………………. 7

Описание способа решения.

В формуле Гаусса на любом интервале интегрирования

где n- число интервалов интегрирования, m – число вычисляемых на любом интервале значений функции. , – границы интервалов интегрирования;и— коэффициенты значения которых определяются величиной m. Для m=3 A1
=5/9, A2
=8/9, A3
=5/9, , t2
=0, t3
=-t1

Блок-схема программки.

Блок-схема1: Функция вычисления интеграла.

Блок-схема 2: Основная программка.

текст программки и результаты счета.

programKursovoy;

constA1=5/9; A2=8/9; t=-0.77459;{константы для взятия интеграла способом Гаусса}

typefunc=function(x,c,d:real):real;{макет функции от которой берется интеграл}

vara,b,eps:real;{пределы интегрирования и точность вычисления}

c:array[1..4] ofreal;{характеристики функции, от которой берется интеграл}

d:array[1..5] of real;{взяты из таблицы 2}

function f_test(x,c,d:real):real;{тестовая функция sin(x)}

begin{интеграл от 0 до пи на теоретическом уровне равен 2}

f_test:=sin(x);

end;

function f1(x,c,d:real):real;{1-ая функция из таблицы 2}

begin

f1:=exp(d*x/2)*sqr(cos(c*x));

end;

function f2(x,c,d:real):real;{2-ая функция из таблицы 2}

begin

f2:=sqr(x*ln(c*d*x));

end;

{Функция взятия интеграла от функции f, макет(вид) которой описан в типе func

a,b- пределы интегрирования, cm,dm-параметры c и d функции f, eps -точность вычислений

k-число итераций, за которые удалось отыскать интеграл }

function Integral(f:func;a,b,cm,dm,eps:real; var k:integer):real;

varS,z,h,c,d,l,x,x1,x2,x3:real;{S-текущее приближенное

z-предыдуще приближенное

c,d,l,x,x1,x2,x3-вспомогательные переменные см. стр.25 методички}

i,n:integer;{i-счетчик цикла, n-число интервалов интегрирования}

begin

n:=1; S:=0; k:=0;

repeat

k:=k+1;{увеличиваем число итераций}

z:=S; {предшествующее

n:=n*2;{вдвое увеличиваем число интервалов интегрирования}

h:=(b-a)/n; x:=a; S:=0; c:=h/2; l:=c*t;{определение шага интегрирования,

исходного значения x, сам интеграл поначалу равен 0,

вспомогательные переменные считаем }

fori:=0 ton-1 do{перебираем все интервалы интегрирования}

begin

d:=x+c; x1:=d-l;x2:=d; x3:=d+l;{вычисляем значения абцисс узлов,

избранных из условия обеспечения минимума погрешности интерполяции}

S:=S+A1*(f(x1,cm,dm)+f(x3,cm,dm))+A2*f(x2,cm,dm);{добавляем к сумме}

x:=x+h;{перебегаем на новейший интервал интегрирования}

end;

S:=S*c;{умножаем полученную сумму на h/2}

until (абс(z-S)<eps*абс(S)) or (k>=14);{выходим из цикла,

если относительная погрешность предшествующего и текущего интегралов меньше данной точности

либо если число итераций превысило допустимое}

Integral:=S;{возвращаем

end;

var i,j,n:integer;

begin

{вычисляем имя вычисляемой функции

в этом случае f_test, интервал интегрирования a=0 b=3.14159

cm=0 dm=0(крайние два параметра в данном случае могут быть хоть какими,т.к. f_test от их не зависит)

eps=1e-3(точность), в параметр n, по выходе из функции вычисления интеграла будет записано число итераций}

writeln(‘Проверочный интеграл от 0 до пи sin(x)dx =’,Integral(f_test,0,3.14159,0,0,1e-3,n):7:5,

‘ ‘,n,’ итераций’);

c[1]:=0.9; c[2]:=1; c[3]:=1.05; c[4]:=1.1;{ввод характеристик для первой функции}

d[1]:=2.4; d[2]:=2.5; d[3]:=2.6; eps:=1e-4;

a:=0; b:=3.14159;

writeln(‘Интеграл от ‘,a:1:0,’ до ‘,b:5:3,’ функции f1 ‘,’с точностью’,eps:5,’ при:’);

fori:=1 to 4 do{перебираем параметр с}

forj:=1 to 3 do{перебираем параметр d}

begin

{вычисляем имя вычисляемой функции

в этом случае f1, интервал интегрирования a=0 b=3.14159

cm=c[i] dm=d[i](крайние два параметра перебираются в цикле и не равны 0, т.к. f1 от их зависит)

eps=1e-4(точность), в параметр n, по выходе из функции вычисления интеграла будет записано число итераций}

writeln(‘с=’,c[i]:4:2,’ d=’,d[j]:4:2,’ равен ‘,Integral(f1,a,b,c[i],d[j],eps,n):8:5, ‘ ‘,n, ‘ итераций’);

end;

readln;{ожидаем нажатия клавиши enter, по другому все выводимые данные не поместятся на один экран}

c[1]:=3; c[2]:=3.2; c[3]:=3.4; c[4]:=3.5;{ввод характеристик для первой функции}

d[1]:=0.5; d[2]:=0.4; d[3]:=0.85; eps:=1e-3;

a:=1; b:=exp(1);{b=e}

writeln(‘Интеграл от ‘,a:1:0,’ до ‘,b:5:3,’ функции f2 ‘,’с точностью’,eps:5,’ при:’);

fori:=1 to 4 do{перебираем параметр с}

forj:=1 to 3 do{перебираем параметр d}

begin

{вычисляем имя вычисляемой функции

в этом случае f2, интервал интегрирования a=1 b=e

cm=c[i] dm=d[i](крайние два параметра перебираются в цикле и не равны 0, т.к. f2 от их зависит)

eps=1e-3(точность), в параметр n, по выходе из функции вычисления интеграла будет записано число итераций}

writeln(‘с=’,c[i]:4:2,’ d=’,d[j]:4:2,’ равен ‘,Integral(f2,a,b,c[i],d[j],eps,n):8:5, ‘ ‘,n, ‘ итераций’);

end;

end.

Результаты счета.

Проверочный интеграл от 0 до пи sin(x)dx =2.00000 2 итераций

Интеграл от 0 до 3.142 функции f1 с точностью 1.0E-0004 при:

с=0.90 d=2.40 равен 17.12437 3 итераций

с=0.90 d=2.50 равен 19.52435 3 итераций

с=0.90 d=2.60 равен 22.28654 3 итераций

с=1.00 d=2.40 равен 22.33040 2 итераций

с=1.00 d=2.50 равен 25.49172 2 итераций

с=1.00 d=2.60 равен 29.12609 3 итераций

с=1.05 d=2.40 равен 24.19102 3 итераций

с=1.05 d=2.50 равен 27.60541 3 итераций

с=1.05 d=2.60 равен 31.52694 3 итераций

с=1.10 d=2.40 равен 25.37969 3 итераций

с=1.10 d=2.50 равен 28.93760 3 итераций

с=1.10 d=2.60 равен 33.01928 3 итераций

Интеграл от 1 до 2.718 функции f2 с точностью 1.0E-0003 при:

с=3.00 d=0.50 равен 8.40102 2 итераций

с=3.00 d=0.40 равен 5.52503 2 итераций

с=3.00 d=0.85 равен 17.78460 2 итераций

с=3.20 d=0.50 равен 9.35094 2 итераций

с=3.20 d=0.40 равен 6.29171 2 итераций

с=3.20 d=0.85 равен 19.17026 2 итераций

с=3.40 d=0.50 равен 10.29153 2 итераций

с=3.40 d=0.40 равен 7.06018 2 итераций

с=3.40 d=0.85 равен 20.52016 2 итераций

с=3.50 d=0.50 равен 10.75780 2 итераций

с=3.50 d=0.40 равен 7.44414 2 итераций

с=3.50 d=0.85 равен 21.18214 2 итераций

Заключение.

В данной курсовой работе рассчитывались определенные интегралы способом Гаусса. Как видно из приобретенных результатов, программка работает правильно, т.к.на теоретическом уровне=2, что совпадает с расчетным, обеспечивает заданную точность вычислений, при малом числе итераций. К плюсам данного способа вычисления функций стоит отнести, то что способ Гаусса обеспечивает четкое вычисление интеграла от полинома степени 2m-1. К недочетам следует отнести относительно огромное время расчета интеграла, при огромных m.

Библиографический перечень.

1. Решение уравнений и численное интегрирование на ЭВМ : Методические указания к курсовой работе по дисциплине «Информатика». Рязань,2000г. 32 c.

2. Бронштейн И.Н., Семендяев К.А. Справочник по арифметике для инженеров и учащихся втузов. М.:1986 544с.

3. Бахвалов Н.С. Численные способы. М.:1975.

]]>