Решение систем нелинейных уравнений
Для решения уравнений и систем в Maple предназначены функции solve и fsolve.
Напомним, что solve ищет решение в аналитической форме, a fsolve - в численной. Синтаксис этих команд при решении
систем уравнений следующий :
solve({<уравнения>}, {<переменные>});
fsolve ({<уравнения>}, {<переменные>}, <опции>).
То есть обе команды решают систему уравнений, заданную первым параметром, относительно переменных, указанных во втором. Важной особенностью синтаксиса этих функций является то, что система уравнений и ее неизвестные задаются в виде множества. Кроме того, если не задано множество переменных, относительно которых следует разрешить уравнение, Maple выдаст все решения относительно всех неопределенных переменных. Если же уравнения системы заданы не в виде равенства, а в виде выражения, то это выражение воспринимается пакетом как левая часть уравнения с нулевой правой частью.
Пример:
Здесь показано решение системы с помощью функции solve. Как видим, она предлагает два аналитических
решения. Но одно из них не удовлетворяет условию задачи, так как радиус окружности не может быть отрицательным.
Чтобы выделить из множества верное решение, можно применить функцию eval.
u1:=(26-x0)^2+(4-y0)^2-R^2:
u2:=(9-x0)^2+(21-y0)^2-R^2:
u3:=(17-x0)^2+(17-y0)^2-R^2:
solve({u1,u2,u3},{x0,y0,R});
S:=solve({u1,u2,u3},{x0,y0,R}):
eval(S[1]);
Этот пример содержит решение задачи с применением функции fsolve. В первом случае пользователю предлагается
лишь отрицательное решение, не корректное с точки зрения поставленной задачи. Во втором случае получаем верное
решение, установив в опциях положительный диапазон изменения радиуса.
fsolve({u1,u2,u3},{x0,y0,R});
fsolve({u1,u2,u3},{x0,y0,R},{R=0..100});