Московский Авиационный Институт
(Национальный исследовательский университет)
Факультет прикладной математики и физики.
Курсовой проект
по курсу «Алгоритмы и структуры данных»
Задание №4
Тема:
«Процедуры и функции в качестве параметров»
I семестр
Студент
Группа 8О-100Б
Преподаватель
Москва, 2011.
Постановка задачи:
Составить программу на языке Си c процедурами решения трансцендентных алгебраических уравнений различными численными методами (итераций, Ньютона и половинного деления – дихотомией). Нелинейные уравнения оформить как параметры-функции, разрешив относительно неизвестной величины в случае необходимости. Применить каждую процедуру к решению двух уравнений, заданных двумя строками таблицы, начиная с варианта с заданным номером (т.е. выполнить 20 вариант). Если метод неприменим, дать математическое обоснование и графическую иллюстрацию, например, с использованием gnuplot. В моём варианте применимы
методы дихотомии и Ньютона, но не применим метод итерации, так как он не проходит условие сходимости (см. в программе).
Общий метод решения:
Метод дихотомии:
Метод заключается в делении отрезка пополам и его сужении в два раза на каждом шаге итерационного процесса в зависимости от знака функции в середине отрезка. За начальное приближение принимаются границы исходного отрезка Далее вычисление проводится по формулам или по формулам
Процесс повторяется до тех пор, пока не будет выполнено окончание .
Приближенное значение корня к моменту окончания итерационного процесса получается следующим образом
Метод итераций:
Идея метода заключается в замене исходного уранения F(x)=0 уравнением вида x=f(x). Достаточное условие метода Это условие необходимо проверить перед началом решения задачи, так как функция f(x) может быть выбрана неоднозначно, причем в случае неверного выбора указанной функции метод расходится. Начальное приближение корня: (середина исходного отрезка).
Итерационный процесс: .
Условие окончания:
Приближенное значение корня : .
Метод Ньютона:
Метод Ньютона является частным случаем метода итераций.
Условие сходимости метода: |F(x)*F”(x)|<(F’(x))^2 на отрезке [a,b].
Итерационный процесс: x^(k+1)=x^k-F(x^k)/F’(x^k).
Общие сведения о программе:
Операционная система: Microsoft Windows 7 Ultimate Service Pack 1
Язык программирования: C
Число строк программы: 87
Полное имя программы: :\Users\Никита\Documents\Dev_cpp\Course\Kurs_4.c
Программа компилируется и вызывается с помощью утилиты Bloodshed Dev-C++ со встроенным GNU компилятором (вызов компиляции с запуском- клавиша F9)
Функциональное назначение:
В данном задании необходимо изучить и запрограммировать методы решения алгебраического уравнения 0,1x^2 –x*ln(x) методом итерации на промежутке [1,2]. Необходимо получить ответ 1,1183.
Обрабатываемые данные имеют тип