На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Решение системы AX=B , , где A и B - матрицы размером MxN
    Подскажите, пожадуйста, как можно решить систему AX=B, где матрицы A (размером M x N) и B (размером N x K) состоят из комплексных чисел вида a+bi

    Прототип функции в MATLAB:

    Синтаксис:

    X = B \ A
    X = B / A

    Описание:

    Функция X = A \ B находит решение системы уравнений вида AX = B, где A - прямоугольная матрица размера m х n и B - матрица размера n х k.

    Функция X = B / A находит решение системы уравнений вида XA = B, где A - прямоугольная матрица размера n х m и B - матрица размера m х k.

    Алгоритм:

    Решение систем линейных уравнений вида X = A \ B и X = B / A реализовано в MATLAB с помощью специального монитора, который использует разные алгоритмы решения в зависимости от структуры матрицы A.

    Если A - треугольная матрица с точностью до перестановки ее строк или столбцов, то решение таких систем уравнений может быть эффективно вычислено методом обратной подстановки. Проверка матрицы, является ли она верхней треугольной, осуществляется для полных матриц проверкой на нуль всех элементов, лежащих ниже диагонали; для разреженных матриц - определением структуры ее элементов. Большинство матриц нетреугольной структуры выявляются почти мгновенно, так что такая проверка требует очень малого времени.
    Если матрица A - симметрическая или эрмитова с положительными диагональными элементами, то применяется разложение Холецкого (функция chol). Если A - разреженная матрица, применяется алгоритм упорядочения по разреженности (функции symmmd и spparms). Если при этом матрица A положительно определенна, то алгоритм Холецкого позволяет эффективно найти решение. Матрицы, не являющиеся положительно определенными, выявляются почти мгновенно. Разложение Холецкого имеет вид:
    A = L * LT,
    где LT - верхняя треугольная матрица. После этого решение Х можно получить решая последовательно две треугольные системы
    X = LT \ (L \ B).
    Если A - произвольная квадратная матрица, то треугольное разложение вычисляется методом исключения Гаусса с частичным выбором главного элемента (функция lu). Если A - разреженная матрица, применяется алгоритм упорядочения по разреженности столбцов (функции colmmd и spparms). В результате имеем следующее разложение:
    A = L * U,
    где L - нижняя, а U - верхняя треугольные матрицы. После этого решение Х можно получить решая последовательно две треугольные системы
    X = U \ (L \ B).
    Если A - прямоугольная полная матрица, то применяется QR-разложение на основе преобразований Хаусхолдера следующего вида
    A * P = Q * R,
    где P - матрица преобразований, Q - ортогональная и R - верхняя треугольная (функция qr) матрицы. Решение, соответствующее минимуму квадрата ошибки, находится согласно следующему соотношению
    X = P * (R \ (QT * B)).
    Если A - прямоугольная разреженная матрица, то формируется вспомогательная расширенная матрица следующего вида:
    S = [c*I A; AT 0].
    Это реализуется с помощью функции spaugment. По умолчанию значение коэффициента масштабирования невязки c равно max(max(abs(A)))/1000 (функция spparms). Решение X в соответствии с методом наименьших квадратов и матрица невязок R = B - A * X вычисляются путем решения следующей системы:
    S * [R / c; X] = [B; 0]
    с использованием алгоритмов упорядочения по разреженности и исключения Гаусса с выбором главного элемента.
    Различные алгоритмы разложения матриц реализованы в системе MATLAB на основе ZGECO, ZGEFA и ZGESL для квадратных и процедур ZQRDC и ZQRSL для прямоугольных матриц из пакета LINPACK [1].
    Диагностические сообщения:

    При решении систем линейных уравнений:
    если A - квадратная вырожденная матрица, выдается сообщение Matrix is singular to working precision.

    Для выбранной точности матрица вырожденна.

    При поэлементном делении:
    если массив-делитель имеет нулевые элементы, выдается сообщение

    Divide by zero.
    Деление на нуль.

    На ЭВМ, где не реализован стандарт IEEE-арифметики, например на ЭВМ VAX, обе вышеприведенные операции будут выдавать сообщения об ошибке. На ЭВМ, где реализован стандарт IEEE-арифметики, например на РС, будут генерироваться только предупреждения. При этом при решении систем будут возвращаться матрицы, часть элементов которых будет иметь значение Inf; при поэлементном делении результатом могут быть как значения Inf, так и значение NaN.

    Если результат обращения матрицы не является надежным, выдается сообщение

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

    При решении систем линейных уравнений:
    если прямоугольная матрица А имеет неполный столбцовый ранг, выдается сообщение

    Warning: Rank deficient, rank = xxx tol = xxx
    Предупреждение: Неполный ранг, ранг rank = xxx точность tol = xxx

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

    Ссылки:

    1. Dongarra J. J., Bunch J. R., Moler C. B., Stewart G. W. LINPACK User’s Guide. Philadelphia, 1979.
      имхо тему нужно в Алгоритмы
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0208 ]   [ 16 queries used ]   [ Generated: 26.04.24, 23:25 GMT ]