Министерство образования и науки Республики Казахстан
Карагандинский Государственный Технический Университет
Кафедра ____САПР______
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
По дисциплине: ”Математическое обеспечение САПР"
Тема: "Сравнительный анализ численных методов"
Руководитель
(подпись) (дата)
Студент
(подпись) (дата)
2009
Содержание
2. Методы решения нелинейных уравнений
2.2 Метод касательных (метод Ньютона)
2.2.2 Решение нелинейного уравнения методом касательных
2.3.2 Решение нелинейного уравнения методом хорд
2.5.2 Решение нелинейного уравнения методом простых итераций
2.6 Программа для решения нелинейных уравнений
3. Решение нелинейных уравнений методом интерполирования
3.4 Использование интерполяции на практике
3.4.1 Интерполяция с помощью многочлена Лагранжа
3.5 Программа для использования интерполяции
4. Итерационные методы решения систем линейных алгебраических уравнений
4.2.2 Решение СЛАУ методом простых итераций
4.2.3 Программа для решения СЛАУ методом простых итераций
4.3.2 Решение СЛАУ методом Зейделя
4.3.3 Программа дл решения СЛАУ методом Зейделя
5. Сравнительный анализ различных методов численного дифференцирования и интегрирования
5.1 Методы численного дифференцирования
5.2 Методы численного интегрирования
5.2.2 Нахождение определенного интеграла
5.3.1 Решение ОДУ методом Эйлера
5.3.2 Решение ОДУ методом Рунге-Кутты
6.Численные методы решения обыкновенных дифференциальных уравнений
Список использованной литературы
Введение
На практике в большинстве случаев найти точное решение возникшей математической задачи не удается. Это происходит главным образом не потому, что мы не умеем этого сделать, а поскольку искомое решение обычно не выражается в привычных для нас элементарных или других известных функциях. Поэтому важное значение приобрели численные методы, особенно в связи с возрастанием роли математических методов в различных областях науки и техники и с появлением высокопроизводительных ЭВМ.
Под численными методами подразумеваются методы решения задач, сводящиеся к арифметическим и некоторым логическим действиям над числами, т.е. к тем действиям, которые выполняет ЭВМ.
В настоящее время появилось значительное число различных программных продуктов (MathCAD, MathLAB и т.д.), с помощью которых, задавая только входные данные, можно решить значительное число задач.
Конечно, использование таких программных продуктов значительно сокращает время и ресурсы по решению ряда важных задач. Однако, использование этих программ без тщательного анализа метода, с помощью которого решается задача, нельзя гарантировать, что задача решена правильно. Поэтому для более полного понимания того, как осуществляется расчет различного вида уравнений и их систем, необходимо теоретически изучить методы их решения и на практике их проработать.
Целью выполнения данного курсового проекта является приобретение практических навыков решения нелинейных уравнений, системы линейных алгебраических уравнений, обыкновенных дифференциальных уравнений различными численными методами.
1. Постановка задачи
Порядок выполнения:
По итерационным методам решения нелинейных уравнений:
Определить корень в заданном или любом выбранном отрезке методом хорд, касательных, простых итераций.
Используя результаты решений, указать наименьший полученный отрезок, в котором содержится корень уравнения.
Для каждого метода и каждой задачи построить график функции на [a,b] и убедиться в выполнении условия сходимости итерационной процедуры.
Используя функции f (x) из п.1, построить интерполяционный многочлен L4 (x) на [a,b], использовав в качестве узловых a и b, остальные необходимые узловые точки выбрать, разделив промежуток [a,b] на почти равные части. Вычислить значения f (x) и L4 (x) в двух точках, одна из которых - середина крайней части, а вторая - середина части, содержащей точку . Сравнить полученные величины. Используя эти же узловые точки, провести обратную интерполяцию и определить значение х при y=0. Полученный результат сравнить с ранее найденным решением уравнения.
Сравнить результаты решения СЛАУ методом простой итерации и методом Зейделя на различных шагах итерации.
Провести сравнительный анализ различных методов численного дифференцирования и интегрирования.
Найти численное решение обыкновенного дифференциального уравнения методом Эйлера и уточненным методом Эйлера с 5-ю и 20-ю шагами и сравнить их, если возможно с результатом точного решения ОДУ.
2. Методы решения нелинейных уравнений
2.1 Общие сведения
Рассмотрим уравнение вида f (x) =0, (2.1), где f (x) - любая нелинейная функция.
Корнем уравнения (2.1) называется значение , при котором. Способы приближенного решения, т.е. алгоритм решения, предполагает определение x* c некоторой наперед заданной точностью.
Для нахождения корней уравнения (2.1) различают следующие два этапа.
Отделения (локализации) корней, т.е. нахождение таких интервалов по аргументу x, внутри каждого из которых существует только один корень уравнения (2.1). Если у функции на концах исследуемого отрезка [a,b] функция имеет разные знаки, то на этом отрезке функция имеет не менее одного корня. Если же одинаковые знаки, то функция может не иметь корней или иметь четное число корней. Следовательно, локализация заключается в том, что необходимо установить отрезки, на которых есть смена знаков функции и, кроме того, выполнено условие единственности корня, т.е. функция на этом отрезке должна иметь первую производную с постоянным знаком. Из условия сходимости итерационной последовательности также требуется, чтобы вторая производная не меняла знак, т.е. на исследуемом отрезке функция бала бы только выпуклой или вогнутой.
Уточнение корней заключается в применении некоторого итерационного метода, в результате которого корень уравнения (2.1) может быть получен с любой наперед заданной точностью ε. При этом, останавливая процесс на какой-либо конечной итерации, необходимо оценить погрешность по сравнению с точным корнем, который неизвестен. Выбранный метод позволяет построить последовательность х1, х2, х3, …, хk, … приближений к корню. Итерационный процесс состоит в последовательном уточнении начального приближения х0. Каждый такой шаг называется итерацией. В результате итераций находится последовательность приближенных значений корня х1, х2, х3, …, хk, … Если эти значения с ростом k стремятся к истинному значению корня , то итерационный процесс сходится.
Основными методами решения нелинейных уравнений, реализованных в виде численной процедуры, являются итерационные методы.
2.2 Метод касательных (метод Ньютона)
2.2.1 Общие сведения
Метод Ньютона, называемый также методом касательных, состоит в следующем. Рассмотрим в точке x0 касательную к кривой y=f (x), задаваемую уравнением
y= f (x0) + (x-x0) f ’ (x0).
За начальное приближение x0 принимается один из концов отрезка [a, b], где значение функции имеет такой же знак, что и 2-я производная. Функция f (x) должна удовлетворять на отрезке [a, b] следующим условиям:
1) существование производных 1-го и 2-го порядков;
2) f ’ (x) 0;
3) производные 1-го и 2-го порядков знакопостоянны на отрезке [a, b].
Положим y=0, находим точку x1 пересечения касательной с осью абсцисс:
x1= х0 - f (х0) /f ’ (х0).
Построив касательную в точке x1 (рисунок 2.1), получаем по аналогичной формуле точку x2 пересечения этой касательной с осью x и т.д. Формула для n-го приближения имеет вид:
хn=хn-1 - F (хn-1) /F’ (хn-1), n=1,2,…
Рисунок 2.1 - Метод касательных
В этом методе на n-й итерации проводится касательная к кривой y =f (x) при х=xn-1 и ищется точка пересечения касательной с точкой абсцисс. При этом необязательно задавать отрезок [a,b], содержащий корень уравнения, а достаточно лишь найти некоторое начальное приближение корня х.
Итерационный процесс останавливают при выполнении условия ; где ε - заданная точность.
2.2.2 Решение нелинейного уравнения методом касательных
1. Дано уравнение tg (0.36*x +0.4) =x2. Решить его методом касательных с точностью решения=0,001.
Для нахождения корня исследуем функцию
.
График функции представлен на рисунке 2.2
Рисунок 2.2 - График исследуемой функции
Находим отрезок, в котором функция монотонно возрастает или убывает, а также где концы отрезка будут иметь разные знаки.
Выбираем концы отрезка: a= -1; b = 0. График функции на этом отрезке представлен на рисунке 2.3
Рисунок 2.3 - График функции на выбранном отрезке
Проверяем существование корня на отрезке по условию
f (-1) = - 0,95998
f (0) =0,42279
0,405869<0, следовательно, на данном промежутке корень есть.
Исследуем функцию на монотонность:
Экстремумов на выбранном отрезке нет.
Находим первую производную функции:
В точке a первая и вторая производные равны:
,
В точке b первая и вторая производные равны:
,
Выбираем тот конец отрезка, который совпадает со знаком 2-ой производной.
, x0=-1, -0,95998* () =1,90998;
По формуле
находим:
, , x>0.001
x>0.001
x>0.001
,
x<0.001
Необходимая точность достигнута при n=4, т.е. на 4-й итерации.
Так как заданная точность достигнута, то процесс можно прекратить.
Теперь строим график функции x=, т.е. последовательность xn, стремящаяся к x* и условием сходимости здесь является (рисунок 2.4).
Рисунок 2.4 - График функции для исследуемой функции
2. Дано уравнение
x3-0,2x2+0,4x-1,4=0.
Решить его методом касательных с точностью решения=0,001.
Для нахождения корня исследуем функцию
.
График функции представлен на рисунке 2.5
Рисунок 2.5 - График исследуемой функции
Находим отрезок, в котором функция монотонно возрастает или убывает, а также где концы отрезка будут иметь разные знаки.
Выбираем концы отрезка: a= -0.1; b = 1.5 График функции на этом отрезке представлен на рисунке 2.6
Рисунок 2.6 - График функции на выбранном отрезке
Проверяем существование корня на отрезке по условию
-3,066375
3,066375 <0, следовательно, на данном промежутке корень есть.
Исследуем функцию на монотонность:
6,2225>0
Экстремумов на выбранном отрезке нет.
Находим первую производную функции:
;
В точке a первая и вторая производные равны:
,
В точке b первая и вторая производные равны:
,
Выбираем тот конец отрезка, значение функции в котором совпадает со знаком 2-ой производной.
Принимаем:
x0= 1,5 2.125*6.55=13,91875,
По формуле
находим:
x>0.001
x>0.001
x>0.001
x<0.001
Необходимая точность достигнута при n=4, т.е. на 4-й итерации.
Так как заданная точность достигнута, то процесс можно прекратить.
Теперь строим график функции x=, т.е. последовательность xn, стремящаяся к x* и условием сходимости здесь является (рисунок 2.7).
Рисунок 2.7 - График функции для исследуемой функции
2.3 Метод хорд
2.3.1 Общие сведения
Как и в методе хорд, функция f (x) должна удовлетворять на отрезке [a, b] следующим условиям:
1) существование производных 1-го и 2-го порядков;
2) f ’ (x) 0;
3) производные 1-го и 2-го порядков знакопостоянны на отрезке [a, b].
За начальное приближение x0 принимается один из концов отрезка [a, b], где значение функции имеет такой же знак, что и 2-я производная. За x1 выбирается второй край отрезка. В данном методе процесс итераций состоит в том, что в качестве приближений корню уравнения принимаются значения х0, х1,… точек пересечения хорды с осью абсцисс (рисунок 2.8).
Рисунок 2.8 - Метод хорд
Формула для n-го приближения имеет вид:
Итерационный процесс останавливают при выполнении условия ; где ε - заданная точность.
2.3.2 Решение нелинейного уравнения методом хорд
1. Дано уравнение
tg (0.36*x +0.4) =x2.
Решить его методом хорд с точностью решения=0,001.
Как в предыдущем методе для нахождения корня исследуем функцию
.
Выбираем концы отрезка: a= -1; b = 0. График функции на этом отрезке представлен на рисунке 2.9
Рисунок 2.9 - График функции на выбранном отрезке
По данным из п.2.2.2 за x0 выбираем тот конец отрезка, который совпадает со знаком 2-ой производной. А за x1 второй конец отрезка.
x0=-1; x1=0.
По формуле
находим:
x>0.001
x>0.001
x>0.001
x>0.001
x>0.001
x<0.001
Необходимая точность достигнута при n=7, т.е. на 6-й итерации.
Так как заданная точность достигнута, то процесс можно прекратить.
Теперь строим график функции x=, т.е. последовательность xn, стремящаяся к x* и условием сходимости здесь является (рисунок 2.10).
Рисунок 2.10 - График функции для исследуемой функции
2. Дано уравнение x3-0,2x2+0,4x-1,4=0. Решить его методом хорд с точностью решения=0,001.
Как в предыдущем методе для нахождения корня исследуем функцию
.
График функции представлен на рисунке 2.5
Выбираем концы отрезка: a= -0.1; b = 1.5 График функции на этом отрезке представлен на рисунке 2.11
Рисунок 2.11 - График функции на выбранном отрезке.
По данным из п.2.2.2 за x0 выбираем тот конец отрезка, который совпадает со знаком 2-ой производной и удовлетворяет условию . А за x1 второй конец отрезка.
x0=1,5; x1=0,5.
По формуле
находим:
x>0.001
x>0.001
x>0.001
x>0.001
x>0.001
x>0.001
x>0.001
x<0.001
Необходимая точность достигнута при n=9, т.е. на 8-й итерации.
Так как заданная точность достигнута, то процесс можно прекратить.
Теперь строим график функции x=, т.е. последовательность xn, стремящаяся к x* и условием сходимости здесь является (рисунок 2.12).
Рисунок 2.12 - График функции для исследуемой функции.
2.4 Вывод
Судя по графикам и сравнивая эти два метода, можно сделать вывод, что искомый корень находится в промежутке между найденными приближенными корнями, т.е. для функции на отрезке [-0.48059; - 0.48028], а для для функции на отрезке [1,0627; 1,06289]
На рисунках 2.12, 2.13 приведены графики функций на данных отрезках.
Рисунок 2.12 - График функции
Рисунок 2.13 - График функции
Анализируя эти два метода, можно отметить, что в методе хорд, чтобы достичь заданной точности, необходимо выполнять больше итераций, чем в методе касательных. Так, в первом примере, в методе хорд мы выполнили 6 итераций, а в методе касательных всего 4; во втором примере в методе хорд мы выполнили 8 итераций, а в методе касательных всего 4. С другой стороны, в методе хорд не нужно вычислять производную функции на каждом шаге. Таким образом, как мне кажется, метод касательных является более трудоемким.
2.5 Метод простых итераций
2.5.1 Общие сведения
Пусть дано уравнение f (x) =0, (1)
Метод простых итераций уточнения корней уравнения (1) состоит в замене этого уравнения эквивалентным ему уравнением
(2)
и построении последовательности
(3),
где
,
Например
x0 = (а + b) /2
Если не удается выразить х из уравнения (1), то эквивалентное уравнение и эквивалентную функцию можно построить, например, так:
Последовательность (3) называют методом простых итераций уточнения корней уравнения (1).
Теорема (достаточное условие сходимости метода простых итераций). Пусть функция в эквивалентном уравнении (2) определена и дифференцируема на отрезке Тогда, если существует число q такое, что
но отрезке [а, b], то последовательность (3) сходится к единственному корню уравнения (2) при любом начальном приближении x0.
Критерий окончания итерационного процесса. При заданной точности >0 вычисления следует вести до тех пор, пока не окажется выполненным неравенство
Если величина , то можно использовать более простой критерий окончания итераций:
2.5.2 Решение нелинейного уравнения методом простых итераций
1. Дано уравнение tg (0.36*x +0.4) =x2. Решить его методом простых итераций с точностью решения=0,001. Как в предыдущих методах для нахождения корня исследуем функцию
.
Выбираем концы отрезка: a= -1; b = 0. График функции на этом отрезке представлен на рисунке 2.14.
Рисунок 2.14 - График функции на выбранном отрезке
Приведем уравнение к виду x=x-f (x), где итерационная функция (x) =x-f (x), - итерационный параметр.
Максимальное и минимальное значения производной достигаются на концах отрезка:
Применяем формулу x=x - f (x) = (x):
2. Дано уравнение x3-0,2x2+0,4x-1,4=0. Решить его методом методом простых итераций с точностью решения=0,001.
Для нахождения корня исследуем функцию .
Выбираем концы отрезка: a= -0.1; b = 1.5 График функции на этом отрезке представлен на рисунке 2.15.
Рисунок 2.15 - График функции на выбранном отрезке.
Найдем корень с помощью встроенной функции root:
Приводим уравнение к виду x= (x), где
Проверим условие сходимости:
Максимальное по модулю значение производной итерационной функции достигается в левом конце отрезка:
Применяем формулу x= (x):
2.6 Программа для решения нелинейных уравнений
На рисунках 2.16, 2.17 представлены программы для решения нелинейных уравнений методами хорд и касательных.
Пользователь вводит необходимые данные и при нажатии кнопки "Решить" выводится результат.
Листинги программ представлены в приложениях А, Б.
Рисунок 2.16 - Программа для решения методом касательных
Рисунок 2.17 - Программа для решения методом хорд
3. Решение нелинейных уравнений методом интерполирования
3.1 Интерполяция
Интерполяция является одним из способов аппроксимации функции. Смысл аппроксимации заключается в том, что производится замена одной функции другой в некотором смысле близкой.
Такая задача возникает по многим соображениям в частности, из-за удобства вычисления значений функции, вычисления производных и т.д.
Допустим, в n+1 точке заданы значения x0,x1,…xn и соответствующие им значения f (x0), f (x1), …, f (xn). Значения f (xi) вычисляются только в случае, если известна функция f (x), но эти значения могут быть получены, например, экспериментальным путем как значение некой неизвестной функции.
Точки xi, в которых известны значения функции, носят названия узлов интерполяции.
Интерполяция заключается в выборе функции φ (х), значения которой в узлах интерполяции совпадают со значениями f (xi).
φ (хi) = f (xi)
Между узлами значения этих функций могут отличаться (рисунок 3.1).
Рисунок 3.1 – Интерполяция
Мы рассмотрим простейший случай, когда в качестве интерполируемой функции используется полином степени n. Преимущества такой интерполяции очевидны. Значения полинома легко вычисляются, имеют непрерывную производную.
3.2 Многочлен Лагранжа
Пусть известны значения некоторой функции f в n+1 различных точках. Возникает задача приближенного восстановления функции f в произвольной точке x. Часто для решения этой задачи строится алгебраический многочлен Ln (x) степени n, который в точках xi принимает заданные значения, т.е.
Ln (xi) =fi, i=0,1,…,n
и называется интерполяционным.
В частности, мы рассматриваем построение интерполирующего многочлена Лагранжа.
,
где
fi - значения интерполируемой функции в i-том узле;
- коэффициент интерполяции Лагранжа
.
Можно сказать, что L1 (x) - линейная функция x, поэтому такую интерполяцию называют линейной (она производится для двух точек).
Интерполяционный многочлен Лагранжа обладает тем недостатком, что в случае, когда добавляются новые узлы интерполяции, все слагаемые необходимо пересчитывать. Но, с другой стороны, он обладает тем достоинством, что интервалы между узлами могут быть неравномерными.
Обратная интерполяция заключается в построении зависимости x (y) и, затем, с помощью такого многочлена легко можно найти корень нелинейного уравнения.
Многочлен Лагранжа в этом случае выглядит следующим образом:
,
где
xi - значения узлов;
- коэффициент интерполяции Лагранжа
.
Если задано достаточно много узлов на отрезке [a,b], то интерполирующие функции на отрезке [a,b] представляют собой непрерывную функцию, уже первая производная которой является кусочно-непрерывной.
В узлах, где происходит стыковка отдельных интерполяционных многочленов, производная рвется. Этого недостатка не имеет интерполяция сплайнами.
3.3 Интерполяция сплайнами
Пусть отрезок [a, b] разбит на n одинаковых частей точками x0, x1,…xn.
Примем
x0=а, xn=b, h= (b-a) /n, xi= a+ih.
Сплайном называется непрерывная на [a, b] и имеющая непрерывные производные функция, на каждом из частичных участков представляющая собой алгебраический многочлен. Порядком сплайна называется старший порядок многочлена, а дефектом сплайна называется разность между порядком сплайна и старшей непрерывной производной.
Например, линейная интерполяция - это сплайн первого порядка с дефектом 1.
Наиболее широкое распространение на практике имеет кубический сплайн. Если сплайн используется для интерполяции некоторой функции и ее производных, т.е. в узлах интерполяции значение сплайна и ее производных некоторых порядков совпадают со значениями функции и ее производных соответствующих порядков, то такой сплайн называется интерполяционным.
Если интерполяционный сплайн на заданном отрезке рассматривать как совокупность кубических сплайнов для каждой пары точек, такая интерполяция носит название локальной интерполяции.
Этот сплайн не прерывен вместе с первой производной, но непрерывность второй производной не гарантируется, т.е. дефект сплайна равен 2. Если этот сплайн имеет непрерывную вторую производную на отрезке [a, b], т.е. имеет дефект 1, то такой сплайн носит название глобального.
Для построения кубического сплайна используется формула:
Для построения глобального сплайна, т.е. сплайна с дефектом 1 необходимо, начиная со 2-го узла, поставить условие непрерывности 2-й производной, т.е.2-я производная при подходе к точке 2 и дальше слева (x1-0) должна равняться второй производной при подходе справа (x1+0).
Такие равенства можно составить для всех внутренних узлов x1 до xn-1. Затем используем условия на краях x0 и xn, получаем систему уравнений, которая и обеспечит дефект 1.
Очевидно, что при наличии S3 на соответствующих участках, построение таких равенств не представляет особого труда.
Приравнивая эти значения, для определения m получим СЛАУ.
В двух крайних точках:
Если функция задана в виде таблиц, то для вычисления производных используеться результаты, получаемые при численном диференцировании, порядок точности которых не ниже 3-ей степени.
3.4 Использование интерполяции на практике
3.4.1 Интерполяция с помощью многочлена Лагранжа
Задание: найти приближенное значение функции при данном значении аргумента с помощью интерполяционного многочлена Лагранжа, если функция задана в неравносторонних узлах таблицы. Дана функция:
Составляем таблицу узлов интерполяции:
Поскольку n=5 строим интерполяционный многочлен L5 (x):
L5 (x) =P50*f (x0) +P51*f (x1) + P52*f (x2) + P53*f (x3) + P54*f (x4) + P55*f (x5)
В результате получаем многочлен:
L5 (x) = 1.049*10-3*x5+5.4373*10-3*x4 +0.027*x3 - 0,936*x2 + 0,424*x +0.42278, X= - 0.48051
Подставляя заданное значение аргумента, получаем ответ:
L5 (x) = 0,00011
При подстановки того аргумента в заданную функцию, получаем такой же результат:
f (-0.48051) =0.00011
3.4.2 Обратная интерполяция
Задание: найти приближенное значение корня данном значении функции с помощью интерполяционного многочлена Лагранжа, если функция задана в равносторонних узлах таблицы.
Дана функция:
Составляем таблицу узлов интерполяции:
i | Xi | Yi |
0 | -0,7 | -0.34091 |
1 | -0,5 | -0.02638 |
2 | -0,3 | 0.21059 |
3 | -0,1 | 0.37098 |
4 | 0,1 | 0.4559 |
Поскольку n=4 строим интерполяционный многочлен L4 (y):
L4 (y) =P40*x0+P41*x1+ P42*x2+ P43*x3+ P44*x4
В результате получаем многочлен:
L4 (y) = 7.99*y4-0.8176*y3 - 0.4932* y2 +0.9008*y - 0.4759
y= 0
Подставляя заданное значение функции, получаем ответ:
L4 (y) = - 0.47591
Таким образом, получаем приближенное значение корня:
X= - 0.47591
При подстановки этого аргумента в заданную функцию, получаем результат:
f (-0,47591) = 0.00625
3.4.3 Интерполяция сплайнами
Задание:
На участке [b,b+2] выбрать 3 точки (b,b+1,b+2), построить два сплайна на двух отрезках, убедиться в том, что в точке b+1 производная не терпит разрыва.
Построим таблицу:
i | 1 | 2 | 3 |
xi | 0 | 1 | 2 |
yi | 0.42279 | -0.4955 | -1.93404 |
Для построения сплайна используем формулы:
h=
Таким образом, нам необходимо, чтобы вторая производная была непрерывна, т.е. получить сплайн с дефектом 1.
Для построения глобального сплайна необходимо, начиная со второго узла поставить условие непрерывности 2-ой производной, т.е.2-ая производная при подходе к точке 2 и дальше слева (x1-0) должна равняться 2-ой производной при подходе справа (x1+0):
Приравнивая эти значения, получаем:
Для нашей функции получаем:
0.42435
- 2.10346
После того, как мы нашли m1, можем построить графики (рисунок 3.2).
Рисунок 3.2 - Глобальная интерполяция сплайнами
Также можно сравнить с графиком самой функции (рисунок 3.3).
Рисунок 3.3 - Сравнение графика функции и глобальной интерполяции
3.5 Программа для использования интерполяции
На рисунках 3.4 представлена программа для использования интерполяции сплайнами. Пользователь вводит необходимые данные и при нажатии кнопки "График" строится кубический сплайн.
Листинг программы представлен в приложении В.
Рисунок 3.4 - Программа для использования интерполяции сплайнами
4. Итерационные методы решения систем линейных алгебраических уравнений
4.1 Общие сведения
К численным методам линейной алгебры относятся численные методы решения систем линейных алгебраических уравнений. Методы решения СЛАУ разбиваются на две группы. К первой группе принадлежат так называемые точные или прямые методы - алгоритм, позволяющий получить решение системы за конечное число арифметических действий. Вторую группу составляют приближенные методы, в частности итерационные методы решения СЛАУ.
4.2 Метод простой итерации
4.2.1 Описание метода
Рассмотрим СЛАУ вида
Ax = B, где А - матрица. (1)
A = {aij}i, j = 1…n
B = {bi}x = {xi}
Если эту систему удалось привести к виду x = Cx + D, то можно построить итерационную процедуру
xk = Cxk-1 + D
xk → x*, где х* - решение заданной системы.
В конечном варианте система будет имееть вид:
x1=c11x1+c12x2+c13x3+…c1nxn+d1
x2=c21x1+c22x2+c23x3+…c2nxn+d1
x3=c31x1+c32x2+c33x3+…c1nxn+d3
…………………………………………. .
xn=cn1x1+cn2x2+cn3x3+…cnnxn+dn
Условием сходимости для матрицы С выполняется, если сумма модулей коэффициентов меньше единицы по строкам или по столбцам, т.е.
, или .
Необходимо, чтобы диагональные элементы матрицы А были ненулевыми.
Для преобразования системы можно выполнить следующие операции:
x1=a11-1 (c1-a12x2 - a13x3-… - a1nxn)
x2=a22-1 (c2-a21x2 - a23x3-… - a2nxn)
………………………. .
xn=ann-1 (cn-an1x2 - an3x3-… - an-1nxn-1)
В результате получим систему:
x1=0+ c12x2+ c13x3-…+ c1n-1xn-1+ c1nxn+d1
x2= c21x2+0 +c23x3+…+ c2n-1xn-1+ c2nxn+d2
………………………………………………………. .
xn= cn1x1+ cn2x2 +cn3x3+…+ cnn-1xn-1+ 0+dn
В ней на главной диагонали матрицы С находятся нулевые элементы, остальные элементы выражаются по формулам:
сij=-aij/aii, di=ci/aii (i,j=1,2,3…n, i<>j)
Итерационный процесс продолжается до тех пор, пока значения х1 (k), х2 (k), х3 (k) не станут близкими с заданной погрешностью к значениям х1 (k-1), х2 (k-1), х3 (k-1).
4.2.2 Решение СЛАУ методом простых итераций
Решить СЛАУ методом простых итераций с точностью .
Для удобства преобразуем систему к виду:
Условие сходимости:
,
Принимаем приближение на 0-ом шаге:
,
,
На 1-м шаге выполняем следующее:
Подставляем принятые приближения в первоначальную систему уравнений
Смотрим не выполняется ли условие остановки итерационного процесса:
:
На 2-м шаге выполняем следующее:
Смотрим не выполняется ли условие остановки итерационного процесса
:
На 3-м шаге выполняем следующее:
Смотрим не выполняется ли условие остановки итерационного процесса
:
На 4-м шаге выполняем следующее:
Смотрим не выполняется ли условие остановки итерационного процесса
:
На 5-м шаге выполняем следующее:
Смотрим не выполняется ли условие остановки итерационного процесса:
:
На 6-м шаге выполняем следующее:
Смотрим не выполняется ли условие остановки итерационного процесса:
:
Необходимая точность достигнута на 6-й итерации. Таким образом, итерационный процесс можно прекратить.
4.2.3 Программа для решения СЛАУ методом простых итераций
На рисунке 4.1 представлена программа для решения систем алгебраических линейных уравнений методом простых итераций.
Листинг программы приведен в приложении Г.
Рисунок 4.1 - Программа "Метод простых итераций"
4.3 Метод Зейделя
4.3.1 Описание метода
В этом методе результаты, полученные на k-том шаге, используются на этом же шаге. На (k+1) - й итерации компоненты приближения вычисляются по формулам:
………………………………………….
Этот метод применим к система уравнений в виде Ax=B при условии, что диагональный элемент матрицы коэффициентов A по модулю должен быть больше, чем сумма модулей остальных элементов соответствующей строки (столбца).
Если данное условие выполнено, необходимо проследить, чтобы система была приведена к виду, удовлетворяющему решению методом простой итерации и выполнялось необходимое условие сходимости метода итераций:
, либо
4.3.2 Решение СЛАУ методом Зейделя
Решить СЛАУ методом Зейделя с точностью .
Эту систему можно записать в виде:
В этой системе сразу видно, что выполняется условие, где диагональные элементы матрицы коэффициентов по модулю больше, чем сумма модулей остальных элементов соответствующей строки.
Для удобства преобразуем систему к виду:
Условие сходимости:
,
Принимаем приближение на 0-ом шаге:
На 1-м шаге выполняем следующее:
Подставляем принятые приближения в первоначальную систему уравнений
Смотрим не выполняется ли условие остановки итерационного процесса
:
На 2-м шаге выполняем следующее:
Смотрим не выполняется ли условие остановки итерационного процесса
:
На 3-м шаге выполняем следующее:
Смотрим не выполняется ли условие остановки итерационного процесса:
:
На 4-м шаге выполняем следующее:
Смотрим не выполняется ли условие остановки итерационного процесса
:
Необходимая точность достигнута на 4-й итерации. Таким образом, итерационный процесс можно прекратить.
4.3.3 Программа дл решения СЛАУ методом Зейделя
На рисунке 4.2 представлена программа для решения систем алгебраических линейных уравнений методом простых итераций.
Листинг программы приведен в приложении Г.
Рисунок 4.2 - Программа "Метод Зейделя"
4.4 Сравнительный анализ
Можно заметить, что в методе Зейделя быстрее мы достигаемой нужной точности, в нашем случае в точность была достигнута на 4-й итерации, когда в методе простых итераций она была достигнута на 6-й итерации. Но в то же время в методе Зейделя ставится больше условий. Поэтому вначале нужно произвести иногда довольно трудоемкие преобразования. В таблице 4.1 приведены результаты решения СЛАУ методом простой итерации и методом Зейделя на различных шагах итерации:
Таблица 4.1 - Результаты решения СЛАУ
№ шага | Метод постой итерации | Метод Зейделя |
0 |
x1=1.34 x2=-1.75 x3=0.5 x4=0.65 |
x1=1.34 x2=-1.75 x3=0.5 x4=0.65 |
1 |
x1=1.277 x2=-1.56227 x3=0.3147 x4=0.5335 |
x1=1.277 x2=-1.57047 x3=0.3324 x4=0.5837 |
2 |
x1=1.31335 x2=-1.6127 x3=0.3647 x4=0.5884 |
x1=1.32469 x2=-1.5974 x3=0.355808 x4=0.58638 |
3 |
x1=1.315391 x2=-1.5935 x3=0.34936 x4=0.57867 |
x1=1.318014 x2=-1.5945 x3=0.354137 x4=0.58556 |
4 |
x1=1.3173416 x2=-1.5968 x3=0.35577 x4=0.58589 |
x1=1.318367 x2=-1.59481 x3=0.35437 x4=0.58554 |
5 |
x1=1.3179137 x2=-1.59467 x3=0.35371 x4=0.58462 |
|
6 |
x1=1.3181515 x2=-1.59506 x3=0.35455 x4=0.58557 |
5. Сравнительный анализ различных методов численного дифференцирования и интегрирования
5.1 Методы численного дифференцирования
5.1.1 Описание метода
Предположим, что в окрестности точки xi функция F (x) дифференцируема достаточное число раз. Исходя из определения производной:
Для оценки погрешностей формул численного дифференцирования используется формула Тейлора:
(1)
Отбрасывая последнее слагаемое, мы можем вычислить производную.
Тогда отброшенное слагаемое будет являться погрешностью в формуле (1). В зависимости от того, какая точка выбирается за x отличают правостороннюю и левостороннюю производную.
Если для вычисления вместо x возьмем xi-1, то получится левосторонняя производная (2), а если xi+1, правосторонняя производная (1).
(1)
(2)
Отсюда видно, что порядок погрешности x - xi, т.е. при использовании
xi-1 или xi+1, порядка O (h).
При достаточно очевидном результате выражения (1) и (2) имеют низкую точность, т.е. высокую погрешность. Поэтому на практике больше используются так называемая центрально-симметричная формула, имеющая большой порядок точности.
Очевидно, что эта формула используется только для внутренних точек отрезка.
5.1.2 Нахождение производной
Вычислим производную функции f (x) =sin (x) в какой-либо точке на отрезке [0,π] двумя способами.
Разобьем отрезок на части:
h=
Найдем производную в точке x=.
По центрально-симметричной формуле:
По формуле правосторонней производной:
=cos () =0.9659,
значит вычисление производной по центрально-симметричной формуле более точнее.
5.2 Методы численного интегрирования
5.2.1 Общие сведения
Для вычисления определённого интеграла используется формула:
Вычисление интеграла в таком виде не всегда удается, поэтому возникает задача приближенного значения этого интеграла.
В теории численного интегрирования используются следующие формулы для вычисления:
Формула левых прямоугольников:
Формула правых прямоугольников:
У этих формул погрешность порядка О (h).
Улучшения результатов можно добиться путем интерполирования (интерполирование можно вести на отрезке [a,b]). Интерполяция первого и второго порядка носит
Формула трапеции:
Формула Симпсона
, где n=2m
h=b-a/n
5.2.2 Нахождение определенного интеграла
Вычислим интеграл для функции разными способами.
Разобьем отрезок [0, ] на части:
h=
По формуле левых прямоугольников:
По формуле трапеции:
По формуле Симпсона:
При m=3:
При m=2:
Сравним полученные результаты с табличным:
=1
Можно сделать вывод, при вычислении определенного интеграла наибольшую степень точности дает формула Симпсона.
5.3 Решение ОДУ
5.3.1 Решение ОДУ методом Эйлера
,
Далее приведены результаты вычислений.
Далее приведены результаты вычислений.
5.3.2 Решение ОДУ методом Рунге-Кутты
,
Далее приведены результаты вычислений.
Поправка Ричардсона Ri для метода Эйлера:
Поправка Ричардсона Ri для метода Рунге-Кутта:
6.Численные методы решения обыкновенных дифференциальных уравнений
6.1 Общие сведения
Обыкновенные дифференциальные уравнения являются моделью динамических систем. То есть систем меняющих свои свойства при изменении независимой переменной в качестве таковой очень часто выступает время.
Обыкновенными дифференциальными уравнениями называются такие уравнения, которые содержат одну или несколько производных от искомой функции y=y (x). Их можно записать в виде
,
где х - независимая переменная.
Наивысший порядок n входящей в уравнение
производной называется порядком дифференциального уравнения.
Методы решения обыкновенных дифференциальных уравнений можно разбить на следующие группы: графические, аналитические, приближенные и численные.
Графические методы используют геометрические построения.
Аналитические методы встречаются в курсе дифференциальных уравнений. Для уравнений первого порядка (с разделяющимися переменными, однородных, линейных и др.), а также для некоторых типов уравнений высших порядков (например, линейных с постоянными коэффициентами) удается получить решения в виде формул путем аналитических преобразований.
Приближенные методы используют различные упрощения самих уравнений путем обоснованного отбрасывания некоторых содержащихся в них членов, а также специальным выбором классов искомых функций.
Численные методы решения дифференциальных уравнений в настоящее время являются основным инструментом при исследовании научно-технических задач, описываемых дифференциальными уравнениями. При этом необходимо подчеркнуть, что данные методы особенно эффективны в сочетании с использованием современных компьютеров.
Существуют различные задачи для ОДУ, мы будем рассматривать задачу Коши. Из курса математики известны условия существования единственности решения задачи Коши и также известно, что аналитически эта задача решается в достаточно редких случаях. То есть для того чтобы ОДУ являлась моделью некоторого динамического процесса, имела аналитическое решение приходится принимать слишком много предположений упрощающих исходную постановку. Что далеко не всегда является продуктивным.
6.2 Метод Эйлера
Начальные условия: х=х0, у=у0, =f (x,y). Задача заключается в том, что необходимо построить функцию y=F (x) или Ф (х, у) =0, производная которой удовлетворяет заданному дифференциальному уравнению. Причем кривая соответствующей этой функции проходит через точку (х0, у0). Мы будем искать на заданном отрезке [a, b] х0=а значения некоторой функции, которые близки к соответствующим значениям искомого решения. Иногда говорят, что мы строим сеточную функцию, если разобьем отрезок [a, b] на n частей (h= (b-a) /n, где h - шаг сетки), тогда хi=x0+ih. Заменим в левой части производную правой разностью. При этом значения функции узлах заменим значениями сеточной функции :
Полученная аппроксимация ДУ имеет первый порядок, поскольку при замене на
допускается погрешность .
Будем считать для простоты узлы равноотстоящими, т.е.
Тогда из равенства
Получаем
Заметим, что из уравнения следует
.
Поэтому
представляет собой приближенное нахождение значение функции в точке при помощи разложения в ряд Тейлора с отбрасыванием членов второго и более высоких порядков. Другими словами, приращение функции полагается равным её дифференциалу. Полагая i=0, с помощью соотношения
находим значение сеточной функции при
: .
Требуемое здесь значение задано начальным условием , т.е. . Аналогично могут быть найдены значения сеточной функции в других узлах:
Построенный алгоритм называется методом Эйлера, графически он представлен на рисунке 6.1.
Рисунок 6.1 -Метод Эйлера
5.3 Метод Рунге-Кутты
Одним из способов улучшения метода Эйлера является метод Рунге-Кутты. Формула Рунге - Кутты 4-го порядка:
,
,
,
Заключение
В ходе выполнения курсовой работы был проведен сравнительный анализ численных методов, таких как итерация, интерполяция, численное дифференцирование и интегрирование, а также метод Эйлера.
В результаты все поставленные задачи были выполнены, цели достигнуты. Мы приобрели навыки в применении различных численных методов на практике. А также были исследованы различные методы.
Теперь перед нами стоит задача в применении приобретенных знаний в своей будущей профессиональной деятельности.
Список использованной литературы
Р.Ф. Хемминг "Численные методы (для научных работников и инженеров)". - Москва, 1972.
А.А. Амосов, А.Ю. Дубинский, Н.В. Копченова "Вычислительные методы для инженеров". - Москва, "Высшая школа", 1994.
Ф.В. Формалев, Д.Л. Ревизников "Численные методы". - М.: ФИЗМАТЛИТ, 2004.
Е.А. Волков. Численные методы: Учеб. Пособие для вузов - М.: Наука. Гл. ред. физ-мат. лит., 1987. - 248 с.