Автор работы: Пользователь скрыл имя, 15 Июля 2013 в 22:57, контрольная работа
Определить корни уравнения F(x) = 0 графически и уточнить один из них:
• методом половинного деления,
• методом хорд,
• методом касательных,
• методом секущих,
• методом простой итерации
с точностью ε = 0.001.
Создать функции, реализующие указанные методы, построить графическую иллюстрацию методов, результаты проверить с помощью встроенных функций.
Задание № 1 4
Теоретические сведения 4
Метод бисекции (деления отрезка пополам) 4
Метод хорд (метод линейной интерполяции) 6
Метод касательных (метод Ньютона) 9
Метод секущих 11
Метод простых итераций 13
Задача 1.1 15
Задача 1.2 18
Задание № 2 20
Теоретические сведения 20
Метод Гаусса (метод последовательного исключения неизвестных) 20
Задача 2.1 24
Задача 2.2 26
Задание № 3 28
Теоретические сведения 28
Метод Эйлера 28
Методы типа Рунге-Кутта 30
Задача 3.1 31
Литература 34
Схема выбора варианта. 35
Оглавление
Определить корни уравнения F(x) = 0 графически и уточнить один из них:
с точностью ε = 0.001.
Создать функции,
реализующие указанные методы, построить
графическую иллюстрацию
Метод бисекции или метод деления отрезка пополам — простейший численный метод для решения нелинейных уравнений вида F(x)=0. Предполагается только непрерывность функции F(x).
Задача заключается в нахождении корней нелинейного уравнения
Для начала итераций необходимо знать интервал [xL,xR] значений x, где находится единственный корень. Произведение значений функции на краях этого интервала получится меньше нуля:
(1.2)
То есть функция меняет знак на данном интервале. Выберем точку внутри интервала
Рис. 1.1 Графическое представление метода бисекций (деления отрезка пополам)
.
Разобьём этот интервал на два [xL,xM] и [xM,xR]. Теперь найдём новый интервал, в котором функция меняет знак. Пусть и соответственно корень находится внутри интервала [xL,xM]. Тогда обозначим xR=xM и повторим описанную процедуру до достижения требуемой точности. За количество итераций N первоначальный отрезок делится в 2N раз. На рисунке 1.1 приведено графическое представление данного метода.
Ниже приведена программная реализация данного численного метода в пакете MathCAD:
Данная функция имеет следующие входные параметры:
В случае если на данном интервале решения не обнаружено, функция возвращает ∞.
Приведём метод, основанный на нахождении xi+1 по двум предыдущим приближениям xi и xi-1 с помощью линейной интерполяции, называемый методом хорд.
Идея метода состоит в том, что по двум точкам и построить прямую (то есть хорду, соединяющую две точки графика ) и взять в качестве следующего приближения абсциссу точки пересечения этой прямой с осью Ox. Иными словами, приближённо заменить на этом шаге функцию её линейной интерполяцией, найденной по двум значениям x: xi-1 и xi. (Линейной интерполяцией функции F(x) назовём такую линейную функцию L(x), значения которой совпадают со значениями F(x) в двух фиксированных точках, в данном случае – в точках xi-1 и xi.).
В зависимости от того, лежат ли точки xi-1 и xi по разные стороны от корня x* или же по одну и ту же сторону, получаем следующие графические представления:
| |
Рис.1.2. Построение последовательного приближения по методу хорд: два случая |
Итак, очередное последовательное приближение будет зависеть от двух предыдущих: . Найдём выражение для функции . Интерполяционную линейную функцию L(x) будем искать как функцию с угловым коэффициентом, равным разностному отношению:
, (1.4)
построенному для отрезка между xi-1 и xi, график которой проходит через точку Mi:
. (1.5)
Решая уравнение L(x) = 0, находим
, (1.6)
то есть
(1.7)
Заметим, что величина ki может рассматриваться как разностное приближение для производной в точке xi. Тем самым полученная формула (1.7) – это разностный аналог итерационной формулы метода Ньютона.
Вычисление по формуле вычисления ведутся по формуле (1.7) при i=1,2,3…, начиная с двух приближений x0 и x1, взятых, по возможности, поближе к корню x*. При этом не предполагается, что x* лежит между x0 и x1 (и что значения функции F в точках x0 и x1 имеют разные знаки). При этом не гарантируется, что корень попадёт на отрезок между xi-1 и xi на каком-либо следующем шаге (хотя это и не исключено). В таком случае затруднительно дать оценку погрешности, с которой xi+1 приближает истинное значение корня x*, поэтому довольствуются таким эмпирическим правилом: вычисления прекращают, когда будет выполнено неравенство , где – желаемая точность нахождения корня. При этом полагают приближённое значение корня равным .
Приведем программную реализацию метода хорд в пакете MathCAD:
Данная функция имеет следующие входные параметры:
В случае если на данном интервале решения не обнаружено, функция возвращает ∞.
Рассмотрение метода одной касательной позволяет предположить, что итерации станут приближаться к корню ещё быстрее, если мы будем выбирать касательную вместо секущей не только на первом, а на каждом шаге. Ясно, что тогда формула итераций будет иметь вид
Этот метод называется методом касательных, или методом Ньютона. Действительно, последовательные приближения метода Ньютона сходятся гораздо быстрее, чем в общем методе итераций (скорость сходимости приближений в котором, напомним, та же, что у геометрической прогрессии со знаменателем при ).
Рис.1.3. Последовательные приближения метода Ньютона (касательных)
Геометрический смысл метода Ньютона состоит в том, что на каждом шаге мы строим касательную к графику точке очередного последовательного приближения xi, а за следующее приближение xi+1 берём точку пересечения этой касательной с осью Ox. Тем самым наклон прямой подстраивается на каждом шаге наилучшим образом (ведь кривизну графика, связанную со второй производной, мы не учитываем, и поэтому неизвестно, в какую сторону от касательной отклонится график).
Заметим, что по-другому идею метода Ньютона мы можем описать так: на каждом шаге вместо исходного уравнения F(x)=0 мы решаем приближённое, линеаризованное в точке xi уравнение:
(1.9)
в котором левая часть – это многочлен Тейлора первого порядка для функции F(x) в точке xi, то есть линейная функция
(1.10)
Решением линеаризованного уравнения служит следующее приближение xi+1, в то время как решением исходного точного уравнения F(x) служит искомый корень x*.
Приведем программную реализацию метода касательных или метода Ньютона в пакете MathCAD:
Данная функция имеет следующие входные параметры:
В качестве функции берут любую постоянную , знак которой совпадает со знаком производной в окрестности E (и, в частности, на отрезке, соединяющем x0 и x*). Постоянная не зависит также и от номера шага i. Тогда формула итераций оказывается очень проста:
и на каждой итерации нужно один раз вычислить значение функции F(x).
Выясним смысл этой формулы, а также смысл условия о совпадении знаков и . Рассмотрим прямую, проходящую через точку на графике с угловым коэффициентом . Тогда уравнением этой прямой будет:
Найдём точку пересечения этой прямой с осью из уравнения
откуда . Следовательно, эта прямая пересекает ось Ox как раз в точке следующего приближения. Тем самым получаем следующую геометрическую интерпретацию последовательных приближений. Начиная с точки x0, через соответствующие точки графика проводятся секущие с угловым коэффициентом того же знака, что производная . (Заметим, что, во-первых, значение производной вычислять не обязательно, достаточно лишь знать, убывает функция или возрастает; во-вторых, что прямые, проводимые при разных xi, имеют один и тот же угловой коэффициент k и, следовательно, параллельны друг другу.) В качестве следующего приближения к корню берётся точка пересечения построенной прямой с осью Ox.
Рис. 1.4. Графическая интерпретация метода секущих
На рисунке 1.4 изображены итерации при , в случае . Мы видим, что последовательные точки xi приближаются к корню, оставаясь всё время с одной стороны от него.
Программная реализация данного метода в пакете MathCAD выглядит так:
Данная функция принимает следующие параметры:
Предположим, что уравнение F(x)=0 при помощи некоторых тождественных преобразований приведено к виду F(x)=x.
Заметим, что такое преобразование можно вести разными способами, и при этом будут получаться разные функции в правой части уравнения. Уравнение F(x)=0 эквивалентно уравнению при любой функции . Таким образом, можно взять и при этом выбрать функцию (или постоянную) так, чтобы функция удовлетворяла тем свойствам, которые понадобятся нам для обеспечения нахождения корня уравнения.
Рис. 1.5. Точка x* – решение уравнения
Для нахождения корня уравнения выберем какое-либо начальное приближение x0 (расположенное, по возможности, близко к корню x*). Далее будем вычислять последующие приближения по формулам
то есть, используя каждое вычисленное приближение к корню в качестве аргумента функции в очередном вычислении. Такие вычисления по одной и той же формуле , когда полученное на предыдущем шаге значение используется на последующем шаге, называются итерациями. Итерациями называют часто и сами значения xi, полученные в этом процессе (то есть, в нашем случае, последовательные приближения к корню).
Заметим тот факт, что x*– корень уравнения , означает, что x* есть абсцисса точки пересечения графика с прямой . Если же при каком-либо x0 вычислено значение , и взято в качестве нового аргумента функции, то это означает, что через точку графика проводится горизонталь до прямой y=x, а оттуда опускается перпендикуляр на ось Ox. Там и будет находиться новый аргумент x1.
Ниже приведен программный код метода простых итераций написанный средствами программирования пакета MathCAD.
Данная функция имеет следующие входные параметры:
Задача 1.1
Площадь кругового сегмента, дуга которого α, определяется формулой:
где α – радиальная мера дуги. Необходимо найти сегмент, площадь которого равна 1/5 площади круга, то есть найти угловую меру дуги сегмента.
Площадь круга определяется по формуле:
Из условий получаем равенство:
Таким образом, нам необходимо решить нелинейное уравнение:
Информация о работе Контрольная работа по "Вычислительная математика"