национальный исследовательский томский политехнический университет
Скачать 1.38 Mb.
|
25 ?????? ??????, ̅ ?????? = ?????? ′ (?????? ?????? ) − ?????? ?????? ?????? ′′ (?????? ?????? ). (3.12) Погрешность ?????? ??????, ̅ ?????? − ?????? ′ (?????? ?????? ) , возникающая при замене дифференциального выражения ?????? ′ (?????? ?????? ) разностным выражением ?????? ??????, ̅ ?????? , называется погрешностью аппроксимации. Из разложения (3.12) видно, что погрешность аппроксимации является величиной ??????(??????) при ?????? → ??????. В этом случае говорят, что имеет место аппроксимация первого порядка. Приведём разложения, аналогичные (3.12), для других разностных отношений: ?????? ??????, ̅ ?????? = ?????? ′ (?????? ?????? ) + ?????? ?????? ?????? ′′ (?????? ?????? (??????) ) , ?????? ?????? (??????) ∈ (?????? ?????? , ?????? ??????+?????? ), (3.13) ?????? ??????, ̅ ?????? = ?????? ′ (?????? ?????? ) + ?????? ?????? ?????? ?????? ′′′ (?????? ?????? (??????) ) , ?????? ?????? (??????) ∈ (?????? ??????−?????? , ?????? ??????+?????? ). (3.14) Из разложения (3.14) видно, что центральная разностная производная аппроксимирует ?????? ′ (?????? ?????? ) со вторым порядком, и, следовательно, является более точным приближением к ?????? ′ (?????? ?????? ) , чем левая или правая разностные производные [5]. 3.2 Методы автоматического дифференцирования 3.2.1 Правило дифференцирования сложной функции (цепное правило) Основой для АД является разложение дифференциалов, обеспечиваемых цепным правилом. Для простого выражения ?????? = ?????? (??????(??????(??????))) = ?????? (??????(??????(?????? ?????? ))) = ??????(??????(?????? ?????? )) = ??????(?????? ?????? ) = ?????? ?????? (3.15) применение цепного правила даёт ???????????? ???????????? = ???????????? ???????????? ?????? ???????????? ?????? ???????????? ?????? ???????????? ?????? ???????????? (3.16) В основном, АД представлено двумя режимами: прямой режим вычисляет рекурсивное соотношение: ???????????? ?????? ???????????? = ???????????? ?????? ???????????? ??????−?????? ???????????? ??????−?????? ???????????? , ?????? ?????? = ??????. (3.17) 26 В приведённом выше примере (3.17) сначала вычисляется ???????????? ?????? ???????????? , а в последнюю очередь – ???????????? ???????????? обратный режим вычисляет рекурсивное соотношение: ???????????? ???????????? ?????? = ???????????? ???????????? ??????+?????? ???????????? ??????+?????? ???????????? ?????? , ?????? ?????? = ??????. (3.18) 3.2.2 Прямой режим При прямом накоплении сначала фиксируется независимая переменная, по которой выполняется дифференцирование, и рекурсивно вычисляется производная каждого подвыражения: ???????????? ???????????? = ???????????? ???????????? ??????−?????? ???????????? ??????−?????? ???????????? = ???????????? ???????????? ??????−?????? ( ???????????? ??????−?????? ???????????? ??????−?????? ???????????? ??????−?????? ???????????? ) = ⋯ (3.19) Обозначим числовое значение производной следующим образом: ??????̇ = ???????????? ???????????? (3.20) В качестве примера рассмотрим функцию: ?????? = ??????(?????? ?????? , ?????? ?????? ) = ?????? ?????? ?????? ?????? + ??????????????????(?????? ?????? ) = ?????? ?????? ?????? ?????? + ??????????????????(?????? ?????? ) = ?????? ?????? + ?????? ?????? = ?????? ?????? . (3.21) Выбор независимой переменной, по которой выполняется дифференцирование, влияет на начальные значения ??????̇ ?????? и ??????̇ ?????? . Предположим, что интересует производная этой функции по ?????? ?????? . В этом случае начальные значения должны быть установлены так: ??????̇ ?????? = ???????????? ?????? ???????????? ?????? = ??????, (3.22) ??????̇ ?????? = ???????????? ?????? ???????????? ?????? = ??????. (3.23) При установленном начальном значении можно затем вычислить значения, используя цепное правило, как показано в таблице 3.1 |