23
Министерство образования Российской Федерации Санкт - Петербургский государственный политехнический университет Институт менеджмента и информационных технологий Кафедра ПО ВТ и АС Лабораторный практикум по курсу вычислительной математики ОТЧЕТ по лабораторной работе 6 Тема: ЧИСЛЕННОЕ РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ (ЗАДАЧА КОШИ) Выполнил: _______________ Группа: _____ Вариант: 14 Проверил: Царев В.А. Отметка о зачете __________________ " ___ " ______________ 2006 г. Череповец 2006

Mathcad - ЛР6

  • Upload
    -

  • View
    114

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Mathcad - ЛР6

Министерство образования Российской ФедерацииСанкт - Петербургский государственный политехнический университет

Институт менеджмента и информационных технологий

Кафедра ПО ВТ и АС

Лабораторный практикум по курсувычислительной математики

ОТЧЕТ

по лабораторной работе №6

Тема:ЧИСЛЕННОЕ РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ

УРАВНЕНИЙ (ЗАДАЧА КОШИ)

Выполнил: _______________Группа: _____

Вариант: 14

Проверил: Царев В.А.

Отметка о зачете __________________

" ___ " ______________ 2006 г.

Череповец2006

Page 2: Mathcad - ЛР6

Задача 6.1. Найти приближенное решение задачи Коши для обыкновенного дифференциального уравнения (ОДУ) 1 порядка '( ) ( , ( )),y t f t y t= 0[ , ],t t T∈ (1)

0 0( )y t y= и оценить погрешность решения задачи. ПОРЯДОК РЕШЕНИЯ ЗАДАЧИ:

1. Задать исходные данные: функцию f правой части, начальное значение 0y . 2. Используя функцию eyler (см. ПРИЛОЖЕНИЕ 6.B), найти приближенное решение задачи Коши с

шагом h=0.1 по явному методу Эйлера. 3. Используя встроенную функцию rkfixed пакета MATHCAD, найти приближенное решение задачи

Коши с шагом h=0.1 (см. ПРИЛОЖЕНИЕ 6.B). 4. Найти решение задачи Коши аналитически. 5. Построить таблицы значений приближенных и точного решений. На одном чертеже построить

графики приближенных и точного решений. 6. Оценить погрешность приближенных решений двумя способами:

a) по формуле 0max | ( ) |i i

i Ny t y

≤ ≤= −ε ; здесь ( )iy t и iy - значения точного и приближенного

решений в узлах сетки it , i=1,..N; b) по правилу Рунге (по правилу двойного пересчета) (см. ПРИЛОЖЕНИЕ 6.C).

7. Выяснить, при каком значении шага h=h* решение, полученное по методу Эйлера, будет иметь такую же погрешность (см. п. 6а), как решение, полученное с помощью метода Рунге-Кутты с шагом h=0.1.

УКАЗАНИЕ. В п. 7 рекомендуется провести серию вычислений решения по методу Эйлера, дробя шаг h пополам.

Теоретический материал:

