Текст подпрограммы и версий ( Фортран ) 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 вычисляет криволинейный интеграл от комплекснозначной функции 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