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

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

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

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

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

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

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

Проверил:

Никитин В.И.

Рязань, 2001г
Задание.

 

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

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

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

f(x)

a

b

c

d

/>

1

edx/2cos2(cx)

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


Описание метода решения.

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

/>

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


/>Блок-схема программы.

/>

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

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


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

program Kursovoy;

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

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

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

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

    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;{перваяфункция из таблицы 2}

begin

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

end;

function f2(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;

var S,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,

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

    for i:=0 to n-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;

var i,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,' при:');

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

    for j:=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,' при:');

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

    for j:=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 итераций

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 


Заключение.

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

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

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

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

3.  Бахвалов Н.С. Численные методы.М.:1975.

еще рефераты
Еще работы по информатике, программированию