МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Вычисление определённых интегралов

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

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

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

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

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

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

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

    Проверил:

    Никитин В.И.

    Рязань, 2001г

    Задание.

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

    с погрешностью не превышающей заданную величину [pic]. В программе

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

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

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

    [pic]

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

    |№ |f(x) |a |b |c |d |[pic] |

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

    | | | | |1.1 | | |

    |2 |(x ln(cdx))2 |1 |e |3; 3.2; 3.4; |0.5; 0.4; |10-3 |

    | | | | |3.5 |0.85 | |

    Содержание.

    Задание. 1

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

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

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

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

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

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

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

    В формуле Гаусса на каждом интервале интегрирования значение функции

    f(x) вычисляется не в равномерно распределенных по интервалу узлах, а в

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

    интерполяции:

    [pic]

    где n- число интервалов интегрирования, m – число вычисляемых на каждом

    интервале значений функции. [pic], [pic]– границы интервалов

    интегрирования; [pic] и [pic]- коэффициенты значения которых определяются

    величиной m. Для m=3 A1=5/9, A2=8/9, A3=5/9, [pic], 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-число итераций, за которые удалось найти интеграл }

    function Integral(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)=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.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 итераций

    Заключение.

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

    Гаусса. Как видно из полученных результатов, программа работает верно, т.к.

    теоретически [pic]=2, что совпадает с расчетным, обеспечивает заданную

    точность вычислений, при малом числе итераций. К достоинствам данного

    метода вычисления функций стоит отнести, то что метод Гаусса обеспечивает

    точное вычисление интеграла от полинома степени 2m-1. К недостаткам следует

    отнести относительно большое время расчета интеграла, при больших m.

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

    1. Решение уравнений и численное интегрирование на ЭВМ: Методические

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

    c.

    2. Бронштейн И.Н., Семендяев К.А. Справочник по математике для инженеров и

    учащихся втузов. М.:1986 544с.

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

    -----------------------

    Выход

    j

    Вывод S, n

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

    j=1,3

    i=1,4

    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;

    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

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

    Вывод S, n

    i

    j

    j=1,3

    i=1,4

    Вывод S

    S=[pic]

    Вход

    S=S*c

    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

    i=0,n-1

    i

    Выход(S,k)

    НЕТ

    ДА

    |z-S|< (|S| or

    k>=14

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

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

    Вход(f,a,b,cm,dm, ()


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.