- •Часть 1 Числовые методы
- •Раздел 1
- •Тема 1.1 Точность вычислительного эксперимента на эвм.
- •§ 1.1.1 Приближенные числа
- •§ 1.1.2. Погрешность приближенных чисел.
- •§ 1.1.3. Погрешность математических операций над приближенными числами.
- •§ 1.1.4 Характеристики методов вычислений.
- •Раздел 1
- •Тема 2. Исчисление конечных разностей. Разностные уравнения.
- •§ 1.2.1 Табличное представление функций. Система обозначений. Операторы.
- •§ 1.2.2. Разностные операторы. Таблицы конечных разностей.
- •§ 1.2.3. Разностные уравнения
- •Раздел 2
- •Тема 2.1. Прикладные задачи интерполяции и аппроксимации и их алгоритмизация. Методы и алгоритмы решения линейных алгебраических уравнений
- •§ 2.1.1. Основные понятия теории приближения функций.
- •§ 2.1.2. Интерполяция многочленами с неравномерными и кратными узлами.
- •Можно и не вычислять коэффициенты Pn(X), а записать интерполяционную формулу, в виде уравнения прямой, проходящей через две координаты точки на плоскости, координаты которых известны.
- •§ 2.1.3. Аппроксимация функций. Метод наименьших квадратов.
- •Раскроем знак суммы относительно неизвестных a0 и a1
- •§ 2.1.4 Методы и алгоритмы решения системы линейных алгебраических уравнений.
- •Раздел 2. Методы и алгоритмы многочленного и немногочленного приближения
- •Тема 2.2.Прикладные задачи численного дифференцирования и интегрирования.
- •§ 2.2.1 Методы численного дифференцирования
- •§ 2.2.2.Методы численного интегрирования
- •Метод трапеций
- •Метод Симпсона
- •Раздел 2
- •Тема 2.3 Системы линейных дифференциальных уравнений и их решение на эвм
- •§ 2.3.1 Основные понятия и определения
- •§ 2.3.2 Алгоритмы решения задачи Коши
- •§ 2.3.3 Алгоритм решения краевой задачи оду.
- •Раздел 2
- •Тема 2.4 Дифференциальные уравнения в частных производных и их численное решение на эвм.
- •§ 2.4.1. Классификация дифференциальных уравнений в частных производных
- •§ 2.4.2 Метод сеток и алгоритмы его реализации
- •§ 2.4.3 Алгоритмы решения параболического уравнения
- •Раздел 3 Численное определение нулей и экстремумов функций
- •Тема 3.1. Методы и алгоритмы нахождение нулей функций
- •§ 3.1.1. Численное решение рациональных и трансцендентных уравнений
- •Пример 1
- •Метод простых итераций
- •Пример 3
- •§ 3.1.2. Нахождение действительных и комплексных корней многочленов
- •§ 3.2.1. Основные понятия и определения
- •Пример 1
- •§ 3.2.2 Методы решения задач оптимизации
- •§ 3.2.3. Задача поиска одномерного, локального безусловного оптимума.
- •§ 3.2.4 Задачи многомерной оптимизации
Раздел 2
Методы и алгоритмы многочленного и немногочленного приближения
С помощью законов природы зависимости
величин, выражающих отдельные факторы
изучаемого явления, формулируются в виде
уравнений, как правило, дифференциальных.
ак. Александр Андреевич Самарский, 1919
Тема 2.3 Системы линейных дифференциальных уравнений и их решение на эвм
§ 2.3.1 Основные понятия и определения
Специалистам по автоматизации технологических процессов часто приходится проводить процедуру анализа динамики системы (анализ переходных процессов). Для этого нужно уметь численно решать системы обыкновенных дифференциальных уравнений (ОДУ), которые являются базовым математическим описанием систем на макроуровне. Такие уравнения содержат одну или несколько производных от искомой функции и могут быть представлены в виде:
F(x, y, y,…,y(n) ) = 0, где x независимая переменная.
Дифференциальное уравнение n порядка может быть сведено к n уравнениям первого порядкам путем введения новых переменных.
y = y1 , y= y2, y= y2= y3 , y = y3 = y4 , …, y(n-1) = yn-1 получится система ОДУ первого порядка:
y1= y2
y2= y3
y3 = y4
……….
y n-1 = f(x, y1 , y2 , y3 , …, yn-1 )
Пример: Исходное
уравнение -
Введем новые переменные: y = y1 , y= y2, y= y2= y3 и запишем систему из трех уравнений:
Как известно из математического анализа решением ОДУ является всякая функция, которая после подстановки в исходное уравнение превращает его в тождество.
Для уравнения первого порядка общее решение зависит от одной произвольной постоянной.
Y = (x, C)
Частное решение зависит от определенного значения произвольной постоянной. Если произвольная постоянная принимает значение C = C0 , (начальные условия – н.у.), то можно получить частное решение.
y = (x, C0)
В зависимости от способа задания дополнительных условий для получения частного решения ОДУ существует два различных типа задач: задача Коши и краевая задача. В задаче Коши задаются только начальные условия (условия на левой границе решения).
При решении краевой задачи задаются начальные и граничные условия (условия на правой границе решения).
§ 2.3.2 Алгоритмы решения задачи Коши
К настоящему времени разработано много методов численного решения ОДУ для этой задачи. Все они сводятся к представлению производных конечными разностями, что приводит к разностному уравнению сеточной (табличной) функции в виде:
yi+1 = F(xi , hi , yi+1 , yi , … ,yi-k+1), i=1,2,…,k при н.у. y(0) = Y0 и шаге сетки hi .
Если в правой части этого уравнения отсутствует yi+1 , т.е. значение yi+1 в левой части
yi+1 = F(xi , hi , yi , … ,yi-k+1)
вычисляется по k предыдущим, то метод называют явным k – шаговым: k = 1 –одношаговый, yi+1 = F(xi , hi , yi); k = 2 – yi+1 = F(xi , hi , , yi, yi-1) двух шаговый и т.д.
Если в правую часть входит искомое значение yi+1 , то метод называют неявным и решение этого уравнения ищется итерационно. Таким образом возможно использование четырех методов: явный одношаговый, явный многошаговый, неявный одношаговый, неявный многошаговый.
Рассмотрим алгоритм одношагового, явного метода, предложенного Эйлером.
Если решить ОДУ относительно производной ,y= f(x,y), то, заменив правой разностью производную y= (yi+1- , yi)/h, получим следующее разностное уравнение
yi+1= yi + hf(xi , yi)
В принципе шаг h может быть постоянным или меняться на каждом следующем значении xi. В инженерных задачах по автоматизации в качестве независимой переменной вместо xi используют время – t.
Пример 1. Решить ОДУ первого порядка по формуле Эйлера.
,
при начальных условиях. t
= 0 y
= y0
, где
T - постоянная времени звена первого порядка. Воздействие на входе звена - x. В общем случае оно зависит от времени х(t).
Решим
это уравнение относительно производной
.
1/T(kx
- y)
При x= const разностное уравнение запишется в следующей форме.
=
yi
+hf(t,y)
= yi
+Δy
т. е. каждое новое значение представляет собой сумму предыдущего значения и его приращения на каждом шаге, равное произведению шага на значение функции от f(t,y) .
Решение можно представить табличной функцией, например, для T= 5 c, k = 2 , x = 1, h = 0.1, t = 0 , y0 = 0
В качестве независимой переменной здесь вместо xi будет ti , а f(xi , yi)= f(ti , yi) правая часть ОДУ, разрешенного относительно производной, а х входное воздействие.
Таблица 1
-
i
0
1
2
3
4
ti
0
0.1
0.2
0.3
0.4
yi
0
0.04
0.0792
0.1176
0.1552
yi точ
0
0.03960
0.0784
0.1165
0.154
y1=y0+h· (k·x/T-1/T·y0)= 0 + 0.1·(2·1/5 – 1/5·0) = 0.04
y2=y1+h·k·x/T-1/T·y1)= 0.04 + 0.1·(2·1/5 – 1/5·0.04) = 0.0792
y3=y2+h· (k·x/T-1/T·y2)= 0.0792 + 0.1·(2·1/5 – 1/5·0.0792) = 0.1176
y4=y3+h· (k·x/T-1/T·y3)= 0.1176 + 0.1·(2·1/5 – 1/5·0.1176) = 0.1552 и т.д.
Абсолютная погрешность при i=1 Δy1 = ׀ 0.04-0.0396 ׀ = 0.0004, δ = 0.0004/0.0396 = 0.0101 = 1.01% ,
При i=2 Δy2= ׀ 0.0792-0.0784 ׀ = 0.0008, δ = 0.0008/0.0784 = 0.0102 = 1.02% ,
Существуют и другие явные одношаговые методы. Наиболее распространенным из них является Рунге-Кутта.
=
yi
+Δy,
где
k0 = hf(xi , yi) ; k1 = hf(xi +h/2 , yi +k0/2) ;
k2 = hf(xi +h/2 , yi +k1/2) ; k3 = hf(xi +h, yi +k2) ;
Здесь xi –это значение независимой переменной.
Этот метод требует на каждом шаге четырехкратного вычисления правой части уравнения.
Пример 2. Решим уравнение примера 1 методом Рунге-Кутта, для k = 1, а результаты сведем в таблицу.
При решении примера независимая переменная t, а x постоянное входное воздействие.
-
i
0
1
2
3
ti
0
0.2
0.3
0.4
yi
0
0.03960265
0.078421121
0.116470932
к0
0.04
0.039207946
0.038431577
0.037670581
к1
0.0396
0.038815867
0.038047261
0.037293875
к2
0.039604
0.038819788
0.038051104
0.037297642
к3
0.3920792
0.038431551
0.037670555
0.036924628
Δy
0.0396026
0.038818468
0.038049811
0.037296374
yi +1
0.03960265
0.078421121
0.116470932
0.153767307
yi точ
0.03960265
0.078421121
0.116470932
0.153767307
Поскольку
k0= 1/Th(kx-y0) = 0.1·1/5(2-0)=0.04;
k1= 1/Th(kx-y0 +k0/2)= 0.1·1/5(2-0.02)= 0.0396;
k2= 1/Th(kx-y0 +k1/2)= 0.1·1/5(2-0.0198)= 0.039604;
k3= 1/Th(kx-y0 +k2)= 0.1·1/5(2-0.039604)= 0.3920792;
y1= y0 +1/6·(k0+2k1 +2k2 +k3)= 0 +1/6·(0.04+ 2·0.0396 +2·0.039604 + 0.3920792) = 0.0396026
Это уравнение имеет аналитическое решение: y =xk(1- e-ti /T).
Для t1=0.1 y= 1· 2· (1-exp(-0.1/5))= 0.03960265 (оставлено 7 значащих цифр).
Метод Рунге Кутта точнее и не дает ошибки при таком количестве значащих цифр в этой точке.
Об остальных методах можно узнать из рекомендованной литературы.
Точное и числовое решение на ЭВМ естественно отличается друг от друга на величину полной ошибки i на каждом шаге интегрирования.
Полная ошибка интегрирования на i-шаге зависит от следующих основных составляющих:
1. Ошибки аппроксимации (усеченная методическая ошибка) i1 , которая связана с заменой производных конечно-разностными отношениями (процедура алгебраизации). Это неустранимая ошибка.
2.Ошибки вычислений округления i2 , связанной с ошибками округления чисел в ЭВМ и заменой неарифметических операций и функций арифметическими при вычислении yi. Для современных ЭВМ ей можно пренебречь.
3. Ошибки накопления (распространения) i3 , равной полной ошибке по i на предыдущем шаге.
Таким образом, i = i1 +i2 +i3 и растет при увеличении числа шагов вычислений. При вычислении на ЭВМ с использованием пакетов прикладных программ допустимая ошибка, как правило, указывается в исходных данных.
В примере 1 для первой точки возникает ошибка первого типа, так как накопления пока нет. Во второй точке ошибка имеет уже две составляющие