Метод Эйлера относится к явным методам и реализуется следующей формулой: ),(1 kkkk yxfhyy ⋅+=+

где ),( kk yxf - производная функции. Метод Эйлера имеет второй порядок локальной точности и первый порядок глобальной точности. Значительно более точный результат численного дифференцирования дает метод Рунге-Кутты четвертого порядка точности. Вычисления по данному методу производятся по следующей схеме:

),()5.0,5.0()5.0,5.0(

),(

)22(6

34

23

12

1

43211

KhyhxfKKhyhxfKKhyhxfK

yxfK

KKKKhyy

ii

ii

ii

ii

ii

⋅++=⋅++=⋅++=

=

++++=+

Page 3: Mathcad - ЛР6

yE eyler f y0, t0, h, N,( ):=

Входные параметры:f - функция правой части;y0 - начальное значение;t0 - начальная точка отрезка;h - шаг сетки;N - число узлов сетки.

eyler f y0, t0, h, N,( ) y0 y0←

yi 1+ yi h f t0 i h⋅+ yi,( )⋅+←

i 0 N 1−..∈for

y

:=

Функция, реализующая явный метод Эйлера; возвращает вектор решения:

ti t0 i h⋅+:=

i 1 N..:=

N 10=NT t0−

h:=Число узлов сетки:

Решение задачи:

h 0.1:=Шаг сетки:T 2:=t0 1:=Отрезок:y0 4:=Начальное значение:

f t y,( )yt

12

t3−:=Правая часть уравнения:

Исходные данные:

Правило Рунге практической оценки погрешности (правило двойного пересчета): Одним из наиболее простых, широко применяемых и достаточно эффективных методов оценки погрешности и уточнения полученного решения при численном решении ОДУ является правило Рунге. Для оценки погрешности решения дифференциального уравнения (разницы между точным и приближенным решением в узлах) применяют первую формулу Рунге:

)()2/()( hi

hii yty ε≈− ,

где 12

)()2/(2)(

−−

= p

hi

hih

iyy

ε , i= 0, … , n – задает номера узлов сетки it , построенной с шагом h ,

p – порядок метода, )(hiy и )2/(

2hiy - приближенные решения уравнения с шагом h и 2/h

соответственно в узле it .

Page 4: Mathcad - ЛР6

yE

001

2

3

4

5

6

7

8

9

10

43.2

2.5893313298272

2.11066449620169

1.72682394083441

1.4128507237803

1.15148521647677

0.930484292506567

0.740968713539418

0.576372325196958

0.431755093734077

=

ВЫЧИСЛЕНИЕ РЕШЕНИЯ ПРИ ПОМОЩИ ВСТРОЕННОЙ ФУНКЦИИ (она реализует метод Рунге-Кутты 4-го порядка):

yRK4 rkfixed y t0, T, N, f,( ):= - встроенная функция; входные параметры:y - вектор начальных значений;t0- начальная точка отрезка;T - конечная точка отрезка;N - число узлов сетки;f - функция правой части.

Функция rkfixed возвращает матрицу, первый столбец которой содержит узлы сетки, а второй - приближенное решение в этих узлах.

yRK4

0 101

2

3

4

5

6

7

8

9

10

1 41.1 3.30576298486409

1.2 2.77774195868259

1.3 2.36681861272695

1.4 2.04076377359122

1.5 1.77771918609449

1.6 1.56243607225608

1.7 1.38401420013955

1.8 1.23449439708241

1.9 1.10795524063915

2 0.999917609225951

=

yTrue t( )4

t2:= - точное решение диф. уравнения

Page 5: Mathcad - ЛР6

max zRK4( ) 5.14246690531313 10 6−×=max zE( ) 0.285306411369347=

Значение погрешностей:

zRK4iyRK4h2 1⟨ ⟩( )

2 i⋅ yRK4 1⟨ ⟩( )i−

15:=zEi yEh22 i⋅ yEi−:=

i 0 N..:=Вычисление погрешностей по точкам:

yRK4h2 rkfixed y t0, T, N2, f,( ):=yEh2 eyler f y0, t0, h2, N2,( ):=

N2 20=N2T t0−

h2:=h2

h2

:=

Вычисление приближенных решений с шагом h/2:

Вычисление погрешностей решения по правилу Рунге:

max_ε_RK4 8.23907740494789 10 5−×=max_ε_E 0.568244906265923=

max_ε_RK4 max εRK4_1( ):=max_ε_E max εE_1( ):=

εRK4_1i yTrue ti( ) yRK4i 1,−:=εE_1i yTrue ti( ) yEi−:=

Вычисление погрешностей решения:

Произведем оценку погрешностей приближенных решений:

1 1.2 1.4 1.6 1.8

1

2

3

yEi

yRK4i 1,

yTrue t i( )

t i

Page 6: Mathcad - ЛР6

Расчет абсолютной погрешности через функцию Mmax:

Mmax y yr, n,( ) max 0←

max yi yri−← yi yri− max>if

i 0 n..∈for

max

:=

Функция, рассчитывающая текущую погрешность и соответствующий ей шаг при заданной целевой погрешности.

get_h h ε, yTrue,( ) s0 1←

NT t0−

h←

ti t0 i h⋅+←

yti yTrue ti( )←

i 0 N..∈for

yE eyler f y0, t0, h, N,( )←

s0 Mmax yt yE, N,( )←

s1 h←

hh2

s0 ε>while

s

:=

погрешность

шагget_h 0.1 max_ε_RK4, yTrue,( )

6.86646663453638 10 5−×

1.220703125 10 5−×

=

При шаге 1.220703125 10 5−× погрешность метода Эйлера станет лучше погрешности

метода Рунге-Кутты четвертого порядка с шагом h=0.1

Вывод: В ходе проведенного численного эксперимента метод Рунге - Кутты показалточность на четыре порядка более высокую, по сравнению с методом Эйлера,что согласуется с теоретическими сведениями об этих алгоритмах. Оценка погрешности по методу Рунге дает лишь приближенное значение.

Page 7: Mathcad - ЛР6

xRK4 rkfixed x t0, T, N, D,( ):=

D t x,( )f1 t x0, x1,( )f2 t x0, x1,( )

:=xX0

V0

:=

f2 t x1, x2,( )f t( ) H t( ) x2⋅− K x1⋅−

m:=f1 t x1, x2,( ) x2:=

Формирование вектора правой части системы ОДУ (1) и вектора начальных условий для применения встроенной функции rkfixed:

NT t0−

h:=Число узлов сетки:

Решение задачи I:

h 0.1:=Шаг сетки:T 34:=t0 0:=V0 0:=X0 0:=

f t( ) cos t( ):=m 1:=K 1:=H t( ) 1:=

Исходные данные I:

Задача 6.2. Задача Коши для ОДУ 2 порядка ( )mx Hx kx f t′′ ′+ + = , [0, ],t T∈

0

0

(0)(0)

x xx v

=′ =

описывает движение груза массы m, подвешенного к концу пружины. Здесь x(t) – смещение груза от положения равновесия, H – константа, характеризующая силу сопротивления среды, k –коэффициент упругости пружины, f(t) – внешняя сила. Начальные условия: 0x – смещение груза в начальный момент

времени t=0, 0v – скорость груза в начальный момент времени. Промоделировать движение груза на временном отрезке [0,T] при заданных в индивидуальном варианте трех наборах (I, II, III) значений параметров задачи. Для каждого набора по найденной таблице (или графику) решения задачи определить максимальное и минимальное значения функции x(t) и моменты времени, в которые эти значения достигаются. Предложить свой вариант задания параметров, при которых характер колебаний груза существенно отличается от рассмотренного ранее. ПОРЯДОК РЕШЕНИЯ ЗАДАЧИ:

1. Заменить исходную задачу эквивалентной задачей Коши для системы ОДУ 1 порядка:

1 2

2 12

1 0

2 0

( )

(0)(0)

x xf t Hx kxx

mx xx v

′ =

− −′ =

=

=

(2)

2. Для каждого варианта выбора параметров решить задачу (2) с помощью встроенной функции rkfixed пакета MATHCAD (см. ПРИЛОЖЕНИЕ 7.B) с шагом h=0.1. 3. Для каждого варианта выбора параметров построить график найденного решения. Сравнить характер движения груза и дать физическую интерпретацию полученного движения.

4. Для каждого варианта выбора параметров определить требуемые в задаче характеристики.

Page 8: Mathcad - ЛР6

Формирование вектора правой части системы ОДУ (1) и вектора начальных условий для применения встроенной функции rkfixed:

NT t0−

h:=Число узлов сетки:

Решение задачи II:

h 0.1:=Шаг сетки:T 34:=t0 0:=V0 0:=X0 0:=

f t( ) cos t( ):=m 14:=K 1:=H t( ) 1:=

Исходные данные II:

get_maximum xRK4 0, 340,( )

26.7000000000001

0.99999715251772

267

=

get_minimum xRK4 0, 340,( )

17.3

0.999910402134673−

173

=

0 10 20 301

0

1

xRK4i 1,

xRK4i 0,

i 0 N..:=График решения:

get_maximum m n1, n2,( ) max 0←

max m i 1,←

result0 m i 0,←

result1 m i 1,←

result2 i←

m i 1, max>if

i n1 n2..∈for

result

:=

get_minimum m n1, n2,( ) min 1015←

min m i 1,←

result0 m i 0,←

result1 m i 1,←

result2 i←

m i 1, min<if

i n1 n2..∈for

result

:=

Page 9: Mathcad - ЛР6

xRK4 rkfixed x t0, T, N, D,( ):=

D t x,( )f1 t x0, x1,( )f2 t x0, x1,( )

:=xX0

V0

:=

f2 t x1, x2,( )f t( ) H t( ) x2⋅− K x1⋅−

m:=f1 t x1, x2,( ) x2:=

Формирование вектора правой части системы ОДУ (1) и вектора начальных условий для применения встроенной функции rkfixed:

NT t0−

h:=Число узлов сетки:

Решение задачи III:

h 0.1:=Шаг сетки:T 34:=t0 0:=V0 0:=X0 0:=

f t( ) cos t( ):=m 28:=K 1:=H t( ) 1:=

Исходные данные III:

get_maximum xRK4 0, 340,( )

2.9

0.117792615900578

29

=

get_minimum xRK4 0, 340,( )

12.4

0.123912023170379−

124

=

0 20

0.1

0

0.1

xRK4i 1,

xRK4i 0,

i 0 N..:=График решения:

xRK4 rkfixed x t0, T, N, D,( ):=

D t x,( )f1 t x0, x1,( )f2 t x0, x1,( )

:=xX0

V0

:=

f2 t x1, x2,( )f t( ) H t( ) x2⋅− K x1⋅−

m:=f1 t x1, x2,( ) x2:=

Page 10: Mathcad - ЛР6

get_maximum xRK4 0, 340,( )

4.5

3.92190222525123

45

=

get_minimum xRK4 0, 340,( )

0

0

0

=

0 200

2

4

xRK4i 1,

xRK4i 0,

i 0 N..:=График решения:

xRK4 rkfixed x t0, T, N, D,( ):=

D t x,( )f1 t x0, x1,( )f2 t x0, x1,( )

:=xX0

V0

:=

0 20 40 609.98

9.99

10

f z( )

z

f2 t x1, x2,( )f t( ) H t( ) x2⋅− K x1⋅−

m:=f1 t x1, x2,( ) x2:=

Формирование вектора правой части системы ОДУ (1) и вектора начальных условий для применения встроенной функции rkfixed:

NT t0−

h:=Число узлов сетки:

Решение задачи IV:

h 0.1:=Шаг сетки:T 34:=t0 0:=V0 0:=X0 0:=

f t( ) 10:=m 8:=K 4:=H t( ) 2:=

Исходные данные IV:

get_maximum xRK4 0, 340,( )

3

0.064517539485313

30

=

get_minimum xRK4 0, 340,( )

18.7

0.060414912262805−

187

=

0 20

0xRK4i 1,

xRK4i 0,

i 0 N..:=График решения:

Page 11: Mathcad - ЛР6

Вывод: В ходе проведенного численного эксперимента с заданными параметрами былопромоделировано движение груза на пружином подвесе под воздействием силы,подчиняющейся синусоидальному закону. Во всех рассмотренных случаях колебания груза не являлись затухающими, т.к. в колебательной системе существовал источник энергии. Все вышеперечисленные три варианта отличались только лишь коэффициентом упругости пружины. Наблюдая за графиками можно сделать вывод, что чем большую упругость имеет пружина, тем сильнее отличия результирующих колебаний от вынуждающих. Стоит отметить, что частота вынуждающих колебаний была значительно выше частоты собственных колебаний системы, что не позволило проявится резонансу.В последнем рассмотренном случае на груз подействовала сила такая, как если бык существующему грузику подвесили бы ещё один. Пружина растянулась и подвергалась некоторое время затухающим колебаниям.

Задача 6.3. Разработать процедуры и решить приближенно задачу Коши для ОДУ 1 порядка вида (1), используя

1. метод Эйлера первого порядка точности, 2. модифицированный метод Эйлера второго порядка точности, 3. метод Эйлера-Коши второго порядка точности, 4. неявный метод Эйлера первого порядка точности, 5. метод Рунге-Кутты 4 порядка точности (без использования встроенной функции)

с шагами 100

0tTh −= и 2/h . Для каждого метода оценить погрешность по правилу Рунге и вычислить

уточненное решение (см. ПРИЛОЖЕНИЕ 6.C). Для каждого метода построить на одном чертеже график приближенного решения (с шагом h / 2), график уточненного решения, график точного аналитического решения. Сделать выводы.

Теоретический материал:

Правило Рунге практической оценки погрешности (правило двойного пересчета): Одним из наиболее простых, широко применяемых и достаточно эффективных методов оценки погрешности и уточнения полученного решения при численном решении ОДУ является правило Рунге. Для оценки погрешности решения дифференциального уравнения (разницы между точным и приближенным решением в узлах) применяют первую формулу Рунге:

)()2/()( hi

hii yty ε≈− ,

где 12

)()2/(2)(

−−

= p

hi

hih

iyy

ε , i= 0, … , n – задает номера узлов сетки it , построенной с шагом h , p – порядок

метода, )(hiy и )2/(

2hiy - приближенные решения уравнения с шагом h и 2/h соответственно в узле it .

Уточненное решение вычисляется по формуле: )()2/(

2,h

ihiуточнi yy ε+= , i=0,…, n.

Page 12: Mathcad - ЛР6

eyler f y0, t0, h, N,( ) y0 y0←

yi 1+ yi h f t0 i h⋅+ yi,( )⋅+←

i 0 N 1−..∈for

y

:=

1) Расчет методом Эйлера первого порядка точности:

