created at April 8, 2021

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

Решим следующую систему уравнений:

Сперва создадим блок с уравнениями. Введите команду block(name), где "name" - идентификатор блока:

block(b1)

Все уравнения должны быть записаны в форме f(x) = 0, т.е. все члены перенесены в левую часть. Тогда вам нужно определить только левую часть:

x^2 + y^2 + z^2 - 1

2*x^2 + y^2 - 4*z

3*x^2 - 4*y + z^2

После того, как вы завершили создание блока, введите:

end

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

X0 = < .5, .5, .5 >

И, наконец, решите систему с помощью функции solve(). Передайте идентификатор блока (в нашем случае: b1), вектор с начальными приближениями (X0), и затем перечислите все искомые переменные:

X = solve(b1, X0, x, y, z)

Теперь вектор X содержит корни уравнения в таком же порядке: x, y, z. Вы можете использовать команду explode(), чтобы легко создать соответствующие переменные со значениями корней. Выполните:

explode(b1, X)

Это создаст переменные x, y, z со значениями корней уравнений (Помните: если уже есть переменные с такими именами, то они будут перезаписаны, что может привести к неожиданным последствиям).

Отредактировать уравнение в блоке можно с помощью команды edit:

edit b1 1: x^2 + y^2 + 2*z^2 - 5

где через пробел идут идентификатор блока, номер строки (нумерация начинается с 1), и затем после двоеточия идет новое выражение для уравнения.