Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР Численные методы (Трухачев)

.pdf
Скачиваний:
22
Добавлен:
05.06.2015
Размер:
482.29 Кб
Скачать

4. Написать программу для расчета значения второй производной функции в некоторой точке. Для расчетов использовать формулу (4.6), принять, что абсолютная погрешность значений функции ∆ равна нулю.

Входные параметры программы:

точка расчета производной;

точность расчета ε. Выходные параметры программы:

значение шага разностной схемы h;

значение второй производной в точке;

оценка погрешности расчета второй производной (модуль разности точного и полученного значений).

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1.Отладить программу расчета первой производной функции

вточке с помощью разностных схем.

2.Провести расчеты hопт, значения первой производной в точ-

ке, величины минимальной полной абсолютной погрешности gмин .

3.Отладить программу расчета второй производной функции

вточке с помощью разностных схем.

4.Провести расчеты шага разностной схемы h, значения второй производной в точке, оценки погрешности расчета второй производной.

ОТЧЕТ О РАБОТЕ

В отчет о работе необходимо включить:

1.Название и цель лабораторной работы.

2.Постановку задачи.

3.Исходные данные: вид функции f(x), точку расчета значений первой и второй производной, формулы аппроксимации значений первой и второй производной, уровень абсолютных погрешно-

стей значений функции ∆, точность расчета ε для второй производной.

4. Аналитическую зависимость полной абсолютной погрешности аппроксимации первой производной от шага h, формулы расчета hопт, gмин , график зависимости g(h) .

41

5.Выходные результаты программы для расчета значения первой производной функции.

6.Выходные результаты программы для расчета значения второй производной функции.

7.Выводы о результатах расчетов.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Сформулируйте постановку задачи численного дифференцирования функций. В чем состоит актуальность применения численных методов?

2.Выведите частные формулы аппроксимации первой производной на равноотстоящих узлах, основываясь на линейной интерполяции функции.

3.Выведите частные формулы аппроксимации первой производной на равноотстоящих узлах, основываясь на интерполяции функции полиномом второй степени.

4.Выведите остаточные члены формул (4.1) и (4.2). Какой порядок точности относительно шага h они имеют?

5.Выведите остаточные члены формул (4.3)-(4.5). Какой порядок точности относительно шага h они имеют?

6.Выведите остаточный член формулы (4.6). Какой порядок точности относительно шага h она имеет?

7.Как можно оценить шаг формул численного дифференцирования для достижения требуемой точности? Существует ли оптимальный шаг?

 

 

 

Пример варианта

Функция f(x):

1

.

 

 

 

 

 

 

 

 

1 + x2

Точка расчета:

x=0.

Формула аппроксимации значений первой производной:

(4.3).

Уровень абсолютных погрешностей значений функции:

∆=3×10-6.

Точность расчета: ε=4×10-4.

42

СПИСОК РЕКОМЕНДОВАННОЙ ЛИТЕРАТУРЫ

1.Вержбицкий В.М. Основы численных методов. М.: Высшая школа, 2002.

2.Волков Е.А. Численные методы. М.: Наука, 1982.

43

Работа 5

МЕТОДЫ РЕШЕНИЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

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

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Будем рассматривать обыкновенное дифференциальное уравнение (ОДУ) первого порядка

y′ = f ( x, y),

x [x0 , b]

(5.1)

с начальным условием

y( x0 ) = y0 ,

(5.2)

где f(x, y) – некоторая заданная, в общем случае нелинейная функция двух переменных. Будем считать, что для данной задачи (5.1)- (5.2), называемой задачей Коши, выполняются требования, обеспечивающие существование и единственность на отрезке [x0, b] её решения y=y(x).

Будем рассматривать решение этой задачи в виде числовой таблицы приближенных значений yi искомого решения y(x) на некоторой сетке xi [x0 ,b] значений аргумента x. Если речь идет о

нахождении только значения y(b), тогда точка b включается как конечная в систему расчетных точек xi и все приближенные значения yi y( xi ) , кроме последнего, участвуют лишь как промежу-

точные, т.е. не требуют ни запоминания, ни обработки. Если же нужно иметь приближенное решение у(х) в любой точке х, то для этого к получаемой числовой таблице значений yi можно применить какой-либо из способов аппроксимации табличных функций, например, полиномиальную интерполяцию или сплайнинтерполяцию. Возможны и другие использования численных данных о решении.

