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

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

Рязанская государственнаярадиотехническая академия

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

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

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

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

Проверил:

Никитин В.И.

Рязань, 2001г<span Times New Roman",«serif»;mso-fareast-font-family: «Times New Roman»;mso-ansi-language:RU;mso-fareast-language:RU;mso-bidi-language: AR-SA">
Задание.

          Составить программу вычисленияопределенного интеграла <img src="/cache/referats/7199/image002.gif" v:shapes="_x0000_i1025">

с погрешностью не превышающей заданную величину <img src="/cache/referats/7199/image004.gif" v:shapes="_x0000_i1026">. В программепредусмотреть  защиту от зацикливанияитерационного процесса, подсчет и вывод на печать числа итераций, за котороеудается найти значение интеграла с заданной погрешностью.  Для проверки программы интегрированиявычислить <img src="/cache/referats/7199/image006.gif" v:shapes="_x0000_i1027">

Методвычислений – Формула Гаусса.

f(x)

a

b

c

d

<img src="/cache/referats/7199/image004.gif" v:shapes="_x0000_i1028">

1

edx/2cos2(cx)

<span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Symbol">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

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">
Содержание.

 TOC o«1-3» Задание.… PAGEREF _Toc533924733 h 1

Содержание.… PAGEREF _Toc533924734 h 2

Описаниеметода решения.… PAGEREF _Toc533924735 h 3

Блок-схемапрограммы.… PAGEREF _Toc533924736 h 4

Текстпрограммы и результаты  счета.… PAGEREF _Toc533924737 h 5

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

Библиографическийсписок.… PAGEREF _Toc533924739 h 7

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">
Описание метода решения.

          В формуле Гаусса на каждом интервалеинтегрирования значение функции f(x) вычисляется не в равномерно распределенных поинтервалу  узлах, а в абсциссах,выбранных из условия обеспечения минимума погрешности интерполяции:

<img src="/cache/referats/7199/image008.gif" v:shapes="_x0000_i1029">

где  n- число интервалов интегрирования, m – числовычисляемых на каждом интервале значений функции. <img src="/cache/referats/7199/image010.gif" v:shapes="_x0000_i1030">, <img src="/cache/referats/7199/image012.gif" v:shapes="_x0000_i1031">– границыинтервалов интегрирования;<img src="/cache/referats/7199/image014.gif" v:shapes="_x0000_i1032">и<img src="/cache/referats/7199/image016.gif" v:shapes="_x0000_i1033"> — коэффициенты значения которых определяются величиной m. Для m=3 A1=5/9, A2=8/9, A3=5/9, <img src="/cache/referats/7199/image018.gif" v:shapes="_x0000_i1034">, t2=0, t3=-t1

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

Вход

S=

Вывод S

i

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;

i=1,4

j=1,3

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

Вывод S, n

j i

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;

i=1,4

j=1,3

Приближенное вычисление второго интеграла  S

Вывод S, n

j Выход <img src="/cache/referats/7199/image019.gif" align=«right» v:shapes="_x0000_s1343 _x0000_s1235 _x0000_s1236 _x0000_s1237 _x0000_s1238 _x0000_s1265 _x0000_s1267 _x0000_s1268 _x0000_s1269 _x0000_s1270 _x0000_s1271 _x0000_s1272 _x0000_s1273 _x0000_s1274 _x0000_s1275 _x0000_s1276 _x0000_s1277 _x0000_s1278 _x0000_s1279 _x0000_s1288 _x0000_s1289 _x0000_s1290 _x0000_s1291 _x0000_s1292 _x0000_s1293 _x0000_s1294 _x0000_s1295 _x0000_s1296 _x0000_s1297 _x0000_s1298 _x0000_s1299 _x0000_s1300 _x0000_s1301 _x0000_s1302 _x0000_s1303 _x0000_s1304 _x0000_s1305 _x0000_s1306 _x0000_s1307 _x0000_s1308 _x0000_s1309 _x0000_s1310 _x0000_s1311 _x0000_s1312 _x0000_s1313 _x0000_s1314 _x0000_s1315 _x0000_s1316 _x0000_s1317 _x0000_s1318 _x0000_s1319 _x0000_s1320 _x0000_s1321 _x0000_s1322 _x0000_s1323 _x0000_s1324 _x0000_s1325 _x0000_s1326 _x0000_s1327 _x0000_s1328 _x0000_s1329 _x0000_s1330 _x0000_s1331 _x0000_s1332 _x0000_s1333 _x0000_s1334 _x0000_s1335 _x0000_s1336 _x0000_s1337 _x0000_s1338 _x0000_s1339 _x0000_s1340 _x0000_s1341 _x0000_s1342">Блок-схема программы.

Вход(f,a,b,cm,dm, <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Symbol">e

)

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

k=k+1;z=S; n=n*2; h=(b-a)/n; x=a; S=0; c=h/2; l=c*t

           |z-S|< <span Times New Roman"; mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol;mso-symbol-font-family: Symbol">e

|S| or

              k>=14

ДА

НЕТ

Выход(S,k) i

i=0,n-1

d=x+c; x1=d-l; x2=d; x3=d+l;

S=S+A1*(f(x1,cm,dm)+f(x3,cm,cd))+A2*(f(x2,cm,dm))

