Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
числа полный конспект.docx
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
415.35 Кб
Скачать

Раздел 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 = y3 = y4 , …, y(n-1) = yn-1 получится система ОДУ первого порядка:

y1= y2

y2= y3

y3 = 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 + hf(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 для первой точки возникает ошибка первого типа, так как накопления пока нет. Во второй точке ошибка имеет уже две составляющие

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]