Департамент образования г.Южно-Сахалинска муниципальное общеобразовательное учреждение лицей 1 Разработка программного обеспечения для решения нелинейных уравнений. Спецкурс по алгебре и началам анализа в кл. экономико-математического профиля. Участники проекта: Вихарева Валентина 11Э кл., Огай Ирина 11Э кл., Ушакова Анна 11Э кл., Консультант проекта: Симаков Егор, студент СахГУ Руководитель проекта: Симакова Марина Николаевна, учитель математики
Цель: разработать и апробировать в опытно-экспериментальной работе в рамках спецкурса по математике экономико- математического профиля способы решения нелинейных уравнений с применением программирования. Задачи: Проанализировать специальную литературу и теоретически обосновать необходимость внедрения элементов программирования при решении нелинейных уравнений. Выбрать некоторые методы решения нелинейных уравнений по математике, позволяющие глубоко изучить и усвоить данную тему всем выпускникам средней школы. Разработать некоторые аспекты методики решения нелинейных уравнений с применением информационных технологий в рамках спецкурса по математике математико- экономического профиля. Проверить эффективность в опытно-экспериментальной работе.
1) Способы решения нелинейных уравнений средствами математики: введение новой переменной, графический способ, разложение на множители, сведение обеих частей уравнения к одному показателю, сведение обеих частей уравнения к одному основанию, применение свойств показательной, степенной и логарифмической функций.
2). Решение нелинейных уравнений с применением средств программирования. Созданная программа предусматривает 5 методов решения нелинейных уравнений. Ход работы с программой следующий: произвольно задать отрезок значений переменной Х и проверить с помощью программы, содержит ли он корни (уточнение корней); задать точность вычислений корней в виде 0,0…1; выбрать максимальное количество итераций (повтора применения алгоритма вычислений), чтобы избежать зацикливания; определить метод решения:
1. Метод половинного деления (дихотомия) Любое уравнение свести к однородному: f(x)=0. Смысл: рассмотрим функцию y = f(x). Построим её график и с помощью корней изучим его свойства на отрезке [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.
2. Метод проб В этом методе [a;b] делят на 10 равных частей. Выбирают ту часть, в которой находится корень (где меняется знак значений функции). Её снова делят на 10 частей. Это продолжают, пока |a-b| не станет меньше точности или достигнуто максимальное количество операций. В итоге х = (a+b)/2.
Соединить f(a) и f(b). Получим хорду. Она пересекает Ох в в т.С. Если f(x) – возрастает, то сдвигаем b в с, если f(x) – убывает, то сдвигаем a в с. Из т. С опускаем перпендикуляр на график. Получим а 1. Строим хорду f(a 1 ), f(b). Продолжаем процесс построения хорд, пока значение |a-b| остается большим точности или не достигнуто максимальное количество итераций. Абсцисса т.С вычисляется по формуле: с = а – ((b-a)/ (f(b) – f(a))) * f(a). В итоге: х = с. 3. Метод хорд
Пусть на [a;b] уравнение f(x) = 0 имеет корень в т. А (а, f(a)). Проводим касательную к графику функции у = f(x) в точке, совпадающей с концом отрезка, в которой знаки 2- ой производной и функции одинаковы. Имеем точку пересечения с Ох – с 1. Для нахождения точки пересечения используем формулу: с 1 = а - f(a)/ f(a) или b - f(b)/ f(b). Продолжаем, пока значение |a-b| больше точности или х = с Метод касательных
5. Метод итераций Пусть решаем уравнение f(x) = 0. Заменим его на уравнение х = j(х), которое получается из данного путем эквивалентных преобразований (имеет те же корни). Это уравнение определяется на некотором множестве Е. Если значение f(x) тоже принадлежит Е, то можно построить итерационную последовательность значений функции j(х) с начальным значением х 0 из Е. Если эта последовательность сходится, то её предел является единственным корнем уравнения х = j(х). Таким образом, исходное уравнение будет решено. В противном случае решить уравнение таким методом нельзя. В итоге х = х 0 -- f(x)/М, где М – максимальное значение f(х) на [a;b]. Учитываем, что х 0 = (a+b)/2, и процесс продолжается до тех пор, пока |х 0 –х| остается большим точности или не достигнуто максимальное количество операций.
Диалоговое окно программы
В ходе работы над проектом разработаны и апробированы в опытно-экспериментальной работе в рамках спецкурса по математике экономико- математического профиля 5 способов решения нелинейных уравнений с применением средств программирования. Группа авторов проекта делает вывод: Если ввести в спецкурс по математике в классах экономико-математического профиля элементы программирования, позволяющие применять информационные технологии к решению нелинейных уравнений, то повысится интерес к изучению материала по математике, практические навыки решения нелинейных уравнений, укрепится межпредметная связь математики и информационных технологий. Некоторые выводы: