Полиномиальные уравнения
Пусть требуется решить полиномиальное уравнение
.
Проверим, нет ли общих делителей у полиномиальных коэффициентов в правой части уравнения
, ,,
. Видим, что общих корней нет. Уравнение правильное. Найдем его минимальное решение. Так как решение минимальное, то степень p(x) равна 1, степень q(x) равна 2. Неизвестные коэффициенты многочленов p(x) и q(x) будем рассматривать как элементы одного вектора а. Нумерацию индексов элементов этого вектора начнем с нуля. Создадим функции
, ,
, .
Найдем коэффициенты многочлена в левой части полиномиального уравнения, воспользовавшись кнопкой coeffs на панели Symbolic. Так как в левой части выражение содержит две переменные, то после coeffs допишем запятую и имя аргумента многочленов:
.
Скопируем результат и, вставив знаки равенства с панели Boolean, приравняем компоненты получившегося вектора к коэффициентам полинома в правой части исходного уравнения. При этом нужно помнить, что символьная система нумерует коэффициенты, начиная со свободного члена. После этого решим получившуюся систему уравнений с помощью символьной системы. (Так как вся запись не умещается на одну строку страницы, то разорвем ее на две части, хотя на экране это одна строка.)
.
Первые два числа в этом результате дают коэффициенты многочлена p(x), а остальные три – многочлена q(x). К сожалению, при символьном решении системы вектор a не создается. Поэтому для выполнения проверки придется создать многочлены p(x) и q(x). Итак,
, .
Выполняем проверку:
.
Получили, что минимальное решение найдено правильно.
Если бы степени многочленов были выше, то символьная система могла не справиться с решением системы уравнений или выдать решение в виде дробей с очень большими знаменателями. В таком случае следует использовать численные методы, то есть функции find или lsolve. Здесь мы рассмотрим, как можно воспользоваться функцией find.
Скопируем коэффициенты левой части исходного уравнения. Будем рассматривать их как функцию от вектора a
.
Сформируем вектор из коэффициентов правой части исходного уравнения
и возьмем его в качестве нового вектора . Введем начальное приближение искомого вектораa: . Находим решение системы, при этом не забываем, что знак равенства нужно взять с панелиBoolean:
given
.
Чтобы выполнить проверку, поступим следующим образом. Создадим вектор b, скопировав его из полученного результата . Следует отметить, что для дальнейших действий пригодно только копирование. Если выполнить присвоение, то МС отказывается находить коэффициенты нужного полинома.
Ранее мы создавали функции p(a,x) и q(a,x). Но потом мы их уничтожили, создав функции с теми же именами p(x) и q(x). Скопируем блоки создания функций p(a,x) и q(a,x). Так как вектор коэффициентов b найден, то эти функции и являются минимальным решением. Их можно использовать для вычисления значений найденных многочленов, подставляя нужные значения x. Используем это для проверки
.
В этой формуле коэффициент при x выписан не полностью, но он имеет порядок и поэтому не важен для результата. Как видим, ошибка в коэффициентах имеет порядок, что соответствует значениям переменныхTOL и CTOL, определяющих величину допустимой ошибки при этой операции.
Для завершения решения задачи нужно записать общее решение исходного полиномиального уравнения
, ,
где m(x) – любой многочлен.
- Оглавление предисловие
- Основные понятия и вычислительные методы (теоретическая часть)
- Метод Гаусса
- Метод lu-разложения
- Обращение матрицы и вычисление определителя
- Число обусловленности матрицы (системы уравнений)
- Вычислительные методы для решения нелинейных уравнений
- Метод половинного деления
- Метод Ньютона (метод касательных)
- Метод секущих
- Метод итераций
- Преимущества и недостатки методов
- Методы решения систем нелинейных уравнений
- Метод Ньютона для систем уравнений
- Метод итераций для систем уравнений
- Некоторые сведения о полиномах и их корнях
- Полиномиальные уравнения
- Вычисление интегралов
- Дифференциальные уравнения (численные методы)
- Жесткие системы дифференциальных уравнений
- Аналитическое решение систем линейных дифференциальных уравнений с постоянными коэффициентами
- Нахождение экстремумов функции нескольких переменных
- Метод покоординатного спуска
- Симплекс-метод
- Метод наискорейшего спуска
- Метод Ньютона
- Преобразования Фурье и Лапласа
- Применение системы mathcad для решения вычислительных задач (практическая часть)
- Исправления
- Продолжение простейших вычислений
- Точность
- Символьные вычисления
- Переменные
- Функции пользователя
- Операции математического анализа
- Построение графиков функций одного переменного
- Задания для самостоятельной работы
- Матрицы
- Векторы
- Системы линейных уравнений
- Число обусловленности матрицы
- Собственные числа и собственные векторы матрицы
- Графики функций двух переменных
- Задания для самостоятельной работы
- Нахождение корней нелинейного уравнения
- Решение систем нелинейных уравнений
- Корни многочлена
- Наибольший общий делитель двух многочленов
- Кратные корни
- Результант
- Задания для самостоятельной работы
- Полиномиальные уравнения
- Вычисление определенных интегралов
- Решение дифференциальных уравнений
- Задания для самостоятельной работы
- Системы дифференциальных уравнений
- Решение жестких систем дифференциальных уравнений
- Решение линейных систем дифференциальных уравнений с постоянными коэффициентами
- Задания для самостоятельной работы
- Нахождение экстремумов функции
- Экстремумы функции многих переменных
- Преобразования Фурье и Лапласа
- Дискретное преобразование Фурье
- Задания для самостоятельной работы