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



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

ПРИМЕЧАНИЕ

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


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


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

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

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

ПРИМЕЧАНИЕ

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


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