Лабораторная работа 3

Численное решения нелинейных уравнений в пакете Mathcad

 

Цель: Получить представления о численных методах, используемых встроенными функциями  пакета Mathcad для решения алгебраических и трансцендентных уравнений и научится использовать эти средства.

 

Количество часов, отводимых на работу: 1

 

 

Краткие теоретические сведения

В математическом пакете Mathcad имеется две встроенные функции, выполняющие численное решение нелинейных уравнений – root и polyroots. Рассмотрим кратко математические методы, которые лежат в основе работы этих функций.

Один из простейших методов, используемый встроенной функцией root  метод секущих (Secant method). В этом методе вычисления проводятся по итерационной формуле

,        

 – начальное приближение,  ,

где e – точность вычислений.

Идея метода секущих развивается в методе Мюллера (Muller’s method). В этом методе для нахождения очередного приближения используются три предыдущие точки. Иными словами, метод использует не линейную, а квадратичную интерполяцию функции. Расчетные формулы метода следующие:

.

Знак перед корнем выбирается так, чтобы абсолютное значение знаменателя было максимальным.

В том случае, когда известен интервал, на котором расположен корень, можно воспользоваться иными методами нахождения решения уравнения.

В методе Риддера (Ridders’ method) вычисляют значение функции в середине интервала : . Затем ищут экспоненциальную функцию , удовлетворяющую уравнению:

 

.

 

Это квадратное уравнение относительно , решение которого может быть представлено в следующем виде:

 

.

 

Затем применяют метод хорд, используя значения , , , и вычисляют очередное приближение по формуле

 

.

 

Метод Брента (Brent method) соединяет быстроту метода Риддера и гарантированную сходимость метода деления отрезка пополам. Метод использует обратную квадратичную интерполяцию, то есть ищет x как квадратичную функцию y. На каждом шаге проверяется локализация корня. Формулы метода достаточно громоздки и мы не будем их приводить.

Особые методы применяют для поиска корней алгебраических уравнений. Одним из способов решения алгебраического уравнения является метод понижения порядка. Он состоит в том, что после того как один из корней  найден, уравнение можно разделить на , понизив его порядок до , после чего поиск корня повторяется. Рассмотрим два метода для поиска корней полиномов.

Метод Лагерра (Laguerre’s method) основывается на следующих соотношениях для полиномов

 

 

Предполагают, что корень , который мы ищем, находится на расстоянии a от текущего приближения, в то время как все другие корни находятся на расстоянии b:  ; , .

Тогда с учетом рассмотренных соотношений для полиномов можно записать

    и   .

 

Выражая из этих соотношений а, получим

 

.

 

Знак перед корнем выбирается таким образом, чтобы знаменатель имел наибольшее значение.

Метод сопровождающей матрицы (companion matrix). В основе этого метода лежит то факт, что собственные значения квадратной матрицы А, т.е. такие числа l, для которых выполняется равенство , могут быть определены как корни характеристического полинома .

 Можно показать, что для матрицы

 

,

 

называемой сопровождающей матрицей, характеристическим полиномом будет являться полином общего вида . Таким образом, задачу поиска корней полинома можно свести к задаче нахождения собственных значений сопровождающей матрицы.

 

Решение трансцендентных уравнений

Для нахождения корней уравнения , где  – функция произвольного вида, используется функция root, которая имеет следующий синтаксис

root( f(x), x, a, b).

 

Функция определяет значение переменной х, лежащее в интервале , при котором функция  обращается в нуль. В общем случае, функция  может быть функцией многих переменных. В таком варианте функция root использует алгоритмы Риддера и Брента.

Функция root может вызываться и без указания интервала , но в этом случае переменной х необходимо предварительно присвоить некоторое начальное значение (т.е. задать начальное приближение). В этом случае для уточнения корня используется метод секущих.

Точность вычислений в Mathcad задается встроенной переменной TOL. По умолчанию ее значение равно 0,001. Это значение можно изменить либо через меню Math/Options/Built–In Variables или непосредственно в тексте документа, например: TOL := 10-9.

В качестве примера найдем корни уравнения . Для начала изобразим график функции  на интервале .



На заданном интервале функция два раза обращается в ноль, т.е. уравнение имеет два корня. Уточним их с помощью функции root с точностью .

В принципе, функция root(f(x), x) должна находить корень, ближайший к начальному приближению x. К сожалению, это не всегда так. Если начальное приближение выбрано неудачно и значение производной  в этой точке близко к нулю, то, вообще говоря, найденный корень может быть не ближайшим к начальному приближению. В качестве примера решите самостоятельно задачу поиска корня уравнения , выбрав в качестве начального приближения число близкое к . Чем ближе к  будет выбранное значение, тем более далекий от 0 корень мы будем получать.

 

Решение алгебраических уравнений

Функция polyroots(a) находит все корни алгебраического уравнения , коэффициенты которого записаны в вектор a. Первый элемент вектора a соответствует  коэффициенту при , второй – при  и т.д. Функция polyroots может использовать два различных алгоритма поиска корней – метод Лагерра и метод сопровождающей матрицы. Переключение методов осуществляется в контекстном меню, которое вызывается нажатием правой кнопки мыши, когда указатель установлен на имя функции.


В качестве примера использование функции polyroots найдем корни уравнения :

 

 

 

 

Задание 1. Уточните корни двух уравнений (из таблицы 1) с помощью функции root с точностью  используя её в двух вариантах (с указанием отрезка локализации корня и с заданием начального приближения). Для каждого уравнения предварительно постройте график функции .

 

Задание 2. Найдите все корни заданного алгебраического уравнения (см. таблицу 2).

 

Отчет

В качестве отчет о выполнении работы представляются распечатки документа Mathcad с выполненными заданиями.

 

Таблица 1.

№ вар

Уравнение

№ вар

Уравнение

1

11

2

12

3

13

;

4

14

;

5

15

6

16

7

;

17

8

18

9

19

10

;

20

 

 

Таблица 2.

№ вар

Уравнение

вар

Уравнение

1

11

2

12

3

13

4

14

5

15

6

16

7

17

8

18

9

19

10

20