Автор работы: p*******@yandex.ru, 26 Ноября 2011 в 17:21, курсовая работа
Задача вычисления интегралов возникает во многих областях прикладной математики. В большинстве случаев встречаются определённые интегралы от функций, первообразные которых не выражаются через элементарные функции. Кроме того, в приложениях приходится иметь дело с определёнными интегралами, сами подынтегральные функции не являются элементарными.
Введение…………………………….………………………………………....2
§1. математическое обоснование и анализ задачи…......3
§2. Алгоритм и его описание…………………………………...…....9
§3. Листинг программы……………………………………………..…10
§4. Исходные данные. Результаты расчетов и анализ....13
§5. Заключение и выводы………………………………..…………...15
Список литературы……………………...…………………………….16
Содержание
Введение…………………………….…………………………
§1. математическое обоснование и анализ задачи…......3
§2. Алгоритм и его описание…………………………………...…....9
§3.
Листинг программы……………………………………………..…
§4. Исходные данные. Результаты расчетов и анализ....13
§5. Заключение и выводы………………………………..…………...15
Список литературы……………………...……
Введение
Задача вычисления интегралов
возникает во многих областях
прикладной математики. В большинстве
случаев встречаются
§1.
Математическое обоснование
и анализ задачи
Многие
инженерные задачи, задачи физики, геометрии
и многих других областей человеческой
деятельности приводят к необходимости
вычислять определенный интеграл вида
где f(x) -данная функция, непрерывная на
отрезке [a; b]. Если функция f(x) задана формулой
и мы умеем найти неопределенный интеграл
F(x), то определенный интеграл вычисляется
по формуле Ньютона-Лейбница:
.
Если же неопределенный интеграл данной
функции мы найти не умеем, или по какой-либо
причине не хотим воспользоваться формулой
Ньютона-Лейбница или если функция f(x)
задана графически или таблицей, то для
вычисления определенного интеграла применяют
приближенные формулы. Для приближенного
вычисления интеграла можно использовать
метод прямоугольников (правых, левых,
средних). При вычислении интеграла следует
помнить, каков геометрический смысл определенного
интеграла. Если f(x)>=0 на отрезке [a; b],
то
численно равен площади фигуры, ограниченной
графиком функции y=f(x), отрезком оси абсцисс,
прямой x=a и прямой x=b (рис. 1.1) Таким образом,
вычисление интеграла равносильно вычислению
площади криволинейной трапеции.
Разделим отрезок [a; b] на n равных частей, т.е. на n элементарных отрезков. Длина каждого элементарного отрезка .
Точки деления будут: x0=a; x1=a+h; x2=a+2*h, ... , xn-1=a+(n-1)*h; xn=b.
Числа y0, y1, y2, ... , yn являются ординатами точек графика функции, соответствующих абсциссам x0, x1, x2, ... , xn (рис. 1.2).
Строим прямоугольники. Это можно делать несколькими способами:
Левые
прямоугольники (слева
направо)
Правые
прямоугольники (построение
справа налево)
Средние прямоугольники (посредине)
Из
рис. 1.2 следует, что площадь криволинейной
трапеции приближенно заменяется площадью
многоугольника, составленного из n
прямоугольников. Таким образом, вычисление
определенного интеграла
h=(b-a)/n
–ширина прямоугольников
Формула левых прямоугольников:
(1.3)
Формула правых прямоугольников:
(1.4)
Формула средних прямоугольников.
Sсредих= (Sправых + Sлевых) /2
(1.5)
Программа вычисления
Program levii;{Метод
левых прямоугольников}
uses crt;
var i,n:integer; a,b,h,x,xb,s:real;
function f(x:real):real;
begin f:=(1/x)*sin(3.14*x/2); end;
begin
clrscr;
write('Введите нижний предел интегрирования
'); readln(a);
write('Введите верхний предел интегрирования
'); readln(b);
write('Введите количество отрезков '); readln(n);
h:=(b-a)/n; s:=0; xb:=a;
for i:=0 to n-1 do
begin x:=xb+i*h; s:=s+f(x)*h; end;
writeln('Интеграл равен ',s:12:10); readln;
end.
Тестирование:
a=1 b=2 n=10 S= 18,077
a=1 b=2 n=20 S= 18, 208
a=1
b=2 n=100 S= 18, 270
Программа вычисления
Program pravii; {Метод правых прямоугольников}
uses crt;
var i,n:integer; a,b,h,x,xb,s:real;
function f (x:real) : real;
begin f : = (1/x)*sin(3.14*x/2); end;
begin
clrscr;
write ('Введите нижний предел интегрирования
'); readln (a);
write ('Введите верхний предел интегрирования
'); readln (b);
write ('Введите количество отрезков '); readln
(n);
h:=(b-a)/n; s:=0; xb:=a;
for i:=1 to n do
begin x:=xb+i*h; s:=s+f(x)*h; end;
writeln ('Интеграл равен ',s:12:10); readln;
end.
Тестирование:
a=1 b=2 n=10 S=18,05455
a=1 b=2 n=20 S=18,55555
a=1
b=2 n=100 S= 18,2734
Программа вычисления
Program srednii; {Метод средних
uses crt;
var i, n: integer; a, b, dx, x, s, xb : real;
function f(x : real):real;
begin f : = (1/x)*sin(3.14*x/2); end;
begin
clrscr;
write ('Введите нижний предел интегрирования
'); readln (a);
write ('Введите верхний предел интегрирования
'); readln (b);
write ('Введите количество отрезков '); readln
(n);
dx : = (b-a)/n; xb:=a+dx/2;
for i:=0 to n-1 do
begin x:=xb+i*dx; s:=s+f(x)*dx; end;
write ('Интеграл равен ',s:15:10); readln;
end.
Тестирование:
a=1 b=2 n=10 S=18,07667
a=1 b=2 n=20 S=18,368
a=1
b=2 n=100 S= 18,156
Известно, что определенный интеграл функции типа численно представляет собой площадь криволинейной трапеции ограниченной кривыми x=0, y=a, y=b и y= (Рис. 1.3). Как сказано выше, есть два метода вычисления этой площади или определенного интеграла — метод трапеций (Рис. 1.4) и метод средних прямоугольников (Рис. 1.5).
Рис. 1.3. Криволинейная трапеция.
Рис. 1.4. Метод трапеций.
Рис.1.5.
Метод средних прямоугольников.
По методам трапеций и средних прямоугольников соответственно интеграл равен сумме площадей прямоугольных трапеций, где основание трапеции какая-либо малая величина (точность), и сумма площадей прямоугольников, где основание прямоугольника какая-либо малая величина (точность), а высота определяется по точке пересечения верхнего основания прямоугольника, которое график функции должен пересекать в середине. Соответственно получаем формулы площадей —
для метода трапеций:
для метода средних прямоугольников:
Соответственно этим формулам и составим алгоритм.
Рис.1.6. Алгоритм работы программы integral.pas.
Определение: Листинг — бумажная распечатка текста компьютерной программы или её части.
Программа написана на Tubro Pascla 6.0 для MS-DOS. Ниже приведен ее листинг:
program Integral;
uses
Crt, Dos;
var
dx,x1,x2,e,i:real;
function Fx(x:real):real;
begin
Fx:=2+x; {В этом месте запишите функцию, для вычисления интеграла.}
end;
procedure CountViaBar;
var
xx1,xx2:real;
c:longint;
begin
writeln('---------------------
writeln('-->Метод средних прямоугольников.');
writeln('Всего
итераций:',round(abs(x2-x1)/e)
i:=0;
for c:=1 to round(abs(x2-x1)/e) do begin
write('Итерация ',c,chr(13));
xx1:=Fx(x1+c*e);
xx2:=Fx(x1+c*e+e);
i:=i+abs(xx1+xx2)/2*e;
end;
writeln('---------------------
writeln('Интеграл=',i);
end;
procedure CountViaTrap;
var
xx1,xx2,xx3:real;
c:longint;
begin
writeln('---------------------
writeln('-->Метод трапеций.');
writeln('Всего
итераций:',round(abs(x2-x1)/e)
i:=0;
for c:=1 to round(abs(x2-x1)/e) do begin
write('Итерация ',c,chr(13));
xx1:=Fx(x1+c*e);
xx2:=Fx(x1+c*e+e);
if xx2>xx1 then xx3:=xx1 else xx3:=xx2;
i:=i+abs(xx2-xx1)*e+abs(xx3)*
end;
writeln('---------------------
writeln('Интеграл=',i);
end;
begin
writeln('---------------------
writeln('-=Программа вычисления определенного интеграла=-');
writeln('Введите исходные значения:');
write('Начальное значение x (x1)=');Readln(x1);
write('Конечное значение x (x2)=');Readln(x2);
write('Точность вычисления (e)=');Readln(e);
CountViaBar;
CountViaTrap;
writeln('---------------------
writeln('Спасибо за использование программы ;^)');
end.
Информация о работе Изучение метода прямоугольников в школьном курсе информатики