Решение уравнений и неравенств
Решение уравнений и неравенств
Основная функция solve
Решение линейных и нелинейных уравнений и неравенств — еще одна важная область математического анализа. Maple 15 имеет мощные средства для такого решения. Так, для решения линейных и нелинейных уравнений в аналитическом виде используется достаточно универсальная и гибкая функция solve(eqn, var) или so1ve({eqnl,eqn2,.. .}.{varl,var2,…}), где eqn — уравнение, содержащее функцию ряда переменных, var — переменная, по которой ищется решение, Если при записи eqn не используются знак равенства или знаки отношения, считается, что solve ищет корни уравнения eqn=0.
Характер решений можно изменить с помощью глобальных переменных:
- _SolutionsMayBeLost — при значении true дает решение, которое при обычном применении функции solve возвращает значения NULL;
- _MaxSols — задает максимальное число решений;
- _EnvAll Solutions — при значении true задает выдачу всех решений.
В решениях могут встречаться следующие обозначения:
- _NN — указывает на неотрицательные решения;
- _В — указывает на решения в бинарной форме;
- _Z — указывает на то, что решение содержит целые числа;
- %N — при текстовом формате вывода задает общие члены решения и обеспечивает более компактную форму его представления.
В форме solve[subtopic] возможны параметры subtopic функции solve следующих типов:
floats functions identity ineq linear
radical scalar series system
При решении систем уравнений они и список переменных задаются как множества, то есть в фигурных скобках. При этом и результат решения получается в виде множества. Чтобы преобразовать его к обычному решению, нужно использовать функцию assign, которая обеспечивает присваивание переменным значений, взятых из множества.
Функция solve старается дать решение в аналитическом виде. Это не означает, что ее нельзя использовать для получения корней уравнений в численном виде. Просто для этого придется использовать функции evalf или convert. Если результат решения представлен через функцию RootOf, то зачастую можно получить все корни с помощью функции all values.
Решение одиночных нелинейных уравнений
Решение одиночных нелинейных уравнений вида f(x) = 0 легко обеспечивается функций solve(f,(x),x). Это демонстрируют следующие примеры:
Часто бывает удобно представлять уравнение и его решение в виде отдельных объектов, отождествленных с определенной переменной:
В частности, это позволяет легко проверить решение (даже если оно не одно, как в приведенном примере) подстановкой (subs):
Сводящиеся к одному уравнению равенства вида f1(x)=fl(x) также решаются функцией solve(fl(x)=f2(x),x):
Обратите внимание в этих примерах на эффективность применения функции evalf, позволяющей получить решения, выраженные через функцию RootOf, в явном виде.
Решение тригонометрических уравнений
Функция solve может использоваться для решения тригонометрических уравнений:
Однако из приведенных примеров видно, что при этом найдено только одно (главное) решение. Периодичность тригонометрических функций и связанная с этим множественность решений оказались проигнорированы. Однако можно попытаться найти все периодические решения, выполнив следующую команду:
> _EnvAllSolutions:=true;
EnvAllSolutions := true
Указанная в ней системная переменная отвечает за поиск всех периодических решений, когда ее значение равно true, и дает поиск только главных решений при значении false, принятом по умолчанию. Так что теперь можно получить следующее:
На показан более сложный случай решения нелинейного уравнения вида f1(x)=f2(x). где f1(х) = sin(x) и f2(x) = cos(x) — 1. Решение дано в графическом виде и в аналитическом для двух случаев — нахождения главных значений корней и нахождения всех корней.
В решениях встречаются переменные _В1- и _Z1~, означающие ряд натуральных чисел. Благодаря этому через них можно представить периодически повторяющиеся решения.