Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль.doc
Скачиваний:
58
Добавлен:
07.06.2015
Размер:
1.21 Mб
Скачать

19.3.1. Метод прямоугольников

Метод основан на замене площади сложной фигуры суммой площадей прямоугольников, высота которых равна значению функции f(x), а ширина — hx, шагу по оси х. Очевидно, что чем меньше шаг, тем точнее аппроксимация. Площадь элементарного прямоугольника равна f(x)* hx.

Алгоритм вычисления определенного интеграла рассматриваемым методом может быт таким.

  1. Ввести a, b и Е.

    1. Начальное значение шага hx = (b-a)/n, где n — начальное количество точек;

    2. Вычислить площадь S1 =  Sпрямоуг (hx)

    3. Повторять

      1. hx := hx / 2;

      2. Вычислить площадь S2 =  Sпрямоуг (hx);

      3. Y:= | S2 - S1|;

      4. S1:= S2

Пока не будет y Е.

2.4. Вывести S2.

3. Закончить.

В приведенном алгоритме дважды вычисляется сумма площадей элементарных прямоугольников. Эту операцию можно оформить в виде процедуры или функции. Программа, которая реализует описанный алгоритм с использованием функции f(x) и процедуры вычисления площади методом прямоугольников приведена ниже.

Program Integral;

Const

n= 20; { начальное количество точек на интервале }

Var

a, b, hx, s1, s2, E, y : Real;

Function f(x: Real): Real;

Begin

f:= { здесь должна быть формула для вычисления функции}

End;

Procedure S_Rect(a,b,h:Real; Var S:Real);

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

{ a и b — границы интервала, h — шаг по оси х }

{ S — результат }

Var

X: Real;

Begin

S:=0;

X:=a;

While x<b do

Begin

S:= S + f(x)*h;

x:= x+h;

End;

End;

Begin

{ основная программа }

Writeln('Введите интервал и погрешность');

Readln(a, b, E);

{ Начальный шаг }

hx:=(b-a)/n;

{ Начальное значение интеграла (площади) }

S_Rect(a,b,hx,s1);

{ Вычисление очередных приближений }

Repeat

hx:=(b-a)/2;

S_Rect(a,b,hx,s2);

y:=Abs(s2-s1);

s1:=s2;

Until y <= E;

Writeln('Интеграл = ', s2 :10:6);

Writeln('Работа окончена');

Readln;

End.

19.3.2. Метод трапеций

Метод основан на замене площади сложной фигуры суммой площадей трапеций, высота которых равна шагу по оси х (hx), а основания — значениям функции f(x) и f(x + hx). Очевидно, что он позволяет точнее аппроксимировать функцию и быстрее получить результат. В этом можно убедиться, подсчитав количество приближений обоими методами. Из геометрии известно, что площадь элементарной трапеции равна (f(x) + f(x + hx)) / (2* hx).

Алгоритм вычисления определенного интеграла рассматриваемым методом отличается от предыдущего только процедурой нахождения площадей s1 и s2. Эта процедура может быть предствалена в следующем виде.

Procedure S_Trap(a,b,h:Real; Var S:Real);

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

{ a и b — границы интервала, h — шаг по оси х }

{ S — результат }

Var

X: Real;

Begin

S:=0;

X:=a;

While x<b do

Begin

S:= S + (f(x) + f(x + h)) / (2* h).;

x:= x+h;

End;

End;

Вызов в основной программе с именем Integral процедуры S_Trap вместо S_Rect позволит реализовать в ней метод трапеций.

20. Дополнительные сведения о ТипАх данных, применяемЫх в Паскале

Помимо рассмотренных ранее скалярных данных и массивов, в Паскале используются следующие типы данных:

1) перечисляемые;

2) интервальные;

3) множества;

4) записи;

5) файлы.

Ознакомимся с каждым из них поочередно.