Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая по численным.doc
Скачиваний:
30
Добавлен:
06.05.2019
Размер:
378.37 Кб
Скачать

3. Автоматизация метода

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

Программа на Pascal – это набор некоторых команд. Начинается программа с ключевого слова PROGRAM, после которого следует имя программы:

PROGRAM pryam;

Далее идёт раздел переменных VAR, в котором описываются переменные:

VAR

n, i: integer;

a, b, h, l, s, p, lpr, srpr, ppr, lpg, spg, ppg, x1, x2, x3: real;

где:

n – количество разбиений интервала;

a и b – нижний и верхний пределы интегрирования;

h – шаг;

l, s, p – переменные для вычисления суммы по формулам;

lpr, srpr, ppr – переменные результата вычислений без учета погрешности;

lpg, spg, ppg – погрешности или остаточные члены формул метода прямоугольников;

x1, x2, x3 – результативные переменные.

В этом разделе указывается имена переменных и имена типов данных.

После описания переменных вводятся функции. Объявление функции состоит из:

- ключевого слова function, имени функции, списка формальных параметров и типа возвращаемого значения;

- раздела объявления локальных переменных или констант, если он требуется;

- тела функции, заключенного в операторные скобки begin end.

В функции помещаются формулы, по которым будут вычисляться приближенное значение интеграла и вторая производная в точке, принадлежащей промежутку интегрирования:

function f(x: real): real;

begin

f:= Sqr(x)*sin(x);

end;

function f2(x: real): real;

begin

f2:= 2*sin(x)+4*cos(x)-Sqr(x)*sin(x);

end;

После всего этого переходим к основному телу программы. Код программы содержит различные команды. Самые распространенные:

Write (Writeln) – команда вывода текста на экран;

Read (Readln) – запрос данных.

Итак, запрашиваем пределы интегрирования и число разбиений:

BEGIN

Writeln (‘Введите пределы интегрирования a и b ‘);

Readln (a, b);

Writeln (‘Введите число разбиений n ‘);

Readln (n);

Далее производим вычисления по формуле (5):

h:=(b-a)/n;

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

l:=0;

s:=0;

p:=0;

For i:=0 to n Do begin

l:=l+f(a+(i-1)*h);

lpr:=h*l;

s:=s+f((a+h)/2+(i-1)*h);

srpr:=h*s;

p:=p+f(a+h+(i-1)*h);

ppr:=h*p;

end;

После реализации цикла все расчеты по формуле (5) произведены.

Далее следует вычислить погрешности или остаточные члены по формулам (11) и (12):

lpg:=f2(8/10)*h*(b-a)/2;

ppg:=lpg;

spg:=f2(8/10)*Sqr(h)*(b-a)/24;

x1:=lpr+lpg;

x2:=srpr+spg:

x3:=ppr+ppg;

Вывод результатов на экран:

WriteLn(‘Левые ‘,’ Средние ’,’Правые’);

WriteLn(lpr:4:5,’ ‘,srpr:4:5,’ ‘,ppr:4:5);

WriteLn(‘Остаточные члены’);

WriteLn(lpg:4:5,’ ‘,spg:4:5,’ ‘,ppg:4:5);

WriteLn(‘Результат’);

WriteLn(x1:4:5,’ ‘,x2:4:5,’ ‘,x3:4:5);

ReadLn;

Конец программы фиксируется служебным словом END, после которого обязательно ставится точка:

END.