Текст подпрограммы и версий ( Фортран )
qsazc.zip  qsazp.zip 
Тексты тестовых примеров ( Фортран )
tqsazc.zip  tqsazp.zip 
Текст подпрограммы и версий ( Си )
qsazc_c.zip  qsazp_c.zip 
Тексты тестовых примеров ( Си )
tqsazc_c.zip  tqsazp_c.zip 
Текст подпрограммы и версий ( Паскаль )
qsazc_p.zip  qsazz_p.zip 
Тексты тестовых примеров ( Паскаль )
tqsazc_p.zip  tqsazz_p.zip 

Подпрограмма:  QSAZC

Назначение

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

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

Подпрограмма QSAZC вычисляет криволинейный интеграл от комплекснозначной функции  f (z) ,  z = z (t)  по участку кривой Г, для которого a ≤ t ≤ b. Вычисленное значение интеграла полагается равным конечной сумме Римана - Стилтьеса

            n 
           ∑   f ( zk )  ( zi  -  zi-1 )     ,
           i=1 

где  n - число подынтервалов, на которые должен быть разбит исходный отрезок [ a, b ],
а  zk ( zi - 1, zi ) .

Лаврентьев М.А., Шабат Б.В. Методы теории функций комплексного переменного. М.: Физматгиз, 1965.

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

    SUBROUTINE  QSAZC (A, B, F, G, N, RINT1, RINT2) 

Параметры

A, B - заданные границы отрезка изменения параметра  t  (тип: вещественный);
F - имя подпрограммы вычисления значения  f (z) в текущей точке  z (t) кривой Г; заголовок подпрограммы F имеет вид:

SUBROUTINE  F (Z, FZ),

где Z - вещественный одномерный массив длины 2, в первой компоненте которого задается вещественная часть аргумента  z (t), а во второй - мнимая часть аргумента  z (t);
FZ - вещественный одномерный массив длины 2, в первой компоненте которого должна быть помещена вещественная часть  f ( z (t) ), а во второй компоненте - мнимая часть  f ( z (t) )
G - имя подпрограммы вычисления значения текущей точки  z (t)  кривой Г; заголовок подпрограммы G имеет вид:

SUBROUTINE  G (T, ZT),

где T - значение параметра  t , определяющее положение текущей точки  z (t) на кривой Г;
ZT - вещественный одномерный массив длины 2, в первой компоненте которого должна быть помещена вещественная часть вычисленного значения  z (t), а во второй компоненте - мнимая часть вычисленного значения  z (t)
N - заданное число подынтервалов, на которые должен быть разбит исходный отрезок [ a, b ] (тип: целый);
        RINT1 -
        RINT2  
вещественные переменные, содержащие на выходе соответственно вещественную и мнимую части вычисленного значения интеграла.

Версии

QSAZP - вычисление криволинейного интеграла от комплекснозначной функции в режиме удвоенной точности; при этом параметры A, B, RINT1 и RINT2, а также Z, FZ, T и ZT должны иметь тип DOUBLE PRECISION.

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

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

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

Пусть требуется вычислить интеграл

          ∫    z 2  dz   =   - 2/3     ,

где z = z (1) + i z (2), по полуокружности | z | = 1, 0 ≤ arg (z) ≤ π  с началом пути в точке  z = 1 . Данная полуокружность (участок кривой Г) описывается уравнениями:

          z(1)   =   cos  t
          z(2)   =   sin  t     ,  

где a ≤ t ≤ b, a = 0, b = π .
Выражения для FZ(1) и FZ(2) следуют из соотношений:

           z2    =    ( z(1)   +   i z(2) )2    =    z(1)2   -   z(2)2   +   2 i z(1) z(2)   =
                 =    cos2 t   -   sin2 t   +   2 i cos t  sin t    =    1   -   2 sin2 t   +   2 i cos t  sin t    = 
                 =    1   -   2 z(2)2   +   2 i z(1) z(2)     .

Отсюда следует, что

          FZ(1)   =   1  -  2 z(2)2  ;       FZ(2)   =   2 z(1) z(2) 

       EXTERNAL F, G 
       A = 0.0 
       B = 3.14159265 
       N = 250 
       CALL  QSAZC (A, B, F, G, N, RINT1, RINT2) 

       SUBROUTINE  F (Z, FZ) 
       DIMENSION Z(2), FZ(2) 
       FZ(1) = 1-2*Z(2)**2 
       FZ(2) = 2*Z(1)*Z(2) 
       RETURN 
       END 
 
       SUBROUTINE G(T, ZT) 
       DIMENSION ZT(2) 
       ZT(1) = COS(T) 
       ZT(2) = SIN(T) 
       RETURN 
       END 
 
Результаты:      RINT1   =   -0.6667545    ,       RINT2   =   -0.1329556E-4