- •Гоу впо «Кемеровский государственный университет»
- •Методы вычислений
- •Предисловие
- •Тема 1. Элементы теории погрешностей
- •1.1. Определения
- •1.2. Абсолютная и относительная погрешности
- •1.3. Значащие цифры и число верных знаков
- •1.4. Погрешности арифметических действий
- •1.5. Погрешность вычисления функции
- •Задания
- •Варианты
- •Тема 2. Интерполирование
- •2.1. Постановка задачи интерполирования
- •2.2. Интерполяционный многочлен Лагранжа
- •2.3. Интерполяционная формула Гаусса
- •2.4. Сплайн- интерполяция
- •2.5. Линейный сплайн
- •Таким образом, линейный сплайн имеет вид
- •2.6. Параболический сплайн
- •2.7. Кубический сплайн
- •Задания
- •Варианты функций
- •Тема 3. Численное интегрирование
- •3.1. Постановка задачи интегрирования
- •3.2. Квадратурные формулы
- •3.3. Выбор шага интегрирования
- •3.4. Квадратурная формула Гаусса
- •Тогда формула Гаусса будет иметь вид
- •Задания
- •Варианты
- •Тема 4. Решение трансцендентных (нелинейных) уравнений
- •4.1. Отделение корней
- •4.2. Метод последовательных приближений (метод простой итерации)
- •4.3. Метод половинного деления (метод проб, метод дихотомии)
- •4.4. Метод пропорционального деления (метод хорд)
- •4.5. Метод Ньютона (метод касательных)
- •4.6. Метод Ньютона модифицированный
- •4.7. Метод Чебышева
- •Задания
- •Варианты уравнений
- •Тема 5. Решение спектральной задачи
- •5.1. Метод скалярных произведений
- •5.2. Метод вращения
- •Задания
- •Варианты матриц
- •Тема 6. Решение систем линейных алгебраических уравнений
- •6.1. Обусловленность матрицы
- •6.2. Метод Гаусса
- •6.3. Метод Гаусса с выбором главного элемента
- •6.4. Нахождение определителя и обращение матрицы с помощью метода Гаусса
- •6.5. Итерационные методы (метод Якоби, метод Зейделя, метод релаксации)
- •6.6. Оптимизация скорости сходимости итерационного процесса
- •6.7. Итерационные методы вариационного типа
- •6.8. Методы сопряженных направлений
- •Задания
- •Тема 7. Решение систем нелинейных алгебраических уравнений
- •7.1. Определения
- •Интеграл в правой части (8.4) вычисляется с помощью численной квадратуры
- •8.2. Метод Эйлера
- •8.3. Методы Рунге-Кутта
- •8.4. Метод Адамса
- •8.5. Метод Милна
- •Задания
- •Варианты
- •8.6. Краевая задача для обыкновенного дифференциального уравнения второго порядка
- •8.6.1. Интегро-интерполяционный метод
- •8.6.2. Метод прогонки
- •Задания
- •Варианты заданий
- •Тема 9. Методы решения дифференциальных уравнений в частных производных
- •9.1. Простейшие приемы построения разностных схем
- •9.2. Сходимость, аппроксимация, устойчивость разностных схем
- •9.3. Решение уравнения параболического типа
- •9.3.1. Явная разностная схема
- •9.3.2. Неявная разностная схема
- •9.3.3. Реализация метода разностной прогонки для уравнения параболического типа
- •Задание
- •Варианты
- •9.4. Решение уравнения эллиптического типа
- •9.4.1. Метод матричной прогонки
- •Задание:
- •Варианты
- •Содержание
- •Тема 7. Решение систем нелинейных алгебраических уравнений 40
- •Тема 8. Решение обыкновенных дифференциальных уравнений 43
- •Тема 9. Методы решения дифференциальных уравнений в частных производных 49
Интеграл в правой части (8.4) вычисляется с помощью численной квадратуры
yi(k) –y0 = h Aj(i) f(xj, yj(k-1)) . (8.5)
Коэффициенты Aj(i) системы (8.5) находятся из решения системы линейных алгебраических уравнений:
= Aj(i) jk-1; k=1,…n+1;i=1,…n . (8.6)
Система (8.6) получена из условия, что формула (8.5) точна для всех функций вида x, x2, x3,…, xn+1 в точках xi = ih, i=0,…,n.
Пусть n=2, дано три точки (x0,x1,x2). Тогда матрица коэффициентов Aj(i) равна
A= .
Для m=4 , пять точек (x0, x1, x2, x3, x4).
A= .
Численная реализация может быть выполнена следующим образом .
Шаг 1. Исходный интервал делим на 4 части, т. е. задаем m = 4. Определяем сетку xi=a+ih0, i=0,1,…,4, где h0 = (a+b)/4 - шаг исходной сетки. Вычисляем по формулам (8.5) yi(n), i=1,…,4 , пока не выполнится условие max <, по всем i, где - заданная точность.
Шаг 2. Делим интервал на 8 частей, т. е. уменьшаем шаг вдвое и находим yi на сетках:
=a+ih1, i=1,…,4; h1=h0/2;
=(b+a)/2+ih1, i=1,…,4.
Затем проверяем условие max < в узлах первой сетки (с шагом h0). Если оно выполняется, то вычисления заканчиваем. Если не выполняется, то исходный интервал уменьшаем вдвое, т. е. a1=a; b1=(a+b)/2, и переходим на шаг 1, где a=a1; b=b1.
8.2. Метод Эйлера
Для решения задачи Коши (8.1) составляют таблицу значений yk=y(xk), где xk=x0+kh ( k=0,1,…,n), h=(b-a)/n, y(x0)=y0 , x0=a, [a,b] – отрезок, на котором ищется решение. Значение yk+1 определяется по формуле
yk+1=yk + h f(xk,yk), k=0,1,…,n -1, y(x0)=y0 . (8.7)
Погрешность вычислений на каждом шаге составляет
Rk=0.5h2 () , где xk xk+1.
Модифицированный метод Эйлера с уточнением состоит в следующем: сначала вычисляют
y(0)k+1 = yk + h f(xk,yk), k=0,1,…n -1,
а затем это значение уточняют по формуле
y(i)k+1=yk+ [f(xk,yk)+f(xk+1,y(i-1)k+1)], где i=0,1,2,… - номер итерации. (8.8)
Итерации продолжаются до тех пор, пока в пределах требуемой точности два последовательных приближений не совпадут.
8.3. Методы Рунге-Кутта
Для решения задачи Коши (8.1) семейство методов Рунге-Кутта описывается следующим выражением:
y(x+h)=y(x)+ , (8.9)
где h – шаг сетки; число q называется порядком точности метода (8.9).
k1=h f(x, y),
k2=h f(x+2 h, y+21k1),
…
ki=h f(x+I h, y+i1k1+i2k2+…+ii-1ki-1); i=1,…,q .
Здесь pi, i , ik – коэффициенты.
При q = 1 имеем метод первого порядка точности:
yi+1=yi+k1,
k1=h f(xi, yi),
y0=y(x0) .
Метод второго порядка точности (при q = 2) имеет вид:
yi+1=yi + (k1+ k2),
k1=h f(xi, yi),
k2=h f(xi+h, yi+k1),
y0=y(x0) .
Наиболее распространен на практике метод четвертого порядка точности (при q=4):
yi+1=yi+ (k1+2(k2+k3)+k4),
где k1=h f(xi, yi),
k2= h f(xi+h/2, yi+ k1 /2),
k3= h f(xi+h/2, yi+ k2 /2),
k4= h f(xi+ h , yi+ k3) .
Для нахождения решения с заданной точностью , численная реализация методов Рунге-Кутта выполняется следующим образом: задается сетка xi=a+ih0, i =1,…,n; h0=(b-a)/n, далее на каждом I -м шаге в точке x=xi вычисляют два значения yi(1) и yi(2):
yi(1)=yi-1+ pj(h0)kj(h0,xi-1,yi-1),
=yi-1+ pj(h1)kj(h1,xi-1,yi-1),
yi(2)= + pj(h1)kj(h1,xi-1, ), где h1=h0 /2 .
Если выполнено условие yi(1)- yi(2) < , где - заданная точность, то следующее yi+1 вычисляется c тем же шагом h0. В противном случае полагают h0=h1, h1=h0 /2.