Купить Matlab  |  Mathematica  |  Mathcad  |  Maple  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Форум  |  Download
https://hub.exponenta.ru/


Справочник по Matlab
  • Массивы, матрицы и операции с ними
  • Математические функции
  • Линейная алгебра
  • Анализ и обработка данных
  • Работа с разреженными матрицами
  • Графические команды и функции
  •  
    INV
    Обращение матрицы

    Синтаксис:

                 Y = inv(A)

    Описание:

    Функция Y = inv(A) вычисляет матрицу, обратную квадратной матрице A. В случаях, когда матрица A плохо масштабирована или близка к вырожденной, выдаются сообщения.

    На практике вычисление явной обратной матрицы требуется не так часто. Как правило, говоря о задаче обращения, имеют в виду нахождение решений систем линейных уравнений. В рамках системы MATLAB для этих целей рекомендуется использовать решатели систем, то есть операторы вида x = A\b или x = b/ A, а не операцию x = inv(A)*b.

    Диагностические сообщения:

    В процессе выполнения функции inv на рабочих станциях и компьютерах с IEEE-арифметикой возможно появление следующего предупреждения:

                   Matrix is singular to working precision.
                   При заданной точности матрица вырожденна.

    При этом формируется матрица, все элементы которой равны Inf.

    На машинах без IEEE-арифметики, например на VAX, эта ситуация рассматривается как ошибка.

    Если выполненное обращение ненадежно, появляется сообщение

                   Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = xxx
                   Предупреждение: Матрица близка к вырожденной. Результаты могут быть неточными. RCOND = xxx

    Примеры:

    Рассмотрим пример, демонстрирующий различие в определении решения систем линейных уравнений с помощью операций x = inv(A) * b и x = A \ b.

    Cформируем матрицу Кахана A = kahan(100,1.35); со следующими характеристиками:

                     cond(A) = 1.6203e+010 norm(A) = 8.2970,

    используя пакет Test Matrix Toolbox.

    Затем сформируем результат в виде случайного вектора x = rand(100, 1);, а затем вычислим вектор b = A * x.

    Используя компьютер PC/AT 486 с тактовой частотой 50 МГц, выполним следующие расчеты с фиксацией продолжительности вычислений:

    t0 = clock; t0 = clock;
    y = inv(A) * b; z = A \ b;
    t = etime(clock, t0) t = etime(clock, t0)
    t = 1.0400 t = 0.0600
    err = norm(y - x) err = norm(z - x)
    err = 2.3224e-008 err = 1.1668e-008
    res = norm(A * y - b) res = norm(A * z - b)
    res = 2.5831e-008 res = 1.0409e-014

    Сравнивая оба подхода, можно убедиться, что расчеты с помощью решателя выполняются значительно быстрее и с большей точностью.

    Сопутствующие функции: DET, LU, RCOND, RREF, \, /.

    Ссылки:

    1. Dongarra J. J., Bunch J. R., Moler C. B., Stewart G. W. LINPACK User’s Guide. Philadelphia, 1979.

    В начало страницы К предыдущему разделуК следующему разделу

    | На первую страницу | Поиск | Купить Matlab

    Исправляем ошибки: Нашли опечатку? Выделите ее мышкой и нажмите Ctrl+Enter


    Copyright © 1993-2024. Компания Softline. Все права защищены.

    Дата последнего обновления информации на сайте: 04.03.17
    Сайт начал работу 01.09.00