Часть полного текста документа:Министерство Образования Российской Федерации Рязанская государственная радиотехническая академия Кафедра вычислительной и прикладной математики. ВЫЧИСЛЕНИЕ ОПРЕДЕЛЕННЫХ ИНТЕГРАЛОВ. Пояснительная записка к курсовой работе по дисциплине "Информатика" Выполнил: студент гр. Проверил: Никитин В.И. Рязань, 2001г Задание. Составить программу вычисления определенного интеграла с погрешностью не превышающей заданную величину . В программе предусмотреть защиту от зацикливания итерационного процесса, подсчет и вывод на печать числа итераций, за которое удается найти значение интеграла с заданной погрешностью. Для проверки программы интегрирования вычислить Метод вычислений - Формула Гаусса. № f(x) a b c d 1 edx/2cos2(cx) 0 ? 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-число итераций, за которые удалось найти интеграл } 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(последние два параметра в данном случае могут быть любыми,т.к. ............ |