logo
Курс лекций КИТ

Численное решение уравнений

Попробуем решить уравнение: x6-2x+1=0, используя функцию solve:

> solve(x^6-2*x+1=0,x);

Функция solve дает один корень (1) и набор выражений вида RootOf(_..). Дело в том, что произвольное уравнение степени выше 4 с рациональными коэффициентами может не иметь корней, выразимых в виде радикалов над рациональными числами. Решения таких уравнений называются алгебраическими числами. Данное уравнение неразрешимо в радикалах, и Maple нашла единственный корень, выразимый в радикалах (1), и сообщила, что оставшиеся корни являются алгебраическими числами: корнями многочлена z5+z4+z3+z2+z-1=0 (именно этот многочлен указан в аргументе функции RootOf).

Но можно найти приближенное численное решение при помощи функции fsolve:

> fsolve(x^6-2*x+1=0,x);

Команда solve, применяемая для решения тригонометрических уравнений, находит только главные решения, то есть выводит только одно решение из серии периодических решений:

> solve(sin(2*x)+cos(2*x)=1,x);

Команда solve применяется также для решения неравенств. Решение неравенства выдается в виде интервала изменения искомой переменной. В том случае, если решение неравенства полуось, то в поле вывода появляется конструкция вида RealRange(– , Open(a)), которая означает, что x (– , a), а – некоторое число. Слово Open означает, что интервал с открытой границей. Если этого слова нет, то соответствующая граница интервала включена во множество решений. Например:

> s:=solve(sqrt(x+3)<sqrt(x-1)+sqrt(x-2),x):

convert(s,radical);

Если надо получить решение неравенства не в виде интервального множества типа x (a, b), а в виде ограничений для искомой переменной типа a<x, x< b, то переменную, относительно которой следует разрешить неравенство, следует указывать в фигурных скобках. Например:

> solve(1-1/2*ln(x)>2,{x});

С помощью команды solve можно также решить систему неравенств. Например:

> solve({x+y>=2,x-2*y<=1,x-y>=0,x-2*y>=1},{x,y});