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