- точное значение функцииyTrue t( ) 2 t2− e

t2

2−

+:=

xi t0 i h⋅+:=h 0.01=hT t0−

N:=Шаг сетки:

Решение задачи:

i 0 N..:=N 100:=Число узлов сетки:

T 1:=t0 0:=Отрезок:y0 3:=Начальное значение:

f t y,( ) t− y⋅ t3−:=Правая часть уравнения:

Исходные данные:

Явный метод Эйлера 1-го порядка: ),(1 iiii yxhfyy +=+

Неявный метод Эйлера 1-го порядка: ),( 111 +++ += iiii yxhfyy

Усовершенствованный метод Эйлера 2-го порядка )),(5.0,5.0(1 iiiiii yxhfyhxhfyy +++=+

Метод Эйлера-Коши 2-го порядка (схема «предиктор-корректор»):

1 ( , ),i i i iy y hf t y+ = + 1 1 1( ( , ) ( , ))2i i i i i ihy y f t y f t y+ + += + +

Метод Рунге-Кутты 4-го порядка:

)22(6

)4()3()2()1(1 iiiiii kkkkhyy ++++=+

),()1(iii yxfk = , )5.0,5.0( )1()2(

iiii hkyhxfk ++=

)5.0,5.0( )2()3(iiii hkyhxfk ++= , ),( )3()4(

iiii khyhxfk ⋅++=

Page 13: Mathcad - ЛР6

yE eyler f y0, t0, h, N,( ):= yE2 eyler f y0, t0,h2

, 2N,

:=

Ei yE22 i⋅ yEi−:= yE_Ci yE22 i⋅ Ei+:= mE max E( ):= mE 0.03319307271477=

0 0.2 0.4 0.6 0.81.5

2

2.5

3

yTrue xi( )yE22 i⋅

yE_Ci

xi

0.72 0.73 0.742.2

2.22

2.24yTrue xi( )yE22 i⋅

yE_Ci

xi

2) Расчет усовершенствованным методом Эйлера второго порядка точности:

eylerEnh f y0, t0, h, N,( ) y0 y0←

yi 1+ yi h f t0 i h⋅+ 0.5 h⋅+ yi 0.5 h⋅ f t0 i h⋅+ yi,( )⋅+,( )⋅+←

i 0 N 1−..∈for

y

:=

yEEnh eylerEnh f y0, t0, h, N,( ):= yEEnh2 eylerEnh f y0, t0,h2

, 2N,

:=

Ei yEEnh22 i⋅ yEEnhi−:= yEEnh_Ci yEEnh22 i⋅ Ei+:= mEEnh max E( ):=

mEEnh 5.92028716900001 10 5−×=

Page 14: Mathcad - ЛР6

0 0.2 0.4 0.6 0.81.5

2

2.5

3

yTrue xi( )yEEnh22 i⋅

yEEnh_Ci

xi

0.72 0.73 0.742.2

2.22

2.24yTrue xi( )yEEnh22 i⋅

yEEnh_Ci

xi

3) Расчет методом Эйлера-Коши 2-го порядка точности (схема "предиктор-корректор"):

