Используйте разреженные и плотные матрицы

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.

Когда вы используете матрицы в расчетах MuPAD®, и вычислительное использование КПД и памяти может зависеть от того, является ли матрица разреженной или плотной. Разреженные матрицы содержат большое количество элементов с нулевым знаком. Внутренняя память матриц в MuPAD оптимизирована для разреженных данных. MuPAD сохраняет ненулевые элементы и их индексы. Когда вы используете разреженные матрицы, MuPAD принимает, что все незаданные элементы являются нулями. При работе с большими разреженными матрицами рассмотрите следующие методы для лучшей производительности:

  • Чтобы создать матрицы, используйте matrix функционируйте или конструктор Dom::Matrix() когда это возможно. И конструктор и функция создают матрицы по звонку произвольных выражений MuPAD Dom::ExpressionField().

  • При решении систем уравнений, представленных разреженными матрицами, избегайте вычислительных обратных матриц. Вместо этого используйте linalg::matlinsolve найти точные символьные решения или numeric::matlinsolve найти числовые приближения.

  • Постарайтесь не создавать большие пустые матрицы, и затем использовать индексированные присвоения в ненулевых значениях. Индексируемые присвоения в MuPAD являются дорогими операциями. Указывание элементов одновременно, когда вы создаете матрицу, более эффективно. Например, команда

    matrix(10, 10, [-1, 2, -1], Banded):

    более эффективно, чем

    A := matrix(10, 10):
    for i from 1 to 10 do
      A[i, i] := 2:
    end_for:
    for i from 1 to 9 do
        A[i, i + 1] := -1:
        A[i + 1, i] := -1:
    end_for:

Плотные матрицы содержат только некоторых или никакие элементы с нулевым знаком. MuPAD обеспечивает специальную матричную область для плотных матриц. Чтобы создать такие матрицы, используйте densematrix функция, которая является ярлыком для конструктора Dom::DenseMatrix(). Также можно использовать конструктора самостоятельно. Для матриц Dom::DenseMatrix() область, индексированное чтение и запись быстрее, чем для матриц Dom::Matrix() область.

Для просмотра документации необходимо авторизоваться на сайте