Метод Эйлера решения задачи Коши

Метод Эйлера является наиболее простым методом решения задачи Коши. Покажем получение формулы расчета и оценки по-

44

грешности на основании разложения в ряд Тейлора. Согласно ей y(x) в окрестности точки х0 можно записать как

y( x) = y( x0 ) + y′( x0 )( x x0 ) + y′′(ξ ) ( x x0 )2 . 2

Отсюда при х=х1 получаем:

y( x1 ) = y0 + hf ( x0 , y0 ) + y′′(ξ1 ) h2 , 2

где y0=y(x0) – начальное условие задачи Коши, h=x1x0 – шаг сетки, f(x0,y0)=y´(x0) – значение производной y´(x) в точке x0, ξ1 – некоторая точка интервала (x0, x1).

Это равенство можно переписать в виде

 

 

 

 

y( x1 ) = y1 + r1 (h) ,

 

где

 

 

 

 

 

y1 = y0 + hf ( x0 , y0 )

– формула метода Эйлера,

(5.3)

r (h) =

y′′(ξ1 )

h2

остаточный член формулы, который харак-

 

1

2

 

 

 

 

 

 

 

 

 

теризует локальную (или шаговую) ошибку метода Эйлера, т.е. ошибку, совершаемую на одном шаге. При многократном применении формулы (5.3) возможно наложение ошибок, поэтому глобальная ошибка, которая образуется в точке b, будет иметь порядок (относительно шага h) на единицу ниже, чем порядок локальной ошибки, т.е. O(h).

В общем виде формула метода Эйлера имеет вид

yi+1 = yi + hf ( xi , yi ) .

(5.4)

Семейство методов Рунге– Кутта второго порядка

Идея построения явных методов Рунге– Кутта заключается в получении приближений к значениям f(xi+1) по формуле вида

yi +1 = yi + hϕ ( xi , yi , h) .

(5.5)

В качестве функции ϕ ( x, y, h) берут многопараметрическую

функцию и подбирают её параметры сравнением выражения (5.5) с многочленом Тейлора для y(x) соответствующей степени.

Для методов второго порядка функция ϕ ( x, y, h) будет иметь вид

45

 

h

 

h

 

ϕ ( x, y, h) = (1 − α ) f ( x, y) + αf x +

 

, y +

 

f ( x, y) ,

 

 

 

где 0 < α ≤ 1 – параметр.

 

 

 

 

С учетом этого получаем из (5.5) вид однопараметрического семестра методов Рунге– Кутта второго порядка:

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

h

 

 

 

yi +1 = yi

+ h (1

− α ) f ( xi , yi ) + αf

xi

+

 

 

 

, yi

+

 

 

 

f ( xi , yi

)

. (5.6)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отсюда при α =

1

можно получить формулу,

определяющую

 

метод Хойна:

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yi +1

= yi +

h

[ f ( xi , yi ) + f (xi

+ h, yi

 

+ hf ( xi , yi ))].

 

(5.7)

 

 

А при α = 1 –

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

метод средней точки:

 

 

 

 

 

 

 

 

 

 

 

yi +1 = yi

+ hf xi

+

h

, yi

+

h

f ( xi

, yi

) .

 

 

(5.8)

 

 

 

 

 

 

 

 

 

 

 

 

2

 

2

 

 

 

 

 

 

 

 

Оба эти метода имеет глобальную погрешность порядка O(h2).

Метод Рунге– Кутта четвертого порядка

Данный метод является наиболее употребительным частным случаем семейства методов Рунге– Кутта. Его можно отнести к четырехэтапным, за счет следующей структуры расчетов нового приближения yi+1:

 

i

= f (xi , yi );

 

 

 

 

 

 

 

 

 

 

 

 

η1

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

h

 

 

 

 

h

 

 

 

i

 

 

η2

=

f xi +

 

, yi

+

 

 

 

η1

;

 

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

h

 

 

 

 

h

 

 

 

i

 

 

 

η

 

=

f x +

 

 

, y

 

+

 

 

η

 

;

 

(5.9)

 

 

2

 

 

2

 

 

 

3

 

 

 

 

 

i

 

 

i

 

 

 

 

 

2

 

 

η i

