Текст подпрограммы и версий
qsg0r_p.zip  qsg1r_p.zip  qsg2r_p.zip  qsg3r_p.zip  qsg4r_p.zip  qsg5r_p.zip  qsg6r_p.zip  qsg7r_p.zip  qsg8r_p.zip  qsg9r_p.zip  qsgar_p.zip  qsgbr_p.zip  qsg0e_p.zip  qsg1e_p.zip  qsg2e_p.zip  qsg3e_p.zip  qsg4e_p.zip  qsg5e_p.zip  qsg6e_p.zip  qsg7e_p.zip  qsg8e_p.zip  qsg9e_p.zip  qsgae_p.zip  qsgbe_p.zip 
Тексты тестовых примеров
tqsg0r_p.zip  tqsg1r_p.zip  tqsg2r_p.zip  tqsg3r_p.zip  tqsg4r_p.zip  tqsg5r_p.zip  tqsg6r_p.zip  tqsg7r_p.zip  tqsg8r_p.zip  tqsg9r_p.zip  tqsgar_p.zip  tqsgbr_p.zip  tqsg0e_p.zip  tqsg1e_p.zip  tqsg2e_p.zip  tqsg3e_p.zip  tqsg4e_p.zip  tqsg5e_p.zip  tqsg6e_p.zip  tqsg7e_p.zip  tqsg8e_p.zip  tqsg9e_p.zip  tqsgae_p.zip  tqsgbe_p.zip 

Подпрограмма:  QSG0R (модуль QSG0R_p) ( версии: QSG1R, QSG2R, QSG3R, QSG4R, QSG5R, QSG6R, QSG7R, QSG8R, QSG9R, QSGAR, QSGBR )

Назначение

Вычисление определенного интеграла по квадратурной формуле Гаусса с двумя узлами.

Математическое описание

 Подпрограмма QSG0R вычисляет интеграл
              B
              ∫ f (x) dx 
             A 

по квадратурной формуле Гаусса с двумя узлами.

Л.Г. Васильева. Набор стандартных программ численного интегрирования с фиксированным распределением узлов. Сб. "Численный анализ на ФОРТРАНе", вып. 8, Изд-во МГУ, 1974.

Использование

procedure QSG0R(var RINT :Real; A :Real; B :Real; F :Func_F1);

Параметры

RINT - вещественная переменная, содержащая вычисленное значение интеграла;
A, B - заданные нижний и верхний пределы интегрирования (тип: вещественный);
F - имя вещественной подпрограммы - функции вычисления подинтегральной функции  f (x).

Версии

QSG1R - формула Гаусса по четырем узлам.
QSG2R - формула Гаусса по шести узлам.
QSG3R - формула Гаусса по восьми узлам.
QSG4R - формула Гаусса по десяти узлам.
QSG5R - формула Гаусса по двенадцати узлам.
QSG6R - формула Гаусса по шестнадцати узлам.
QSG7R - фомула Гаусса по двадцати четырем узлам.
QSG8R - формула Гаусса по тридцати двум узлам.
QSG9R - формула Гаусса по соpока восьми узлам.
QSGAR - формула Гаусса по шестидесяти четырем узлам.
QSGBR - формула Гаусса по девяносто шести узлам.
QSG0E - вычисление с расширенной (Extended) точностью определенного интеграла по квадратурной формуле Гаусса с двумя узлами.
QSG1E - формула Гаусса с расширенной (Extended) точностью по четырем узлам.
QSG2E - формула Гаусса с расширенной (Extended) точностью по шести узлам.
QSG3E - формула Гаусса с расширенной (Extended) точностью по восьми узлам.
QSG4E - формула Гаусса с расширенной (Extended) точностью по десяти узлам.
QSG5E - формула Гаусса с расширенной (Extended) точностью по двенадцати узлам.
QSG6E - формула Гаусса с расширенной (Extended) точностью по шестнадцати узлам.
QSG7E - фомула Гаусса с расширенной (Extended) точностью по двадцати четырем узлам.
QSG8E - формула Гаусса с расширенной (Extended) точностью по тридцати двум узлам.
QSG9E - формула Гаусса с расширенной (Extended) точностью по соpока восьми узлам.
QSGAE - формула Гаусса с расширенной (Extended) точностью по шестидесяти четырем узлам.
QSGBE - формула Гаусса с расширенной (Extended) точностью по девяносто шести узлам.

Вызываемые подпрограммы: нет

Замечания по использованию

 

Интегралы считаются по квадратурной формуле Гаусса с узлами и весами Гаусса для отрезка [- 1, 1], к котоpому приводится заданный отрезок интегрирования.

В подпрограмме QSG0E ( версиях: QSG1E, QSG2E, QSG3E, QSG4E, QSG5E, QSG6E, QSG7E, QSG8E, QSG9E, QSGAE, QSGBE ) параметры RINT, A, B, F имеют тип Extended.

Пример использования

Unit TQSG0R_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc, UtRes_p, FQSG0R_p, QSG0R_p, QSG1R_p, QSG2R_p, QSG3R_p, QSG4R_p, QSG5R_p,
QSG6R_p, QSG7R_p, QSG8R_p, QSG9R_p, QSGAR_p;

function TQSG0R: String;

implementation

function TQSG0R: String;
var
RINT,A,B :Real;
begin
Result := '';  { результат функции }
A := 0.0;
B := 1.0;
QSG0R(RINT,A,B,FQSG0R);
Result := Result + Format('%20.16f ',[RINT]) + #$0D#$0A;
QSG1R(RINT,A,B,FQSG0R);
Result := Result + Format('%20.16f ',[RINT]) + #$0D#$0A;
QSG2R(RINT,A,B,FQSG0R);
Result := Result + Format('%20.16f ',[RINT]) + #$0D#$0A;
QSG3R(RINT,A,B,FQSG0R);
Result := Result + Format('%20.16f ',[RINT]) + #$0D#$0A;
QSG4R(RINT,A,B,FQSG0R);
Result := Result + Format('%20.16f ',[RINT]) + #$0D#$0A;
QSG5R(RINT,A,B,FQSG0R);
Result := Result + Format('%20.16f ',[RINT]) + #$0D#$0A;
QSG6R(RINT,A,B,FQSG0R);
Result := Result + Format('%20.16f ',[RINT]) + #$0D#$0A;
QSG7R(RINT,A,B,FQSG0R);
Result := Result + Format('%20.16f ',[RINT]) + #$0D#$0A;
QSG8R(RINT,A,B,FQSG0R);
Result := Result + Format('%20.16f ',[RINT]) + #$0D#$0A;
QSG9R(RINT,A,B,FQSG0R);
Result := Result + Format('%20.16f ',[RINT]) + #$0D#$0A;
QSGAR(RINT,A,B,FQSG0R);
Result := Result + Format('%20.16f ',[RINT]) + #$0D#$0A;
UtRes('TQSG0R',Result);  { вывод результатов в файл TQSG0R.res }
exit;
end;

end.

Unit FQSG0R_p;
interface
uses
SysUtils, Math, { Delphi }
Lstruct, Lfunc;

function FQSG0R(X :Real): Real;

implementation

function FQSG0R(X :Real): Real;
begin
{ Result - прототип имени функции FQSG0R на FORTRANe }
Result := Sqrt(X);
exit;
end;

end.

Результат:   RINT  =  0.67388733868