eylerKoshy f y0, t0, h, N,( ) y0 y0←

t10 1←

yi 1+ yih2

f t0 i h⋅+ yi,( ) f t0 i 1+( ) h⋅+ yi h f t0 i h⋅+ yi,( )⋅+, + ⋅+←

i 0 N 1−..∈for

y

:=

yEK eylerKoshy f y0, t0, h, N,( ):= yEK2 eylerKoshy f y0, t0,h2

, 2N,

:=

Ei yEK22 i⋅ yEKi−:= yEK_Ci yEK22 i⋅ Ei+:=

Page 15: Mathcad - ЛР6

0 0.2 0.4 0.6 0.81.5

2

2.5

3

yTrue xi( )yEK22 i⋅

yEK_Ci

xi

mEK max E( ):=

mEK 6.63667365979669 10 5−×=

0.72 0.73 0.742.2

2.22

2.24yTrue xi( )yEK22 i⋅

yEK_Ci

xi

4) Расчет неявным методом Эйлера первого порядка точности:

ImplicitEyler f y0, t0, h, N,( ) y0 y0←

ys 1015←

yi 1+ yi h f t0 i h⋅+ yi,( )⋅+←

ys yi 1+←

yi 1+ yih2

f t0 i h⋅+ yi,( ) f t0 i 1+( ) h⋅+ ys,[ ]+ ⋅+←

