Главная страница
Навигация по странице:

  • Параметр Описание

  • Функция LFCRB

  • Функция LFTRB

  • Реализация LU разложения с помощью функций IMSL. ОТЧЕТ БИРЮКОВКО КОМПАКТНЫЙ. Отчет на тему


    Скачать 182.56 Kb.
    НазваниеОтчет на тему
    АнкорРеализация LU разложения с помощью функций IMSL
    Дата12.05.2022
    Размер182.56 Kb.
    Формат файлаdocx
    Имя файлаОТЧЕТ БИРЮКОВКО КОМПАКТНЫЙ.docx
    ТипОтчет
    #525125
    страница3 из 5
    1   2   3   4   5


    1. Содержание используемых функций





      1. Функция LSLRB


    Функция LSLRB (в режиме двойной точности — DLSLRB) направлена на вычисление LU-разложения вещественной несимметрической ленточной матрицы А и решение системы линейных уравнений Ax = b. [3]
    Входные данные: N, A, LDA, NLCA, NUCA, B, IPATH.

    Выходные данные: X.

    Вызов подпрограммы: CALL LSLRB (N, A, LDA, NLCA, NUCA, B, IPATH, X).

    Таблица 1. Описание входных/выходных параметров подпрограммы

    LSLRB


    Параметр

    Описание

    A

    Массив размерности (LDА,N), содержащий элементы исходной матрицы

    N

    Порядок матрицы А

    LDA

    Ведущий размер массива А по первому измерению

    NLCA

    Число нижних кодиагоналей в А.

    NUCA

    Число верхних кодиагоналей в А.

    B

    Вектор длины N, содержащий правую часть линейной системы.

    IPATH

    Индикатор пути,

    IPATH = 1 означает, что система AX= B решена.

    IPATH = 2 означает, что система Aт X = B решена

    X

    Вектор длины N, содержащий решение линейной системы.

    (Если B не нужен, B и X могут использовать одни и те же места хранения.)

    Комментарии:

    1. Автоматически выделяемая память (число байт):


    М = (2 * NLCA + NUCA + 1) * N + 2N байт памяти. (8)
    В случае двойной точности в подпрограммах автоматически выделяется
    М = 2(2 * NLCA + NUCA + 1) * N + 3N байт памяти. (9)
    Также рабочее пространство может быть явно предоставлено, если это нужно, с использованием L2LRB/DL2LRB.

    Например:
    CALL L2LRB (N, A, LDA, NLCA, NUCA, B, IPATH, X, FAC, IPVT, WK), где
    FAC - рабочий вектор длины (2 * NLCA + NUCA + 1) * N, содержащий LU факторизацию A на выходе. Если A не нужен, A может разделить первые (NLCA + NUCA + 1) * N мест хранения с FAC.

    IPVT - рабочий вектор длины N, содержащий информацию для LU-факторизации A на выходе.
    WK – рабочий вектор длиной N.



    1. Возможные ошибки

    1. Входная матрица слишком плохо обусловлена. Решение может быть неточным. (тип – 3, код – 1).

    2. Входная матрица сингулярна. (тип – 4, код – 2.)


    Алгоритм:

    Процедура LSLRB решает систему линейных алгебраических уравнений, имеющих вещественную ленточную матрицу коэффициентов. Сначала используется процедура LFCRB, для вычисления факторизации LU матрицы коэффициентов и оценки числа обусловленности матрицы. Затем решение линейной системы находится с помощью процедуры LFSRB. LSLRB не работает, если U, верхняя треугольная часть факторизации, имеет нулевой диагональный элемент. Это происходит только в том случае, если A является сингулярной или очень близкой к сингулярной матрице. Если число обусловленности матрицы больше 1/ε (где ε - точность машины), выдается предупреждение об ошибке. Это указывает на то, что очень небольшие изменения в A могут вызвать очень большие изменения в решении x. Если матрица коэффициентов плохо обусловлена или плохо масштабирована, рекомендуется использовать процедуру LSARB.



      1. Функция LFCRB


    Функция LFCRB режиме двойной точности DLFCRB) вычисляет LU-разложение и выполняет оценку числа обусловленности вещественной несимметрической ленточной матрицы.[3]

    Входные данные: N, A, LDA, NLCA, NUCA, LDFAC.

    Выходные данные: FAC, IPVT, RCOND.

    Вызов подпрограммы осуществляется с помощью команды:

    CALL LFCRB (N, A, LDA, NLCA, NUCA, FAC, LDFAC, IPVT, RCOND)
    Таблица 2. Описание входных/выходных параметров подпрограммы

    LFCRB


    Параметр

    Описание

    A

    Массив размерности (LDA,N), содержащий элементы исходной матрицы

    N

    Порядок матрицы А

    LDA

    Ведущий размер массива А по первому измерению

    NLCA

    Число нижних кодиагоналей в А.

    NUCA

    Число верхних кодиагоналей в А.

    FAC

    (2 * NLCA + NUCA + 1) на (N) массив, содержащий LU факторизацию матрицы A.

    Если массив A не нужен, он может поделиться первым ((NLCA + NUCA + 1) * (N) ) местоположением с FAC.

    LDFAC

    Ведущая размерность FAC, которая точно соответствует размерности, указанной в выражении размерности оператора вызывающей программы.

    IPVT

    Вектор длины N, содержащий информацию о повороте для LU

    факторизации.

    RCOND

    Скаляр, содержащий оценку числа обусловленности матрицы.

    Комментарии:

    1. Автоматически выделяемая память1 (число байт):

    М = N байт памяти. (10)

    В случае двойной точности в подпрограммах автоматически выделяется

    М = 2N байт памяти. (11)
    Также рабочее пространство может быть явно предоставлено, если это нужно, с использованием L2СRB/DL2СRB.

    Например: CALL L2CRB (N, A, LDA, NLCA, NUCA, FAC, LDFAC, IPVT, RCOND, WK), где

    WK – рабочий вектор длиной N.

    1. Возможные ошибки

    1. Входная матрица алгоритмически сингулярна (тип – 3, код- 1).

    2. Входная матрица сингулярна. ( тип – 4, код – 2).

    Алгоритм:

    Процедура LFCRB выполняет LU-факторизацию вещественной матрицы ленточных коэффициентов. Она также оценивает число обусловленности матрицы. LU-факторизация выполняется с использованием масштабированной частичной поворотной функции. Масштабированная частичная поворотная операция отличается от частичной поворотной операции тем, что стратегия поворота такая же, как если бы каждая строка была масштабирована так, чтобы иметь одинаковую ∞-норму (В данном случае только наибольший элемент имеет какой-либо эффект).

    Условное число L1 матрицы A определяется как κ(A) = ||A|||1 ||A-1|||1.

    Поскольку вычисление ||A-1||1 является ресурсоемким, число обусловленности только оценивается.

    Если оцененное число обусловленности больше 1/ε (где ε - машинная

    точность), выдается предупреждение об ошибке. Это указывает на то, что очень малые изменения в A могут привести к очень большим изменениям в решении x. Итерационное уточнение может иногда найти решение такой системы.

    LSCRB не работает, если U, верхняя треугольная часть факторизации, имеет нулевой диагональный элемент. Это может произойти, только если A - сингулярная или очень близкая к сингулярной матрица.

    LU-факторы возвращаются в форме, совместимой с подпрограммами LFIRB, LFSRB, и LFDRB. Для решения систем уравнений с несколькими правосторонними векторами, используйте LFCRB, за которой следует LFIRB или LFSRB, вызываемыми по одному разу для каждой правой стороны. Процедура LFDRB может быть вызвана, чтобы

    вычислить детерминант матрицы коэффициентов после того, как LFCRB выполнит факторизацию.

    Пусть F - матрица FAC, пусть ml = NLCA и mu = NUCA. Первые ml + mu + 1

    строк F содержат треугольную матрицу U в ленточной форме хранения. Нижние ml

    строк F содержат множители, необходимые для восстановления L-1.

    LFCRB основан на программе SGBCO из LINPACK и использует немасштабируемый частичный поворот.



      1. Функция LFTRB

    Функция LFTRB режиме двойной точности DLFTRB) вычисляет LU-разложение вещественной несимметрической ленточной матрицы без оценки ее числа обусловленности.[3]

    Входные данные: N, A, LDA, NLCA, NUCA, LDFAC.

    Выходные данные: FAC, IPVT, RCOND.

    Вызов подпрограммы осуществляется с помощью команды:

    CALL LFTRB (N, A, LDA, NLCA, NUCA, FAC, LDFAC, IPVT)
    Таблица 3. Описание входных/выходных параметров подпрограммы

    LFTRB.


    Параметр

    Описание

    A

    Массив размерности (LDA,N), содержащий элементы исходной матрицы

    N

    Порядок матрицы А

    LDA

    Ведущий размер массива А по первому измерению

    NLCA

    Число нижних кодиагоналей в А.

    NUCA

    Число верхних кодиагоналей в А.

    FAC

    (2 * NLCA + NUCA + 1) на (N) массив, содержащий LU факторизацию матрицы A.

    Если массив A не нужен, он может поделиться первым ((NLCA + NUCA + 1) * (N) ) местоположением с FAC.

    LDFAC

    Ведущая размерность FAC, которая точно соответствует размерности, указанной в выражении размерности оператора вызывающей программы.

    IPVT

    Вектор длины N, содержащий информацию о повороте для LU

    факторизации.

    RCOND

    Скаляр, содержащий оценку числа обусловленности матрицы.

    Комментарии:

    1. Автоматически выделяемая память1 (число байт):

    М = N байт памяти. (12)

    В случае двойной точности в подпрограммах автоматически выделяется

    М = 2N байт памяти. (13)
    Также рабочее пространство может быть явно предоставлено, если это нужно, с использованием L2СRB/DL2СRB.

    Например: CALL L2TRB (N, A, LDA, NLCA, NUCA, FAC, LDFAC, IPVT, WK), где

    WK – рабочий вектор длиной N.

    1. Возможные ошибки

    1. Входная матрица сингулярна. (тип – 4, код – 2).



    Алгоритм:
    Процедура LFTRB выполняет LU-факторизацию вещественной матрицы с ленточными коэффициентами, используя гауссово исключение с частичным поворотом. Сбой происходит, если U, верхний треугольный коэффициент, имеет нулевой диагональный элемент. Это может произойти, если A близка к сингулярной матрице. Коэффициенты LU возвращаются в форме, совместимой с процедурами LFIRB, LFSRB, и LFDRB. Для решения системы уравнений с несколькими правосторонними векторами, используйте LFTRB, за которым следует либо LFIRB, либо LFSRB, вызываемые по одному разу для каждой правой стороны. Процедура LFDRB может быть вызвана для вычисления детерминанта матрицы коэффициентов после того, как LFTRB выполнила факторизацию.

    1. 1   2   3   4   5


    написать администратору сайта