= f (x + h, y

+hη i

);

 

 

 

 

4

 

 

 

 

 

i

 

i

 

 

 

 

3

 

 

 

 

 

 

 

 

=

h

(ηi + 2η i

+ 2η i

+

ηi

);

y

 

i

 

 

 

 

6

 

1

 

 

 

2

 

 

 

 

 

 

3

 

4

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

= y

i

 

y .

 

 

 

 

 

 

 

 

 

 

 

 

 

i +1

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

Данный метод имеет глобальную погрешность порядка O(h4).

46

Многошаговые методы Адамса

Для построения формул многошаговых методов Адамса предположим, что уже найдено несколько приближенных значений

y j y( x j ) (j=0,1,…,i ) решения y=y(x) задачи (5.1)-(5.2) на равномерной сетке xj=x0+jh, и нужно получить правило для вычисления очередного значения yi+1 y( xi+1) . Проинтегрировав левую и правую части уравнения (5.1) по промежутку [xi, xi+1], получим

xi+1

y( xi+1 ) = y( xi ) + f ( x, y( x))dx .

xi

Подставим под интеграл вместо функции f(x, y(x)) интерполирующий её многочлен Pk(x). Для этого используем известные дискретные приближенные значения f ( x j , y j ) » f ( x j , y( x j )) , которые

обозначим через fj (j=0,1,…,i ). Рассмотрим два случая построения

Pk(x):

1.Интерполирование назад из узла хi по второй интерполяци- онной формуле Ньютона.

Вэтом случае

Pk (x) = Pk (xi

+ qh) = fi

+ qDfi −1

+

q(q +1)

D2 fi −2 + ... +

 

 

 

 

2!

 

+ q(q +1) ×... × (q + k -1) Dk fi k , k!

где q = x - xi . h

После подстановки этого выражения под знак интеграла, получим:

xi+1

1

yi +1 = yi + Pk (x)dx =yi + hPk (xi + qh)dq =

xi

0

 

 

 

 

 

1

 

 

 

5

2

 

 

3

3

 

 

251

4

= y + h

f

 

+

 

Df

i −1

+

 

 

D f

i −2

+

 

D f

i −3

+

 

D

 

2

12

8

720

i

 

 

i

 

 

 

 

 

 

 

 

Интересен вид этих формул для случаев k=0,1,2:

при k=0

yi +1 = yi + f ( xi , yi ) ;

fi −4

 

+ ... .

 

 

(5.10)

47

при k=1

y

= y +

h

[3 f (x , y ) - f (x

, y

)];

 

i +1

i

2

i i

i −1

i −1

 

 

 

 

 

 

 

при k=2

yi +1 = yi + h [23 f (xi , yi ) -16 f (xi −1, yi −1) 12

Эти формулы определяют, соответственно, Башфорта первого, второго и третьего порядков.

(5.11)

+ 5 f (xi −2 , yi −2 )].

(5.12)

метод Адамса–

2.Интерполирование назад из узла хi+1 по второй интерполя- ционной формуле Ньютона.

Вэтом случае

~

~

 

 

 

q(q +1) 2

 

Pk

(x) = Pk

(xi +1

+ qh) = fi +1 + qDfi

+

 

D

fi −1

+ ... +

2!

 

 

 

 

 

 

 

 

+ q(q +1) ×... × (q + k -1) Dk fi k +1, k!

где q = x - xi . h

После подстановки этого выражения под знак интеграла, получим:

xi+1

~

(x)dx =yi

0

~

 

+ qh)dq =

 

 