yi 1+ ys− 10 15−>while

i 0 N 1−..∈for

y

:=

yIE ImplicitEyler f y0, t0, h, N,( ):= yIE2 ImplicitEyler f y0, t0,h2

, 2N,

:=

Ei yIE22 i⋅ yIEi−:= yIE_Ci yIE22 i⋅ Ei+:=

Page 16: Mathcad - ЛР6

0 0.2 0.4 0.6 0.81.5

2

2.5

3

yTrue xi( )yIE22 i⋅

yIE_Ci

xi

mIE max E( ):=

mIE 2.66292374223529 10 5−×=

0.72 0.73 0.742.2

2.22

2.24yTrue xi( )yIE22 i⋅

yIE_Ci

xi

5) Расчет методом Рунге-Кутты 4-го порядка точности:

RungeKutt f y0, t0, h, N,( ) y0 y0←

k1i f t0 i h⋅+ yi,( )←

k2i f t0 i h⋅+ 0.5 h⋅+ yi 0.5 h⋅ k1i⋅+,( )←

k3i f t0 i h⋅+ 0.5 h⋅+ yi 0.5 h⋅ k2i⋅+,( )←

k4i f t0 i h⋅+ h+ yi k3i h⋅+,( )←

yi 1+ yih6

k1i 2 k2i⋅+ 2 k3i⋅+ k4i+( )⋅+←

