|
Текст подпрограммы и версий ( Фортран ) asv1r.zip , asv1d.zip |
Тексты тестовых примеров ( Фортран ) tasv1r.zip , tasv1d.zip |
|
Текст подпрограммы и версий ( Си ) asv1r_c.zip , asv1d_c.zip |
Тексты тестовых примеров ( Си ) tasv1r_c.zip , tasv1d_c.zip |
|
Текст подпрограммы и версий ( Паскаль ) asv1r_p.zip , asv1e_p.zip |
Тексты тестовых примеров ( Паскаль ) tasv1r_p.zip , tasv1e_p.zip |
Решение систем линейных алгебраических уравнений с матрицей Вандермонда.
ASV1R вычисляет решение системы N линейных алгебраических уравнений с матрицей Вандермонда:
| 1 1 ... 1 | | y1 | | b1 |
| x1 x2 ... xN | | y2 | | b2 |
| x12 x22 ... xN2 | | y3 | = | b3 |
. . . . . . . . . . . . . . . . . . . . . . . .
| x1N-1 x2N-1 ... xNN-1 | | yN | | bN |
Решение системы данного вида с транспонированной матрицей осуществляется подпрограммой IP01R .
Н.С.Бахвалов. Численные методы. Изд - во "Наука", 1973.
SUBROUTINE ASV1R (X, Y, B, N, RAB, IERR)
Параметры
| X - | вещественный вектор длины N, компоненты которого равны коэффициентам x1, x2, ..., xN заданной матрицы системы; |
| Y - | вещественный вектор длины N, содержащий компоненты вычисленного вектора решения системы; |
| B - | вещественный вектор длины N, в котором задаются компоненты вектора правой части системы; |
| N - | порядок системы (тип: целый); |
| RAB - | вещественный вектор длины N, используемый в подпрограмме в качестве рабочего; |
| IERR - | целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; при этом |
| IERR=65 - | когда матрица системы вырождена. |
Версии
| ASV1D - | решение систем линейных алгебраических уравнений с матрицей Вандермонда в режиме удвоенной точности. При этом параметры X, Y, B, RAB должны иметь тип DOUBLE PRECISION. |
Вызываемые подпрограммы
| UTAS10 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы ASV1R. |
| UTAS11 - | подпрограмма выдачи диагностических сообщений при работе подпрограммы ASV1D. |
Замечания по использованию: нет
REAL X(3), Y(3), B(3), RAB(3)
DATA X /0.0, - 1.0, 1.0/, B /0.0, 1.0, 2.0/
N = 3
CALL ASV1R (X, Y, B, N, RAB, IERR)
Результаты: Y = ( - 2.0, 0.5, 1.5 ) , IERR = 0