Иллюстрированный самоучитель по MathCAD 12

Хорошо обусловленные системы с квадратной матрицей. Вычислительный блок Given/ Find.

С вычислительной точки зрения, решение СЛАУ с квадратной матрицей А не представляет трудностей, если размерность А не очень велика. С большой матрицей проблем также не возникает, если она не очень плохо обусловлена (конечно, надо учитывать, что объем вычислений возрастает с увеличением размерности матрицы). В данном разделе будут рассмотрены именно такие системы, решение которых реализовано в Mathcad в двух вариантах:

  • вычислительный блок Given/Find (приближенный итерационный алгоритм);
  • встроенная функция isoive (точный алгоритм Гаусса).

При этом СЛАУ можно решать как в более наглядной форме (8.1), так и в более компактной матричной форме (8.2). Для первого способа следует использовать блок Given/Find (он может также применяться в случае систем уравнений и неравенств, а также при решении переопределенных СЛАУ), а для второго – как вычислительный блок, так и встроенную функцию isoive.

Вычислительный блок Given/ Find

Для того чтобы численным методом решить СЛАУ при помощи вычислительного блока (он был подробно описан в главе 5), следует после ключевого слова Given выписать ее, пользуясь логическими операторами. Рассмотрим в качестве примера систему трех уравнений, приведенную в листинге 8.1 (после ключевого слова Given). Неизвестными являются три компонента вектора х, поэтому именно эта векторная переменная является аргументом встроенной функции Find(x), решающей систему в последней строке листинга. Очень важно, что при использовании вычислительного блока Given/Find всем неизвестным требуется присвоить начальные значения, как это сделано в первой строке листинга 8.1.

Примечание
Если матрица СЛАУ является невырожденной (точнее, если ее число обусловленности не слишком велико), то известно, что численное решение системы уравнений единственно. Поэтому начальные значения могут быть произвольными, т. к. результат работы численного метода все равно сойдется к точному решению
.

Листинг 8.1. Решение СЛАУ с помощью вычислительного блока:

Иллюстрированный самоучитель по MathCAD 12 › Системы линейных уравнений › Хорошо обусловленные системы с квадратной матрицей. Вычислительный блок Given/ Find.

Листинг 8.1 демонстрирует запись каждого уравнения системы (в промежутке между Given и Find), что очень неудобно, когда система содержит большое число уравнений. В последнем случае намного лучше применить матричную запись СЛАУ, как это показано в листинге 8.2. Первая строка листинга представляет собой определение матрицы СЛАУ А и вектора правых частей b, а в остальном работа блока Given/Find полностью идентична предыдущему листингу.

Листинг 8.2. Решение СЛАУ, записанной в матричной форме:

Иллюстрированный самоучитель по MathCAD 12 › Системы линейных уравнений › Хорошо обусловленные системы с квадратной матрицей. Вычислительный блок Given/ Find.

Проверка правильности решения СЛАУ прямой подстановкой, причем в матричной форме, приведена в листинге 8.3. Обратите внимание на матрицу в первой строке листинга, представляющую рассматриваемую систему уравнений. Во второй строке листинга 8.3 производится вычисление нормы невязки, характеризующей точность полученного решения СЛАУ.

Примечание
Такая большая невязка может вызвать совершенно обоснованное удивление читателя. На самом деле точность решения гораздо выше (в данном примере ~10-15, а полученное значение невязки -10-3 объясняется соответствующим представлением вещественных чисел результата на экране (по умолчанию с точностью до 3-го знака)
.

Листинг 8.3. Проверка правильности решения СЛАУ:

Иллюстрированный самоучитель по MathCAD 12 › Системы линейных уравнений › Хорошо обусловленные системы с квадратной матрицей. Вычислительный блок Given/ Find.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.