x=x+h

S=S*c

<img src="/cache/referats/7199/image020.gif" align=«left» v:shapes="_x0000_s1287 _x0000_s1180 _x0000_s1181 _x0000_s1182 _x0000_s1183 _x0000_s1184 _x0000_s1185 _x0000_s1186 _x0000_s1187 _x0000_s1188 _x0000_s1189 _x0000_s1190 _x0000_s1191 _x0000_s1192 _x0000_s1193 _x0000_s1194 _x0000_s1195 _x0000_s1196 _x0000_s1197 _x0000_s1198 _x0000_s1199 _x0000_s1221 _x0000_s1222 _x0000_s1223 _x0000_s1224 _x0000_s1225 _x0000_s1226 _x0000_s1227 _x0000_s1228 _x0000_s1229 _x0000_s1230 _x0000_s1231 _x0000_s1232">

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

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

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">
Текст программы и результаты  счета.

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;

functionf1(x,c,d:real):real;{первая функция из таблицы 2}

begin

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

end;

functionf2(x,c,d:real):real;{вторая функция из таблицы 2}

begin

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

end;

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

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

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

functionIntegral(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-предыдуще приближенное значениеинтеграла,h-шагинтегрирования,

    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 (abs(z-S)<eps*abs(S)) or(k>=14);{выходим из цикла,

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

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

  Integral:=S;{возвращаем значение полученногоинтергала}

end;

vari,j,n:integer;

begin

  {вычисляем значениепроверочного интеграла, передавая в функцию Integral имя вычисляемой функции

  в данном случае 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

  {вычисляем значениепервого интеграла, передавая в функцию Integral имя вычисляемой функции

  в данном случае 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

  {вычисляем значениевторого интеграла, передавая в функцию Integral имя вычисляемой функции

  в данном случае 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 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">Интеграл от 0до 3.142 функции

<span Courier New";mso-bidi-font-family:«Times New Roman»; mso-ansi-language:EN-US">f<span Courier New";mso-bidi-font-family:«Times New Roman»">1 сточностью 1.0<span Courier New";mso-bidi-font-family:«Times New Roman»; mso-ansi-language:EN-US">E<span Courier New";mso-bidi-font-family:«Times New Roman»">-0004при:

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=0.90

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=2.40 равен 17.12437  3 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=0.90

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=2.50 равен 19.52435  3 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=0.90

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=2.60 равен 22.28654  3 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=1.00

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=2.40 равен 22.33040  2 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=1.00

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=2.50 равен 25.49172  2 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=1.00

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=2.60 равен 29.12609  3 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=1.05

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=2.40 равен 24.19102  3 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=1.05

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=2.50 равен 27.60541  3 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=1.05

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=2.60 равен 31.52694  3 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=1.10

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=2.40 равен 25.37969  3 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=1.10

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=2.50 равен 28.93760  3 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=1.10

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=2.60 равен 33.01928  3 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">

<span Courier New";mso-bidi-font-family:«Times New Roman»">Интеграл от 1до 2.718 функции

<span Courier New";mso-bidi-font-family:«Times New Roman»; mso-ansi-language:EN-US">f<span Courier New";mso-bidi-font-family:«Times New Roman»">2 сточностью 1.0<span Courier New";mso-bidi-font-family:«Times New Roman»; mso-ansi-language:EN-US">E<span Courier New";mso-bidi-font-family:«Times New Roman»">-0003при:

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=3.00

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=0.50 равен  8.40102  2 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=3.00

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=0.40 равен  5.52503  2 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=3.00

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=0.85 равен 17.78460  2 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=3.20

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=0.50 равен  9.35094  2 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=3.20

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=0.40 равен  6.29171  2 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=3.20

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=0.85 равен 19.17026  2 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=3.40

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=0.50 равен 10.29153  2 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=3.40

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=0.40 равен  7.06018  2 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=3.40

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=0.85 равен 20.52016  2 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=3.50

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=0.50 равен 10.75780  2 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=3.50

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=0.40 равен  7.44414  2 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">с=3.50

<span Courier New"; mso-bidi-font-family:«Times New Roman»;mso-ansi-language:EN-US">d<span Courier New"; mso-bidi-font-family:«Times New Roman»">=0.85 равен 21.18214  2 итераций

<span Courier New";mso-bidi-font-family:«Times New Roman»">

<span Courier New"; mso-bidi-font-family:«Times New Roman»">

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">
Заключение.

          Вданной курсовой работе вычислялись определенные интегралы методом Гаусса. Каквидно из полученных результатов, программа работает верно, т.к.теоретически<img src="/cache/referats/7199/image006.gif" v:shapes="_x0000_i1036">=2, чтосовпадает с расчетным, обеспечивает заданную точность вычислений, при маломчисле итераций. К достоинствам данного метода вычисления функций стоит отнести,то что метод Гаусса обеспечивает точное вычисление интеграла от полиномастепени 2m-1. К недостаткам следует отнести относительнобольшое время расчета интеграла, при больших m.

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

1.<span Times New Roman"">    

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

2.<span Times New Roman"">    

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

3.<span Times New Roman"">    

Бахвалов Н.С. Численныеметоды. М.:1975.
еще рефераты
Еще работы по программированию, базе данных