Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Практическая оценка погрешности. Метод Рунге-Ромберга






Рассмотрим метод Рунге для повышения порядка точности формул для вычисления производных на примере формулы (5.11):

 

. (5.44)

 

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

 

. (5.45)

 

Вычислим по формуле (5.44) вторую производную в той же точке xi, но используя сетку с шагом 2 h:

 

. (5.46)

 

Погрешность формулы (5.46) имеет вид:

 

. (5.47)

 

Вычитая (5.45) из (5.47), получим

 

. (5.41)

 

Отсюда для погрешности получим первую формулу Рунге:

 

(5.42)

 

Теперь вторую производную в точке xi можно вычислить по уточненной формуле (второй формуле Рунге):

 

. (5.43)

 

Пример 5.6. Вычислить производную второго порядка функции
y = sin π x в точке x = 0, 4 по второй формуле Рунге, используя разностные формулы с шагом 0, 1 и 0, 2.

Решение. Воспользуемся приближенными значениями второй производной, найденными с помощью разностных формул в примере 5.2:

 

 

Очевидно, что полученное значение более точно приближает вторую производную, чем разностная формула с шагом 0, 1 или 0, 2.

Пример 5.7. Вычислить производную функции y = sin π x в точке x = 0, 574 с точностью 0, 01.

Решение. Создадим в программе Excel макрос — функцию для вычисления производной функции f (x) в произвольной точке x с заданной точностью ε при помощи формулы (5.34):

 

(5.44)

 

Для оценки погрешности будем использовать правило Рунге. Шаг h будет подбираться автоматически так, чтобы выполнялось условие

 

. (5.45)

 

Значение производной будем вычислять по уточненной формуле

 

(5.46)

 

Выберем меню «Сервис — Макрос — Редактор Visual Basic», в открывшемся окне выполним команду «InsertModule», и введем описания функций:

 

Function f(ByVal x)

f = Sin(3.1415926 * x)

End Function

Function f_deriv(ByVal x, ByVal eps)

h = 0.1

errd = 1

h2 = h * 2

d = (f(x + h) - f(x - h)) / h2

While Abs(errd) > eps

h2 = h

h = h / 2

d2 = d

d = (f(x + h) - f(x - h)) / h2

errd = (d - d2) / 3

Wend

f_deriv = d + errd

End Function

 

В таблице 5.10 приведены результаты расчетов. Поясним заполнение таблицы. В ячейках B 2, C 2, D 2 и E 2 соответственно введем формулы, как показано в табл. 5.9.

 

Таблица 5.9

  A B C D E
  x sin(π * x) π *cos(π * x) f_deriv(x; 0, 01) Погрешность
    =f(A2) =ПИ()*COS(ПИ()*A2) =f_deriv(A2; 0, 01) =ABS(C2-D2)

 

Выделим диапазон A 2: E 2 и маркером заполнения протягиваем эти ячейки до строки 12.

Заполняем столбец A 2: A 12, как в табл. 5.10.

Таблица 5.10

  A B C D E
  x sin(π *x) π *cos(π *x) f_deriv(x; 0, 01) Погрешность
  0, 00   3, 1415926 3, 141588618 3, 98171E-06
  0, 10 0, 309016989 2, 987832119 2, 987828332 3, 78683E-06
  0, 20 0, 587785244 2, 541601823 2, 541598601 3, 22127E-06
  0, 30 0, 809016985 1, 84658184 1, 846544476 3, 73638E-05
  0, 40 0, 95105651 0, 970805567 0, 970785924 1, 96433E-05
  0, 50   8, 41786E-08 8, 41769E-08 1, 70305E-12
  0, 60 0, 951056526 -0, 970805407 -0, 970785763 1, 96433E-05
  0, 70 0, 809017016 -1, 846581704 -1, 84654434 3, 73638E-05
  0, 80 0, 587785287 -2, 541601724 -2, 541598502 3, 22127E-06
  0, 90 0, 30901704 -2, 987832067 -2, 98782828 3, 78683E-06
  1, 00 5, 35898E-08 -3, 1415926 -3, 141588618 3, 98171E-06

 

Замечание. Погрешность в столбце E получилась намного меньше, чем 0, 01 из-за того, что вместо формулы (5.44) использовали уточненную формулу (5.46).






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.