i 0 N 1−..∈for

y

:=

yRK RungeKutt f y0, t0, h, N,( ):= yRK2 RungeKutt f y0, t0,h2

, 2N,

:=

Ei yRK22 i⋅ yRKi−:= yRK_Ci yRK22 i⋅ Ei+:=mRK max E( ):=

Page 17: Mathcad - ЛР6

0 0.2 0.4 0.6 0.81.5

2

2.5

3

yTrue xi( )yRK22 i⋅

yRK_Ci

xi

mRK 4.93886169201403 10 10−×=

0.72 0.73 0.742.2

2.22

2.24yTrue xi( )yRK22 i⋅

yRK_Ci

xi

Произведем сравнение использованных методов по максимальной погрешности результата:

1) Метод Эйлера первого порядка точности:

mE 0.03319307271477=

2) Усовершенствованный метод Эйлера второго порядка точности:

mEEnh 5.92028716900001 10 5−×=

3) Метод Эйлера-Коши 2-го порядка точности (схема "предиктор-корректор"):

mEK 6.63667365979669 10 5−×=

4) Неявный метод Эйлера первого порядка точности:

mIE 2.66292374223529 10 5−×=

5) Метод Рунге-Кутты 4-го порядка точности:

mRK 4.93886169201403 10 10−×=

Page 18: Mathcad - ЛР6

Решение задачи:

h 0.1:=Шаг сетки:

y3 2:=y2 2.9:=y1 1.5:=a3 18:=a2 1.88:=a1 1.4:=a0 1:=

B 2:=A 0:=Отрезок:

f t( ) sin 2t( ) 2 t⋅ 1−+:=Функция правой части:

Исходные данные:

Сведение ОДУ 3 порядка к системе ОДУ 1 порядка:

0132231

3

32

21

)(a

yayayatfy

yyyy

−−−=′

=′=′

11 )( bAy = , 22 )( bAy = , 33 )( bAy = .

Теоретический материал:

Задача 6.4. Решить приближенно задачу Коши для ОДУ 3 порядка 0 1 2 3 ( )a y a y a y a y f t′′′ ′′ ′+ + + =

1( )y A b= , 2( )y A b′ = , 3( )y A b′′ = на отрезке [A,B] с помощью встроенной функции rkfixed пакета MATHCAD с шагами h=0.1 и h=0.05 для систем ОДУ 1 порядка. Оценить погрешность по правилу Рунге. Построить график решения, найденного с шагом h=0.05.

В ходе проведенного численного эксперимента метод Рунге-Кутты четвертогопорядка точности показал наилучший результат по точности. Наихудший результат был у метода Эйлера. Неявный метод Эйлера первого порядка позволил достичь точности, даже превосходящей точность метода более высокого порядка, метода Эйлера-Коши. Это объясняется тем, что в текущей реализации неявного метода Эйлера применялось большое количество итераций минимизации погрешности на каждом шаге, что позволило значительно улучшить результат, но потребовало большее количество процессорного времени, по сравнению с методом Эйлера-Коши. Усовершенствованный метод Эйлера второго порядка приблизительно соответствовал методу Эйлера-Коши, что объясняется равенством их порядков точности.

Вывод:

Page 19: Mathcad - ЛР6

i 0 N..:=NB A−

h:=h 0.1:=

0 1 2

10

5

5

RK4_h_2i 1,

RK4_h_2i 0,

График решения с шагом h=0.05

i 0 N..:=

RK4_h_2 rkfixed y A, B, N, D,( ):=NB A−

h:=Число узлов сетки:h 0.05:=Шаг сетки:

0 1 2

10

5

5

RK4_hi 1,

RK4_hi 0,

График решения с шагом h=0.1

RK4_h rkfixed y A, B, N, D,( ):=D t y,( )

f1 t y0, y1, y2,( )f2 t y0, y1, y2,( )f3 t y0, y1, y2,( )

:=y

y1

y2

y3

:=

f3 t y1, y2, y3,( )f t( ) a1 y3⋅− a2 y2⋅− a3 y1⋅−

a0:=

f2 t y1, y2, y3,( ) y3:=

f1 t y1, y2, y3,( ) y2:=

Формирование вектора правой части системы ОДУ (1) и вектора начальных условий для применения встроенной функции rkfixed:

NB A−

h:=Число узлов сетки:ti t0 i h⋅+:=i 0 N..:=

Page 20: Mathcad - ЛР6

Вычисление погрешности по правилу Рунге:

ERK4iRK4_h_22 i⋅ 1, RK4_hi 1,−

15:= max ERK4( ) 6.9292724536633 10 6−×=

Вывод: В ходе проведенного численного эксперимента ОДУ 3-го порядка было решено через сведение к системе ОДУ 1-го порядка. Абсолютная погрешность, вычисленная по правилу Рунге, составила 6.9292724536633 10 6−× .

Задача 6.5. Задано линейное дифференциальное уравнение 2-го порядка с постоянными коэффициентами иначальные условия:

)(tfyqypy =⋅+′⋅+′′

1)( bay = , 2)( bay =′ Сведя уравнение к системе ОДУ 1-го порядка, найти численное решение задачи на отрезке ],[ BAt ∈методом Эйлера-Коши с заданной точностью 310−=ε . ПОРЯДОК РЕШЕНИЯ ЗАДАЧИ:

1. Свести уравнение к системе ОДУ 1-го порядка вида:

==

⋅−⋅−=′=′

2

1

)()(

)(

bazbay

yqzptfzzy

2. Найти решение системы (см. ПРИЛОЖЕНИЕ 6.C) методом Эйлера-Коши c начальным шагом

10ABh −

= .

3. Постепенно уменьшая шаг вдвое и оценивая каждый раз достигнутую погрешность по правилу Рунге, найти решение задачи с заданной точностью ε.

4. Вывести на один чертеж график полученного приближенного решения и график точного аналитического решения. Сравнивая приближенное и точное решение, оценить фактически достигнутую практическую погрешность.

5. Объяснить полученные результаты. Сделать выводы.

Теоретический материал:

==

=′=′

00

00

)()(

),,(),,(

ztzyty

zytgzzytfy

ihtti ⋅+= 0 h ),( ii zy

+=+=

+

+

),,(),,(

1

1

iiiii

iiiii

zythgyzzythfyy

Page 21: Mathcad - ЛР6

EK f g, y0, z0, t0, B, N,( ) hB t0−

N←

y0 y0←

z0 z0←

y_i 1+ yi h f t0 i h⋅+ yi, zi,( )⋅+←

z_i 1+ zi h g t0 i h⋅+ yi, zi,( )⋅+←

yi 1+ yih2

f t0 i h⋅+ yi, zi,( ) f t0 i 1+( ) h⋅+ y_i 1+, z_i 1+, + ⋅+←

zi 1+ zih2

g t0 i h⋅+ yi, zi,( ) g t0 i 1+( ) h⋅+ y_i 1+, z_i 1+, + ⋅+←

i 0 N..∈for

y

:=

Решение методом Эйлера-Коши:

y t( )73

− e t−⋅ t⋅718

e t−⋅−145

e 4− t⋅⋅19−

315⋅−

145

et⋅111140

⋅+:=

Аналитическое решение:

Решение задачи:

f2 t y, z,( ) 14 t⋅ e t−⋅ p z⋅− q y⋅−:=f1 t y, z,( ) z:=

t0 0:=ti t0 i h⋅+:=i 0 N..:=

t0 0:=q 4−:=p 3:=b2 0.4−:=b1 2:=B 4.3:=A 0:=

f t( ) 14 t e t−⋅:=

Исходные данные:

Задана система двух ОДУ 1-го порядка:

==

=′=′

00

00

)()(

),,(),,(

ztzyty

zytgzzytfy

.

Решением системы на сетке ihtti ⋅+= 0 , h - заданный шаг, является набор чисел ),( ii zy , которые могут быть найдены, исходя из следующих итерационных соотношений:

++=

++=

+=+=

++++

++++

+

+

)),,(),,((2

)),,(),,((2

),,(),,(

1111

1111

1

1

iiiiiiii

iiiiiiii

iiiii

iiiii

zytgzytghzz

zytfzytfhyy

zythgyzzythfyy

.

Page 22: Mathcad - ЛР6

j 0 N2..:=N2 40=N2Nd

:=hB A−

N:=N 2560=i 0 N..:=N get_N:=

d 64:=

get_N N 10←

ε 1←

ek1 EK f1 f2, b1, b2, t0, B, N,( )←

ek2 EK f1 f2, b1, b2, t0, B, 2 N⋅,( )←

E jek22 j⋅ ek1j−

3←

j 0 N..∈for

ε max E( )←

N 2 N⋅←

ε 10 3−>while

N

:=

10 3−меньше

Вычисление N, при котором рассчитанная по правилу Рунге погрешность будет

0 2 4 6

50

100

150

200

y t i( )ek10i

t i

ek10 EK f1 f2, b1, b2, t0, B, N,( ):=

ti t0 i h⋅+:=hB A−

N:=i 0 N..:=N 10:=

Решение при h=(B-A)/10 :

Page 23: Mathcad - ЛР6

EK_res EK f1 f2, b1, b2, t0, B, N,( ):= ti t0 i h⋅+:= h2B A−

N2:= t2 j t0 j h2⋅+:=

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5

50

100

150

200

y t2j( )EK_resj d⋅

t2j

Расчет фактической абсолютной погрешности:

max y s, N,( ) E 0←

max 0←

E si y ti( )−←

max E← E max>if

i 0 N..∈for

max

:=

max y EK_res, N,( ) 3.91066975566901 10 4−×=

Вывод: В ходе проведенного численного эксперимента было решено дифференциальноеуравнение второго порядка с постоянными коэффициентами методом сведенияего к системе линейных дифференциальных уравнений с последующим её решением по методу Эйлера-Коши. Была достигнута практическая абсолютная погрешность 3.91066975566901 10 4−× при заданной 10 3− .