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


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

    Синтаксис:

                 [B, d] = spdiags(A)
                 B = spdiags(A, d)
                 A = spdiags(B, d, A)
                 A = spdiags(B, d, m, n)

    Описание:

    Функция spdiags расширяет возможности встроенной функции diag и позволяет работать с различными комбинациями следующих трех матриц, которые могут быть как входами, так и выходами функции spdiags:

    A - матрица размера m х n, как правило (но не обязательно), разреженная с ненулевыми элементами на p диагоналях;

    В - матрица размера min(m, n) х p, как правило (но не обязательно), полная, столбцы которой являются диагоналями A;

    d - вектор длины p, целочисленные элементы которого определяют номера ненулевых диагоналей A (верхние диагонали нумеруются положительными числами, нижние - отрицательными).

    Грубо говоря, матрицы A, B и вектор d связаны друг с другом следу­ющим образом:

                for k = 1:p
                     B(:, k) = diag(A, d(k))
                end

    Функция spdiags определяет следующие 4 операции в зависимости от количества входных аргументов:

    • выделить все ненулевые диагонали:
                [B, d] = spdiags(A);
    • выделить указанные диагонали:
                B = spdiags(A);
    • заменить указанные диагонали матрицы A:
                A = spdiags(B, d, A);
    • сформировать разреженную матрицу размера m х n по известным диагоналям:
                A = spdiags(B, d, m, n);

    Пример:

    Сформировать трехдиагональную разреженную матрицу для разностного оператора 2-го порядка, заданного на сетке из n узлов.

                  n =5 ;
                  e = ones(n, 1);
                  A = spdiags([e -2*e e], -1:1, n, n)

    Теперь из нее можно сформировать тестовую матрицу Уилкинсона wilkinson(n), изменяя элементы главной диагонали:

                  col = (abs(-(n-1)/2:(n-1)/2))';
                  A = spdiags(col, 0, A)

    В заключение выделим ненулевые диагонали:

                  B = spdiags(A)

    Сопутствующие функции: DIAG.

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

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

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


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

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