Текст подпрограммы и версий ( Фортран ) av18r.zip av18d.zip |
Тексты тестовых примеров ( Фортран ) tav18r.zip tav18d.zip |
Текст подпрограммы и версий ( Си ) av18r_c.zip av18d_c.zip |
Тексты тестовых примеров ( Си ) tav18r_c.zip tav18d_c.zip |
Текст подпрограммы и версий ( Паскаль ) av18r_p.zip av18e_p.zip |
Тексты тестовых примеров ( Паскаль ) tav18r_p.zip tav18e_p.zip |
Построение плоского вращения Гивенса.
Для заданных вещественных чисел А и В последовательно вычисляются величины
σ = sign(A) , если | A | ≥ | B | σ = sign(B) , если | B | ≥ | A | , R = σ ( A2 + B2 )1/2 , C = A / R , если R ≠ 0 C = 1 , если R = 0 , S = B / R , если R ≠ 0 S = 0 , если R = 0 .
Полученные таким образом числа С, S и R удовлетворяют матричному уравнению
| C S | | A | | R | | - S C | * | B | = | 0 |
Дж.Форсайт, М.Малькольм, К.Моулер. Машинные методы математических вычислений. М.: Мир, 1980.
SUBROUTINE AV18R (SA, SB, C, S)
Параметры
SA - | вещественная переменная, в которой задается величина А; на выходе содержит вычисленное значение величины R; |
SB - | вещественная переменная, в которой задается величина В; на выходе содержит вычисленное значение величины Z, где |
Z = S , если | A | > | B | Z = 1 / C , если | B | ≥ | A | и C ≠ 0 Z = 1 , если C = 0 ; | |
C - | вещественная переменная, содержащая на выходе вычисленное значение величины С; |
S - | вещественная переменная, содержащая на выходе вычисленное значение величины S; |
Версии
AV18D - | построение плоского вращения Гивенса для вещественных А и В, заданных с удвоенной точностью. |
Вызываемые подпрограммы: нет
Замечания по использованию
1. |
В подпрограмме АV18D переменные SА, SВ, С, S имеют тип DОUВLЕ РRЕСISIОN. | |
2. |
Введение величины σ не является необходимым для построения матрицы вращения Гивенса, но позволяет однозначно восстанавливать С и S, зная лишь одно число Z, а именно: - если Z = 1, то С = 0 и S = 1; - если | Z | < 1, то С = ( 1 - Z2 )1/2 и S = Z; - если | Z | > 1, то С = 1/Z и S = ( 1 - C2 )1/2. |
SA = 4.2 SB = - 3.7 CALL AV18R (SA, SB, C, S) Результаты: SA = 5.597 , SB = - 0.661 , C = 0.7503 , S = - 0.661