logo
mathcad

Нахождение корней полинома

Для нахождения корней выражения, имеющего вид

vnxn +...+ v2x2 + v1x + v0,

лучше использовать функцию polyroots, нежели root. В отличие от функции root, функция polyroots не требует начального приближения. Кроме того, функция polyroots возвращает сразу все корни, как вещественные, так и комплексные. На Рисунках 3 и 4 приведены примеры использования функции polyroots.

polyroots(v)

Возвращает корни полинома степени . Коэффициенты полинома находятся в векторе v длины n+1. Возвращает вектор длины n, состоящий из корней полинома.

Функция polyroots всегда возвращает значения корней полинома, найденные численно. Чтобы находить корни символьно, используйте команду Решить относительно переменной из меню Символика. См. Главу  “Символьные вычисления”.

Рисунок 3: Использование функции polyroots для решения задачи, изображенной на Рисунке 1.

Рисунок 4: Использование функции polyroots для поиска корней полинома.

Mathcad дает возможность решать также и системы уравнений. Максимальное число уравнений и переменных равно пятидесяти. В первой части этого раздела описаны процедуры решения систем уравнений. В заключительной части приведены примеры и проведено обсуждение некоторых часто встречающихся ошибок. Результатом решения системы будет численное значение искомого корня. Для символьного решения уравнений необходимо использовать блоки символьного решения уравнений. При символьном решении уравнений искомый корень выражается через другие переменные и константы.

Для решения системы уравнений выполните следующее:

Find(z1, z2, z3, . . . )

Возвращает решение системы уравнений. Число аргументов должно быть равно числу неизвестных.

Функция Find возвращает найденное решение следующим образом:

Ключевое слово Given, уравнения и неравенства, которые следуют за ним, и какое-либо выражение, содержащее функцию Find, называются блоком решения уравнений.

На Рисунке 5 показан рабочий документ, который использует блок решения уравнений для решения одного уравнения с одним неизвестным. Так как имеется только одно уравнение, то только одно уравнение появляется между ключевым словом Given и формулой, включающей функцию Find. Так как уравнение имеет одно неизвестное, то функция Find имеет только один аргумент. Для решения одного уравнения с одним неизвестным можно также использовать функцию root, как показано ниже:

a := root(x2 + 10 - ex , x)

Рисунок 5: Блок решения уравнений для одного уравнения с одним неизвестным.

Между ключевым словом Given и функцией Find в блоке решения уравнений могут появляться выражения строго определенного типа. Ниже приведен список всех выражений, которые могут быть использованы в блоке решения уравнений. Использование других выражений не допускается. Эти выражения часто называются ограничениями. В таблице, приведенной ниже, через x и y обозначены вещественнозначные скалярные выражения, а через z и w обозначены любые скалярные выражения.

Условие

Как ввести

Описание

w = z

[Ctrl] =

Булево равенство возвращает 1, если операнды равны; иначе 0

x > y

>

Больше чем.

x < y

<

Меньше чем.

x y

[Ctrl]0

Больше либо равно.

x y

[Ctrl]9

Меньше либо равно.

w z

[Ctrl]3

Не равно.

Следующие выражения недопустимы внутри блока решения уравнений:

Если необходимо включить полученный в блоке решения уравнений результат в итерационный процесс, обратитесь к разделу “Как лучше искать корни,” который находится ниже в этой главе.

Рисунок 6: Блок решения уравнений для системы из двух уравнений с двумя неизвестными и ограничениями на переменные в виде неравенств.

Блоки решения уравнений не могут быть вложены друг в друга. Каждый блок решения уравнений может иметь только одно ключевое слово Given и имя функции Find. Можно, однако, определить функцию f(x) := Find(x) в конце одного блока решения уравнений и затем использовать f(x) в другом блоке. Эта возможность также обсуждена в разделе “Как лучше искать корни” ниже в этой главе.

Как правило, нельзя использовать оператор присваивания (выражения вида x:=1) внутри блока решения уравнений. Mathcad помечает операторы присваивания, которые находятся внутри блока решения уравнений, сообщением об ошибке.

На Рисунке 6 показан блок решения уравнений, в котором использованы некоторые виды ограничений на искомое решение. Решаются два уравнения с двумя неизвестными. В результате функция Find содержит два аргумента, x и y, и возвращает ответ в виде вектора с двумя компонентами.