(xi +1

yi +1 = yi + Pk

+ h Pk

xi

 

 

−1

 

 

 

 

 

 

 

 

1

 

 

= y

+ h

f

i +1

-

 

Df

 

2

 

i

 

 

 

 

i

 

1

2

 

1

3

 

19

4

 

 

-

 

 

D fi −1

-

 

D fi −2

-

 

D

fi −3

+ ... .

12

24

720

 

 

 

 

 

 

 

 

Аналогично рассмотрим несколько частных случаев для k=0,1,2:

при k=0

yi +1

= yi + f ( xi +1 , yi +1 ) ;

(5.13)

при k=1

 

 

 

 

yi +1

= yi

+

h

[ f ( xi+1 , yi +1 ) + f ( xi , yi )];

(5.14)

 

 

 

2

 

 

при k=2

yi +1 = yi

+

h

[5 f ( xi+1 , yi+1 ) + 8 f ( xi , yi ) - f ( xi −1 , yi −1 )].

 

 

12

 

(5.15)

48

Эти формулы определяют, соответственно, метод Адамса– Моултона первого, второго и третьего порядков.

Важным отличием методов Адамса– Башфорта от методов Адамса– Моултона является то, что первые из них являются явными, а вторые – неявными, в них значение yi+1 определяется через значение f(xi+1,yi+1). Поэтому наиболее часто встречается использование неявных методов совместно с явными одинакового или смежного порядка. Такой подход получил название методов прогноза и коррекции.

В этих методах значение yi+1 рассчитывается на каждом шаге в два этапа: на первом применяется явная формула и получается про-

гнозное значение yiпрогноз+1 , а на втором этапе это значение уточняет-

ся с помощью неявного метода. Можно записать следующие методы прогноза и коррекции первого, второго и третьего порядков:

yпрогноз = y

+ f (x , y );

i+1

i

 

i i

 

 

yi +1 = yi + f (xi +1

, yпрогноз);

 

 

 

i+1

 

 

 

 

 

 

 

прогноз

= yi

+

 

h

[3 f (xi , yi ) − f (xi−1 , yi −1 )];

 

 

 

 

y i+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

прогноз

 

 

 

 

 

yi +1

 

= yi

+

 

[f (xi +1 , y i+1

) + f (xi , yi )];

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

прогноз

= yi

+

 

h

[23 f (xi , yi ) −16 f (xi−1 , yi−1 ) + 5 f (xi−2 , yi−2 )];

y i+1

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

прогноз

 

 

yi +1

= yi

+

 

 

 

[5 f (xi+1 , y i+1

 

) + 8 f (xi , yi ) − f (xi−1 , yi−1 )].

12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Преимуществом многошаговых методов перед одношаговыми является более простая процедура расчета нового приближения yi+1, для чего зачастую достаточно рассчитать всего одно новое значение функции f(x, y) и использовать значения, рассчитанные на предыдущих шагах. Как недостаток – необходимость иметь несколько рассчитанных приближений на начала расчетов. Этот недостаток можно компенсировать использованием на этапе старта многошагового метода одного из одношаговых. При этом рекомендуется выбирать одношаговый метод того же или более высокого

49

порядка точности, что и многошаговый, для обеспечения необходимой точности решения.

Контроль точности решения задачи Коши

Выведение надежных и в то же время простых и эффективных оценок погрешности, гарантирующих получение таблицы значений решения у=у(х) заданной точности, является делом малоперспективным, особенно для методов более-менее высоких порядков. Поэтому главным способом отслеживания точности при реализации численных процессов решения задачи Коши остается применение различных полуэмпирических правил, основанных на принципе Рунге.

Будем считать, что при использовании метода р-го порядка абсолютная шаговая погрешность должна находиться в пределах ε > 0 . Тогда, согласно принципу Рунге, осуществляется счет по

системе

узлов

xi(h)=x0+ih с шагом h и по системе узлов

h

 

 

h

 

 

h

 

 

 

x j

 

= x0 + j

 

с шагом

 

 

.

При четных j вторая система будет

 

 

 

2

 

2

 

2

 

 

 

 

совпадать с первой, т.е. xi

(h) = x2i

h

. Переход от расчетной точки

 

 

 

 

 

 

 

 

 

 

2

xi, с приближенным значением решения в ней yi, к расчетной точке xi+1 один раз совершается за один шаг длины h и приводит к значению yi +1 (h) ≈ y( xi+1 (h)) , другой раз совершается за два шага длины

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

h

= x2i +1

h

 

 

 

 

 

 

 

(через

 

 

точку

 

xi

 

 

 

 

со

значением

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

2

 

 

 

 

 

h

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

y2i+1

 

 

 

 

 

y xi

+

 

 

)

 

 

и

 

 

 

дает

 

значение

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

y

2i+2

 

 

 

y x

2i+2

 

 

 

= y( x

i +1

(h)) .

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

Оценка погрешности в таком случае будет составлять величину

h = Ri

2

 

h

 

yi +1

(h)

y2i+2

 

 

 

 

 

2

 

 

 

.

 

2 p − 1

 

 

 

 

50

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