Разное

Inv matlab: Matrix inverse — MATLAB inv

Обращение матриц — функции inv, pinv MatLab

RADIOMASTER

Лучшие смартфоны на Android в 2022 году

Серия iPhone от Apple редко чем удивляет. Когда вы получаете новый iPhone, общее впечатление, скорее всего, будет очень похожим на ваше предыдущее устройство. Однако всё совсем не так в лагере владельцев устройств на Android. Существуют телефоны Android всех форм и размеров, не говоря уже о разных ценовых категориях. Другими словами, Android-телефон может подойти многим. Однако поиск лучших телефонов на Android может быть сложной задачей.

1465 0

Документация Схемотехника CAD / CAM Статьи

MathCAD 12 MatLab OrCAD P CAD AutoCAD MathCAD 8 — 11

  • Главная
  • /
  • База знаний
  • /
  • CAD / CAM
  • /
  • -1=Е/Х. Следующие функции обеспечивают реализацию данной операции:

     inv(X) — возвращает матрицу, обратную квадратной матрице X. Предупреждающее сообщение выдается, если X плохо масштабирована или близка к вырожденной.

    Пример:

    » inv(rand(4,4)) 

    ans =

    2.2631 -2.3495-0.4696-0.6631

    -0.76201.2122 1.7041 -1.2146

    -2.04081.4228 1.5538 1.3730 

    1.3075 -0.0183-2.54830.6344

    На практике вычисление явной обратной матрицы не так уж необходимо. Чаще операцию обращения применяют при решении системы линейных уравнений вида Ах=b. Один из путей решения этой системы — вычисление x=inv(A)*b.

    Но лучшим с точки зрения минимизации времени расчета и повышения точности вычислений является использование оператора матричного деления х=А\b. Эта операция использует метод исключения Гаусса без явного формирования обратной матрицы.

    В = pinv(A) — возвращает матрицу, псевдообратную матрице А (псевдообращение матрицы по Муру-Пенроузу). Результатом псевдообращения матрицы по Муру-Пенроузу является матрица В того же размера, что и А’, и удовлетворяющая условиям А*В*А=А и В*А*В=В. Вычисление основано на использовании функции svd(A) и приравнивании к нулю всех сингулярных чисел, меньших величины tol;

    В = pinv (A. tol) — возвращает псевдообратную матрицу и отменяет заданный по умолчанию порог, равный max(size(A))*norm(A)*eps.

    Пример:

    » pinv(rand(4,3))

    ans =

    -1. 3907-0.0485-0.24931.8640

    -0.87751.1636 0.6605 -0.0034 

    2.0906 -0.5921-0.2749-0.5987

     

    Нравится

    Твитнуть

    Теги MatLab САПР

    Сюжеты MatLab

    Знакомство с матричной лабораторией MATLAB MatLab

    8193 0

    Визуализация и графические средства MatLab

    9702 0

    Техническая документация по системе MatLab

    6219 0

    Комментарии (0)

    Вы должны авторизоваться, чтобы оставлять комментарии.

    Вход

    О проекте Использование материалов Контакты

    Новости Статьи База знаний

    Радиомастер
    © 2005–2022 radiomaster.ru

    При использовании материалов данного сайта прямая и явная ссылка на сайт radiomaster.ru обязательна. 0.2106 s

    inv (Справочник по функциям MATLAB)

    inv (Справочник по функциям MATLAB)
    Справочник по функциям MATLAB    Перейти к функции:     Поиск   &nbspСправочная служба 
    инв    Примеры   См. также

    Обратная матрица

    Синтаксис

       Y = инв(Х)
       

      Описание

      Y = инв(Х) возвращает обратную квадратную матрицу х . Предупреждающее сообщение печатается, если X плохо масштабируется или почти одинарно. На практике редко требуется формировать явную обратную матрицу. Частое неправильное использование inv возникает при решении системы линейных уравнений
      Ax = b. Один из способов решить эту проблему — x = inv(A) * b . Лучшим способом, как с точки зрения времени выполнения, так и с точки зрения числовой точности, является использование оператора деления матрицы x 9.0032 = А\б . Это дает решение с использованием метода исключения Гаусса без образования обратного. Для получения дополнительной информации см. \ и / .

      Примеры

      Вот пример, демонстрирующий разницу между решением линейной системы путем обращения матрицы с
      inv(A)
      * b и решением ее напрямую с A\b . Матрица A порядка 100 построена так, что ее число обусловленности cond(A) , это 1.e10 , а его норма, norm(A) , это 1 . Точное решение x представляет собой случайный вектор длины 100, правая часть которого равна b = A * x . Таким образом, система линейных уравнений плохо обусловлена, но непротиворечива. На ноутбуке 386SX с тактовой частотой 20 МГц операторы
         тик  ,  y = inv(A)*b, toc
        ошибка = норма (у-х)
        разрешение = норма (A * y-b)
         
        производить
           прошедшее_время =
              9.6600
          ошибка =
              2.4321э-07
          разрешение =
              1.8500э-09
           
          в то время как заявления
             тик, z = A\b, тик
            ошибка = норма (г-х)
            разрешение = норма (A * z-b)
             
            производить
               прошедшее_время =
                  3.9500
              ошибка =
                  6.6161э-08
              разрешение =
                  9.1103э-16
               
              Вычисление решения с
              y = inv(A) * b занимает почти в два с половиной раза больше времени, чем с z = A\b . Оба дают вычисленные решения с примерно одинаковой ошибкой, 1.e-7 , отражающий номер состояния матрицы. Но размер остатков, полученных путем подстановки вычисленного решения обратно в исходные уравнения, отличается на несколько порядков. Прямое решение дает невязки порядка машинной точности, даже если система плохо обусловлена. Поведение этого примера типично. Использование A\b
              вместо inv(A) * b в два-три раза быстрее и дает погрешности порядка машинной точности относительно величины данных.

              Алгоритм

              Команда inv использует подпрограммы ZGEDI и ZGEFA от LINPACK. Для получения дополнительной информации см. Руководство пользователя LINPACK .

              Диагностика

              Из inv , если матрица вырожденная,
                 Matrix отличается исключительной точностью работы.
                 
                На машинах с арифметикой IEEE это только предупреждающее сообщение. Затем inv возвращает матрицу, в которой каждому элементу присвоено значение Inf . На машинах без арифметики IEEE, таких как VAX, это считается ошибкой. Если обратное было найдено, но недостоверно, отображается это сообщение.
                   Предупреждение. Матрица близка к единственной или плохо масштабирована.
                      Результаты могут быть неточными. RCOND = 
                  ххх

                  См. также

                  \         Матричное левое деление (обратная косая черта)

                  /             Правое деление матрицы (косая черта)

                  det           Определитель матрицы

                  LU            матричная факторизация LU

                  номер          Уменьшенная эшелонированная форма строки

                  Ссылки

                  [1] Донгарра, Дж. Дж., Дж. Р. Банч, К. Б. Молер и Г. У. Stewart, Руководство пользователя LINPACK , SIAM, Филадельфия, 1979 г.

                  [ Предыдущая | Служба поддержки | Следующий ]

                  линейная алгебра.

                  Почему inv Matlab работает медленно и неточно?

                  спросил

                  Изменено 7 лет, 1 месяц назад

                  Просмотрено 9к раз

                  Я читал в нескольких местах (в документе и в этом сообщении в блоге: http://blogs.mathworks.com/loren/2007/05/16/purpose-of-inv/), что использование inv в Matlab не рекомендуется, потому что это медленно и неточно.

                  Пытаюсь найти причину этой неточности. На данный момент Google не дал интересных результатов, поэтому я подумал, что кто-то здесь может мне помочь.

                  Спасибо!

                  • matlab
                  • линейная алгебра
                  • численный анализ
                  • обратная матрица

                  Неточность, о которой я упоминал, связана с методом INV, а не с его реализацией в MATLAB. Вы должны использовать QR, LU или другие методы для решения систем уравнений, поскольку эти методы обычно не требуют возведения в квадрат числа обусловленности рассматриваемой системы.

                  Использование inv обычно требует операции, которая теряет точность из-за возведения в квадрат числа обусловленности исходной системы.

                  --Loren

                  Я думаю, что смысл блога Лорен не в том, что функция MATLAB inv особенно медленнее или неточнее, чем любая другая численная реализация вычисления обратной матрицы; скорее, в большинстве случаев сама инверсия не нужна, и вы можете действовать другими способами (например, решить линейную систему, используя \ — оператор обратной косой черты — вместо вычисления инверсии).

                  3

                  inv() , безусловно, медленнее, чем \ , если только у вас нет нескольких правосторонних векторов для решения. Однако совет MathWorks относительно неточности связан с чрезмерно консервативной оценкой результата численной линейной алгебры. Другими словами, inv() НЕ является неточным. Ссылка уточняет дальше: http://arxiv.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *