Нелинейные алгебраические уравнения
Нелинейные алгебраические уравнения
Огромное количество задач вычислительной математики связано с решением нелинейных алгебраических уравнений, а также систем таких уравнений. При этом необходимость решения нелинейных уравнений возникает зачастую на промежуточных шагах, при реализации фрагментов более сложных алгоритмов (к примеру, при расчетах дифференциальных уравнений при помощи разностных схем и т. п.).Символьное решение уравнений. Вычислительный блок Given/Find.
Относительно небольшое количество задач отыскания корней алгебраических уравнений можно решить аналитически, а на практике почти всегда приходится искать решение при помощи численных методов.Одно уравнение
Поясним сказанное на примере решения одного (кубического) уравнения с одним неизвестным х (рис. 5.1): | 3 * x ^ 3 + 2 * x ^ 2 - 7 * x = 0, (5.3) | Листинг 5.1. Аналитическое решение кубического уравнения: | Рис. 5.1.Системы уравнений
Символьное решение системы алгебраических уравнений отличается от описанного случая одного уравнения только количеством соотношений, задаваемых после ключевого слова Given. Соответственно, число неизвестных также может быть любым, причем необязательно равным числу уравнений.Решение уравнений при помощи меню
Аналитическое решение алгебраического уравнения можно получить и при помощи меню. Данный способ удобно применять, когда уравнение записано в форме математического выражения (зависящего, возможно, от различных переменных), и требуется вычислить аналитически значение одной переменной, при котором выражение обращается в ноль. Для этого: | Введите выражение.Численное решение уравнений. Системы уравнений: функция Find.
Как правило, отыскание корней алгебраического уравнения (или системы уравнений) численными методами связано с двумя задачами: | локализация корней, т. е. определение их существования в принципе, а также исследование их количества и примерного расположения;Уравнение с одним неизвестным: функция root
Для решения уравнения с одним неизвестным в Mathcad, помимо вычислительного блока Given/Find, предусмотрена встроенная функция root, которая, в зависимости от типа задачи, может включать либо два, либо четыре аргумента и, соответственно, использует разные алгоритмы поиска корней. | root(f(x),x);Корни полинома: функция polyroots
Если функция f (х) является полиномом, то все его корни можно определить, используя встроенную функцию: | polyroots(v): | где v – вектор, составленный из коэффициентов полинома. | Поскольку полином N -й степени имеет ровно N корней (некоторые из них могут быть кратными), вектор v должен состоять из N+1 элемента.Локализация корней
Чтобы решить задачу предварительной (грубой) локализации корней, в самых простых случаях можно использовать графическое представление f (х) (см. рис. 5.1, 5.2 и 5.4). Понятно, что в случае многомерных систем такой способ практически неприменим.О численных методах. Метод секущих: функция root.
Уделим теперь небольшое внимание численным алгоритмам, которые используются в работе встроенных функций Find и root, чтобы читатель имел возможность применять их для решения алгебраических уравнений более осмысленно.Градиентные методы: функция Find
Если вы решаете "хорошие" уравнения, как все те, которые были приведены в предыдущих разделах, то, вообще говоря, можете никогда не задумываться, как именно Find ищет их корни. Однако даже в этом случае полезно представлять, что происходит "за кадром", т. е.Метод продолжения по параметру
Решение "хороших" нелинейных уравнений и систем типа тех, которые были рассмотрены в предыдущих разделах этой главы, представляет собой несложную, с вычислительной точки зрения, задачу.