Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_Маткад.doc
Скачиваний:
1
Добавлен:
29.12.2019
Размер:
2.86 Mб
Скачать

Функции lsolve

Для решения систем линейных уравнений можно также использовать стандартную функцию

lsolve(A,B),

которая возвращает вектор решений для заданных значений матрицы коэффициентов A и вектора свободных членов B. Матрица A, как и в предыдущем случае, должна быть не вырожденной.

Задача 5. Решить систему уравнений из задачи 4 с помощью функции lsolve.

Решение. Решение с проверкой представлено на рисунке 8.6.

Решение линейной системы методом Гаусса

Этот метод состоит в том, что систему n уравнений приводят последовательным исключением неизвестных к системе треугольного вида, а затем ступенчатую матрицу преобразуют так, чтобы в первых n столбцах получилась единичная матрица. Последний (n+1) столбец содержит решение системы. В MathСAD прямой и обратный ходы метода Гаусса выполняет функция rref(M).

З

Рис. 8.7 – Решение системы линейных уравнений методом Гаусса

адача 6. Решить систему уравнений из задачи 4 методом Гаусса.

Решение. Решение с проверкой представлено на рисунке 8.7.

8.3 Решение систем нелинейных уравнений

При решении систем нелинейных уравнений в системе MathCAD используется специальный вычислительный блок (solve block), который имеет следующую структуру:

<Начальные приближения переменных>

Given

<Уравнения>

<Ограничительные условия>

<Выражения с функциями Find или Minerr>

Здесь:

<Начальные приближения переменных> – начальные значения для всех неизвестных, входящих в систему уравнений;

Given – ключевое слово, которое указывает MathCAD, что далее следует система уравнений;

<Уравнения> – решаемые уравнения, количество которых равно количеству неизвестных;

<Ограничительные условия> – дополнительные ограничения на решения в виде неравенств.

Функции Find(z1, z2, z3, …) и Minerr(z1, z2, z3, …) возвращают вектор решений системы уравнений. Число аргументов z1, z2, z3,… должно быть равно числу неизвестных в уравнениях.

При наборе уравнений и неравенств следует использовать логические операторы = (булево равенство), >,  и пр.

MathCAD возвращает в блоке solve block только одно решение. Для поиска конкретного решения нужно использовать соответствующие начальные приближения или дополнительные ограничения в виде неравенств. Рассмотрим использование блока решений на конкретных примерах.

З адача 7. Решить систему уравнений

Решение. Данные уравнения допускают простую геометрическую интерпретацию (рисунок 8.8). Видно, что существует два решения системы уравнений. Для их поиска применим рассмотренный выше блок решения. В качестве ограничений будем использовать предварительную информацию, полученную из рисунка 8.8. На рисунке 8.9 приведены два варианта программы, в каждом находится один корень.

Функцию Find, которая завершает блок решения, можно использовать, как и любую другую функцию. Можно вывести найденное решение, как это сделано в программе на рисунке 8.9.

Рис. 8.9 – Решение системы нелинейных уравнений с помощью блока solve block

Можно определить новую переменную с использованием данной функции, нап-ример, a:=Find(z1,z2, …) и вектор a использовать в другом месте рабочего документа. Используя Find, можно также определить другую функцию. Для этого блок решения необходи-мо закончить выражением типа

f(a,b,c,…):=Find(z1,z2,z3,…).

Эта конструкция удобна при многократном реше-нии систем уравнений, содержащих параметры a, b, c, … . Программа на рисунке 8.10 – пример такой параметризации задачи. Предположим, что ищется пересечение прямой из предыдущей задачи и окружности переменного радиуса r. В этом случае функция определяется следующим образом: F(r):= Find(x,y). Эта функция возвращает вектор значений, элементы которого содержат x и y координаты точек пересечения.

Если в ходе решения системы уравнений итерации перестают сходиться, а нужная точность еще не достигнута, то поиск решения прекращается и выводится сообщение «No solution was found» («решение не найдено»). Причиной может быть как отсутствие решения, так и неудачные начальные приближения или ограничения. В этом случае полезно провести графический анализ системы уравнений и уточнить область, в которой могу находиться искомые решения. Это поможет выбрать более подходящее начальное приближение. В этой ситуации также можно применить вместо функции Find другую функцию – Minerr, которая работает по такому же алгоритму, но при отсутствии решения выдает значения, в наибольшей степени удовлетворяющие заданной системе уравнений и дополнительным ограничениям. Более подробно об этой функции смотрите в специальной литературе.

Рис. 8.10 –  Параметризация предыдущей задачи