ISSN 1991-3087
Рейтинг@Mail.ru Rambler's Top100
Яндекс.Метрика

НА ГЛАВНУЮ

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

 

Симаков Егор Евгеньевич,

студент 5 курса факультета математики, физики и информатики Сахалинского государственного университета.

 

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

Задачи:

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

                     Выбрать некоторые методы решения нелинейных уравнений.

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

 

I.                   Способы решения нелинейных уравнений средствами математики:

                     введение новой переменной;

                     графический способ;

                     разложение на множители;

                     сведение обеих частей уравнения к одному показателю;

                     сведение обеих частей уравнения к одному основанию;

                     применение свойств показательной, степенной и логарифмической функций.

II.                Решение нелинейных уравнений с применением средств программирования.

Созданная программа предусматривает 5 методов решения нелинейных уравнений.

Ход работы с программой следующий:

                     произвольно задать отрезок значений переменной Х и проверить с помощью программы, содержит ли он корни (уточнение корней);

                     задать точность вычислений корней в виде 0,0…1;

                     выбрать максимальное количество итераций (повтора применения алгоритма вычислений), чтобы избежать зацикливания;

                     определить метод решения.

1.                  Метод половинного деления (дихотомия) [2].

Любое уравнение необходимо свести к однородному: f(x)=0. Рассмотрим функцию y=f(x). Построим её график (рис. 1) и с помощью корней изучим его свойства на отрезке [a;b], заданном нами. Так как на заданном отрезке [a;b] существует корень уравнения, то график пересекает на данном отрезке ось Ох. Программа подставит а в уравнение вместо х. Получим f(a). Найдем с=(a+b)/2. Вычислим f(c). Найдем f(a)*f(c). Если значение произведения меньше 0, то границу b сдвинем в с, если же оно больше 0, то а сдвинем в с. Если f(c)=0 (c-корень), то х найдено. Если f(c)≠0, то процесс продолжается, пока значение |a-b| остается большим точности или не достигнуто максимальное количество операций. В итоге х=(a+b)/2.

 

Рис. 1. График функции y=f(x). Метод дихотомии.

 

2.                  Метод проб [1, с. 73].

Разделим отрезок [a;b] на 10 равных частей (рис. 2). Выберем ту часть, в которой находится корень (где меняется знак значений функции). Её снова разделим на 10 частей. Этот процесс будем продолжать, пока |a-b| не станет меньше точности или достигнуто максимальное количество операций. В итоге х = (a+b)/2.

 

Рис. 2. График функции y=f(x). Метод проб.

 

3.                  Метод хорд [2].

Соединим точки f(a) и f(b) (рис. 3). Получим хорду. Она пересекает Ох в точке С. Если f(x) – возрастает, то сдвинем b в с, если f(x) – убывает, то сдвинем a в с. Из точки С опустим перпендикуляр на график. Получим точку а1. Построим хорду f(a1), f(b). Продолжаем процесс построения хорд, пока значение |a-b| остается большим точности или не достигнуто максимальное количество итераций. Абсцисса точки С вычисляется по формуле:
с = а – ((b-a)/ (f(b) – f(a))) * f(a). В итоге: х = с.

 

Рис. 3. График функции y=f(x). Метод хорд.

 

4.                  Метод касательных [3].

Пусть на [a;b] уравнение f(x) = 0 имеет корень в точке А (а, f(a)). Проведем касательную к графику функции у = f(x) в точке, совпадающей с концом отрезка, в которой знаки 2-ой производной и функции одинаковы (рис. 4). Имеем точку пересечения с Ох – с1. Для нахождения точки пересечения используем формулу:  или . Продолжаем этот процесс, пока значение |a-b| больше точности или х = с1.

 

Рис. 4. График функции y=f(x). Метод касательных.

 

5.                  Метод итераций [3].

Пусть решаем уравнение f(x) = 0. Заменим его на уравнение х = j(х), которое получается из данного путем эквивалентных преобразований (имеет те же корни). Это уравнение определяется на некотором множестве Е. Если значение f(x) тоже принадлежит Е, то можно построить итерационную последовательность значений функции j(х) с начальным значением х0 из Е. Если эта последовательность сходится, то её предел является единственным корнем уравнения х = j(х). Таким образом, исходное уравнение будет решено. В противном случае решить уравнение таким методом нельзя. В итоге х = х0 - f(x)/М, где М – максимальное значение на [a;b]. Учитываем, что х0 = (a+b)/2, и процесс продолжается до тех пор, пока |х0 –х| остается большим точности или не достигнуто максимальное количество операций.

В качестве примера рассмотрим уравнение . Построим график функции (рис. 5).

 

Рис. 5. График функции .

 

Видим, что данное уравнение имеет 3 корня. Используя разработанное программное обеспечение, решим данное уравнение (рис. 6):

 

Рис. 6. Решение уравнения .

 

Получим следующие результаты:

 

Метод дихотомии

Метод проб

Метод хорд

Метод касательных

Метод итераций

интервал
[-1;0]

-0,597747802 734375
14 итераций

-0,59795

9 итераций

-0,597735188 118875

50 итераций

-0,597735188 118875

5 итераций

-0,597628831 460005

9 итераций

интервал
[0;1]

0,680450439453125

14 итераций

0,68005

17 итераций

0,680449195025342

20 итераций

0,680449195025342

50 итераций

Последовательность расходится

интервал
[4;5]

4,91726684570313

14 итераций

4,91705

20 итераций

4,91728599309353

50 итераций

4,91728599309353

6 итераций

4,91724380954198

4 итерации

 

Литература

 

1.                  Пулькин К.Н., Никольская Е.П., Дьячков А.М. Вычислительная математика – М.: Просвещение, 1974.

2.                  Численные методы алгебры – http://petrsu.ru/Chairs/IMO/Complex/part2/part2_a.htm.

3.                  Численные методы решения нелинейных уравнений – http://www.intuit.ru/department/calculate/intromathmodel/4/intromathmodel_4.html.

 

Поступила в редакцию 04.04.2011 г.

2006-2019 © Журнал научных публикаций аспирантов и докторантов.
Все материалы, размещенные на данном сайте, охраняются авторским правом. При использовании материалов сайта активная ссылка на первоисточник обязательна.