ilyagoo писал(а):
Уважаемый Yuri Gendelman, не могли бы вы, если вас не затруднит, привести наглядный пример нахождения матрицы преобразования, а то я уже отчаялся. Все описанные в книгах алгоритмы действуют в случае вещественных матриц, но не один ни разу не сработал в случае комплексной. Заранее благодарен.
Уважаемый
ilyagoo. Я принял участие в этой теме, чтобы помочь Вам в чтении Вилкинсона. Все советы, которые смог придумать, я Вам уже дал. Повторю еще раз, я бы на Вашем месте:
1. Скачал подпрограмму AEH1C из БЧА:
http://www.srcc.msu.su/num_anal/lib_na/cat/ae/aeh1c.htmВот ее описание:
Цитата:
Подпрограмма: AEH1C
Назначение
Вычисление всех собственных значений и соответствующих собственных векторов комплексной эрмитовой матрицы QL - алгоpитмом со сдвигом.
Математическое описание
Заданная матрица приводится унитарными преобразованиями к симметрической вещественной трехдиагональной форме, используемой для вычисления собственных значений с помощью QL - алгоритма со сдвигом. Информация о преобразованиях используется для вычисления собственных векторов.
Дж.Х.Уилкинсон, Алгебраическая проблема собственных значений. "Наука", М., 1970.
2. Разобрался с заданием исходных данных:
Цитата:
Использование
SUBROUTINE AEH1C (N, AR, AI, EV, VR, VI, RAB, IERR)
Параметры
N - порядок исходной матрицы (тип: целый);
AR, AI - вещественные двумерные массивы размерности N на N, содержащие соответственно действительную и мнимую части исходной матрицы;
EV - вещественный одномерный массив размерности N, содержащий вычисленные собственные значения, расположенные в возрастающем порядке;
VR, VI - вещественные двумерные массивы размерности N на N, содержащие соответственно действительную и мнимую части вычисленных ортонормированных собственных векторов;
RAB - вещественный одномерный массив размерности 3 на N, используемый как рабочий;
IERR - целая переменная, служащая для сообщения об ошибках, обнаруженных в ходе работы подпрограммы; значение IЕRR полагается равным номеру собственного значения, для вычисления которого потребовалось более 30 итераций, при этом будут правильно вычислены, но неупорядочены, собственные значения с индексами 1, 2, ..., IЕRR - 1 и соответствующие собственные векторы
3. Записал искодные значения для входных данных.
4. Следуя подпрограмме, выполнил бы все вычисления, записывая значения всех промежуточных переменных.
Достаточно просчитать только начало алгоритма - приведение к 3-диагональной форме.
Вы можете последовать моему совету или не последовать.
Еще раз повторю: я это сделал бы, если бы я был на
Вашем месте. Но я нахожусь на своем, и у меня есть много других дел.