Корни многочлена
Как мы видели на первом занятии, в системе МС имеется возможность разложить многочлен на множители с помощью символьных операций. Но эта возможность реализуется только в том случае, когда получающиеся множители имеют целые коэффициенты. При этом множители не всегда получаются линейными или квадратичными. Проверьте это на многочленах ,,,,. В других случаях для разложения на множители приходится находить корни многочлена. Как это можно сделать в системе МС, описано выше. Следует, однако, учесть, что функцияpolyroots гарантирует хорошие результаты только для многочленов невысокой степени. Аналогичным недостатком обладает и директива solve для символьного нахождения корней. Рассмотрим следующий пример. Пусть
.
Этот многочлен имеет два кратных корня 1.5 и 1.9 кратности 2. Раскроем скобки, для чего воспользуемся директивой Collect из меню Symbolics (из-за формата страницы результат записан в двух строчках):
Попробуем найти корни с помощью символьной операции solve (на экране условие записывается в одной строке):
Как видим, корни найдены точно, и каждый показан столько раз, какова его кратность. Используем функцию polyroots. Для этого потребуется вектор из коэффициентов многочлена. Чтобы его компоненты не набирать вручную, воспользуемся пунктом Polynomial coefficient из меню Symbolics, выделив сначала переменную x в записи многочлена. В результате получим
Тот же результат можно получить кнопкой coeffs на панели Symbolic. Скопируем результат и выполним присвоение:
. Вычислим корни: .
В этом случае результаты значительно отличаются от точных корней. Это связано и со степенью многочлена, которая является довольно высокой, и с наличием кратных корней, которые превратились в комплексно сопряженные простые корни. Если по этим корням получить многочлен, производя округления с точностью до 5 знаков после запятой, то получим многочлен, коэффициенты которого отличаются от исходных только в четвертом знаке.
Посмотрим, как изменение коэффициентов влияет на корни. Для этого в многочлене p(x) уменьшим коэффициент при x на единицу последнего знака, т.е. на ,. Найдем корни с помощью функцииpolyroots. Увидим, что изменения происходят уже в третьем знаке после десятичной точки, причем простой вещественный корень 2 превращается в комплексный:
.
Если воспользоваться символьным нахождением корней, то получим результат, заметно отличающийся от ранее вычисленного. В частности, корень 2 исходного многочлена превращается в корень, приближенно равный 1.8 (из-за громоздких записей распечатка не приводится). Таким образом, мы убедились, что для многочлена высокой степени малое изменение коэффициентов может вызвать существенное изменение корней и к полученным результатам с помощью функции polyroots нужно относиться осторожно.
Если подставить найденные значения корней в многочлен, то для корней, вычисленных символьным методом, результаты будут иметь порядок , а для корней, полученных с помощью функцииpolyroots, – порядок .
Если результат, полученный символьным способом, желательно округлить до меньшего числа цифр после десятичной точки, то нужно его выделить, а затем в меню Symbolics выбрать пункт Evaluate и в развернувшемся меню пункт Floating Point. В появившемся окне указывается общее число значащих цифр результата (до точки и после нее, нули слева не учитываются). То же можно сделать и с помощью панели Symbolic. Округлим корни предыдущего многочлена до пяти цифр после точки, используя эту панель. Из-за громоздкой записи здесь в исходных корнях приведены только 7 цифр после точки, на экране их 19.
.
После того как найдены корни многочлена, мы можем представить его в виде произведения. Произведение будет содержать в вещественном случае линейные и квадратичные множители, в комплексном случае – только линейные. Произведем это разложение для рассмотренного выше многочлена. Используем корни, округленные до пяти цифр после запятой. Это округление у нас уже имеется. Чтобы не переписывать длинные наборы цифр, скопируем набор корней и создадим соответствующую векторную величину
.
Найдем квадратичные множители. Для этого используем пары комплексно сопряженных корней. Если за счет вычислений комплексные корни отличаются от комплексно сопряженных на величину, лежащую за пределами заданной точности, то их нужно исправить. Исправить нужно так, чтобы они стали комплексно сопряженными. Для удобства преобразований используем кнопку стрелка с шаблоном на панели Symbolic. Сначала набираем выражение . Затем нажимаем стрелку с шаблоном. Нажимаемcollect на той же панели. Клавишей табулирования переходим на следующий шаблон. Нажимаем кнопку float. Вписываем 6 в шаблон. Переходим на следующий шаблон и удаляем его. Щелкаем мышью за пределами блока. В результате получаем
.
Аналогично получим
.
Теперь можно записать разложение многочлена на множители (из-за размера страницы мы приводим только 2 цифры после десятичной точки):
.
- Оглавление предисловие
- Основные понятия и вычислительные методы (теоретическая часть)
- Метод Гаусса
- Метод lu-разложения
- Обращение матрицы и вычисление определителя
- Число обусловленности матрицы (системы уравнений)
- Вычислительные методы для решения нелинейных уравнений
- Метод половинного деления
- Метод Ньютона (метод касательных)
- Метод секущих
- Метод итераций
- Преимущества и недостатки методов
- Методы решения систем нелинейных уравнений
- Метод Ньютона для систем уравнений
- Метод итераций для систем уравнений
- Некоторые сведения о полиномах и их корнях
- Полиномиальные уравнения
- Вычисление интегралов
- Дифференциальные уравнения (численные методы)
- Жесткие системы дифференциальных уравнений
- Аналитическое решение систем линейных дифференциальных уравнений с постоянными коэффициентами
- Нахождение экстремумов функции нескольких переменных
- Метод покоординатного спуска
- Симплекс-метод
- Метод наискорейшего спуска
- Метод Ньютона
- Преобразования Фурье и Лапласа
- Применение системы mathcad для решения вычислительных задач (практическая часть)
- Исправления
- Продолжение простейших вычислений
- Точность
- Символьные вычисления
- Переменные
- Функции пользователя
- Операции математического анализа
- Построение графиков функций одного переменного
- Задания для самостоятельной работы
- Матрицы
- Векторы
- Системы линейных уравнений
- Число обусловленности матрицы
- Собственные числа и собственные векторы матрицы
- Графики функций двух переменных
- Задания для самостоятельной работы
- Нахождение корней нелинейного уравнения
- Решение систем нелинейных уравнений
- Корни многочлена
- Наибольший общий делитель двух многочленов
- Кратные корни
- Результант
- Задания для самостоятельной работы
- Полиномиальные уравнения
- Вычисление определенных интегралов
- Решение дифференциальных уравнений
- Задания для самостоятельной работы
- Системы дифференциальных уравнений
- Решение жестких систем дифференциальных уравнений
- Решение линейных систем дифференциальных уравнений с постоянными коэффициентами
- Задания для самостоятельной работы
- Нахождение экстремумов функции
- Экстремумы функции многих переменных
- Преобразования Фурье и Лапласа
- Дискретное преобразование Фурье
- Задания для самостоятельной работы