MathCAD дает также возможность численно решать также и системы нелинейных уравнений с помощью функции Find(z1, z2, . . .,zn),которая возвращает приближенное решение системы уравнений с числом уравнений равным числу неизвестных..[5] Это число должно быть равно числу аргументов функции Find.
Решение проводится в следующем порядке:
Ø Задать начальное приближение для всех неизвестных, входящих в систему уравнений.
Ø Напечатать ключевое слово Given. Оно указывает MathCAD, что далее следует система уравнений.
Ø Ввести уравнения и неравенства в любом порядке с использованием знаков логических операций между их левыми и правыми частями знаков =, <, >, ³, £ палитры Boolean (Логический) Для печати символа = [6] можно использовать сочетание клавиш Ctrl+”=”
Ø Ввести выражение, которое включает функцию Find, например:
а:=Find(х, у).
Пример на рис. 20 иллюстрирует решение системы уравнений
Для нахождения начального приближения преобразуем уравнения системы к виду f 1(x) = y и f 2 (y)= x
В документе MathCAD построим графики функций f 1(x) = y и f 2 (y)= x и найдем окрестность точки пересечения.
Рис. 20. Определение начального приближения для решения системы уравнений
В качестве начального приближения можно взять произвольную точку из этой окрестности. Затем записывается вычислительный блок Given - Find, находится решение и делается проверка (рис. 21).
Начальное приближение
Проверка
Рис. 21. Решение системы нелинейных уравнений
Ключевое слово Given, уравнения и неравенства, которые следуют за ним, и какое–либо выражение, содержащее функцию Find, называют блоком решения уравнений.
В блоке решения недопустимо использовать следующие выражения:
Ø Ограничения со знаком ¹.
Ø Дискретный аргумент или выражения, содержащие дискретный аргумент в любой форме.
Ø Неравенства вида a < b < c.
Блоки решения уравнений не могут быть вложены друг в друга, каждый блок может иметь только одно ключевое слово Given и имя функции Find.
Используя функцию Find можно произвести следующие три действия:
Ø Вывести найденное решение, напечатав выражение вида:
Find(var1, var2,…,varn) =
Ø Определить скалярную или векторную переменную с помощью функции Find, если требуется использовать решение системы уравнений в дальнейших расчетах:
a := Find(x) – скаляр,
x := Find(var1, var2,…) – вектор.
Ø Определить новую функцию с помощью Find:
f(a, b, c, …) := Find(x, y, z, …).
Эта конструкция удобна для многократного решения системы уравнений при различных значениях некоторых параметров a, b, c,…, входящих в систему уравнений.
Если после многих итераций не найдено подходящего решения, то MathCAD выводит сообщение об ошибке (Решение не найдено). Оно может быть вызвано следующими причинами:
Ø Система не имеет решения.
Ø Для уравнения, которое не имеет вещественных решений, в качестве начального приближения взято вещественное число и наоборот.
Ø В процессе поиска решения последовательность приближений попала в точку локального минимума невязки.
Ø Возможно, поставленная задача не может быть решена с заданной точностью. Попробуйте увеличить значение TOL.
Еще одну возможность поиска решения дает применение функции ункция Minerr,использующей тот же алгоритм, что и Find. Если в результате поиска не может быть получено дальнейшее уточнение текущего приближения к решению, Minerr возвращает это приближение. Функция Find в этом случае возвращает сообщение об ошибке. Правила использования функции Minerr такие же, как и функции Find: Minerr(z1, z2, . . .). Число аргументов должно быть равно числу неизвестных. Если Minerr используется в блоке решения уравнений, необходимо всегда включать дополнительную проверку достоверности результатов.