национальный исследовательский томский политехнический университет
Скачать 1.38 Mb.
|
23 3 АЛГОРИТМЫ АВТОМАТИЧЕСКОГО ДИФФЕРЕНЦИРОВАНИЯ И ИХ ПРОГРАММНАЯ РЕАЛИЗАЦИЯ 3.1 Методы численного дифференцирования 3.1.1 Теория дифференцирования Пусть функция ?????? = ??????(??????) определена в промежутке ??????. Исходя из некоторого значения ?????? = ?????? ?????? независимой переменной придадим ему приращение ???????????? ≶ ??????, не выводящее его из промежутка ??????, так что и новое значение ?????? ?????? + ???????????? принадлежит этому промежутку. Тогда значение ?????? ?????? = ??????(?????? ?????? ) функции заменится новым значением ?????? ?????? + ???????????? = ??????(?????? ?????? + ????????????), т. е. получит приращение ???????????? = ????????????(?????? ?????? ) = ??????(?????? ?????? + ????????????) − ??????(?????? ?????? ) . (3.1) Если существует предел отношения приращения функции ???????????? к вызвавшему его приращению независимой переменной ????????????, при стремлении ???????????? к нулю, т. е. ?????????????????? ????????????→?????? ???????????? ???????????? = ?????????????????? ????????????→?????? ??????(?????? ?????? +????????????)−??????(?????? ?????? ) ???????????? , (3.2) то он называется производной функции ?????? = ??????(??????) по независимой переменной ?????? при данном её значении (или в данной точке) ?????? = ?????? ?????? Таким образом, производная при данном значении ?????? = ?????? ?????? – если существует – есть определённое число; если же производная существует во всём промежутке ??????, т. е. при каждом значении ?????? в этом промежутке, то она является функцией от ?????? [4]. 3.1.2 Аппроксимации первой производной Пусть сеткой на отрезке [??????, ??????] называется любое конечное множество точек этого отрезка. Функция, определённая в точках сетки, называется сеточной функцией. Будем обозначать через ?????? ?????? сетку, удовлетворяющую условиям 24 ?????? = ?????? ?????? < ?????? ?????? < ?????? ?????? < ⋯ < ?????? ??????−?????? < ?????? ?????? = ??????, (3.3) и через ?????? ?????? – значение сеточной функции ??????(??????) в точке ?????? ?????? ∈ ?????? ?????? . Равномерной сеткой на отрезке [??????, ??????] называется множество точек ?????? ?????? = {?????? ?????? = ????????????, ?????? = ??????, ??????, … , ?????? }, (3.4) где ?????? = ??????/?????? – шаг сетки. Множество внутренних точек сетки ?????? ?????? , когда ?????? ≠ ??????, ?????? ≠ ?????? будем обозначать через ?????? ?????? , т. е. положим ?????? ?????? = {?????? ?????? = ????????????, ?????? = ??????, … , ?????? − ?????? }. (3.5) Рассмотрим задачу приближённого вычисления производных функции ??????(??????), определённой и достаточно гладкой на отрезке [??????, ??????]. Введём согласно (3.5) сетку ?????? ?????? и обозначим ?????? ?????? = ??????(?????? ?????? ), (3.6) ?????? ??????, ̅ ?????? = (?????? ?????? − ?????? ??????−?????? )/??????, (3.7) ?????? ??????, ̅ ?????? = (?????? ??????+?????? − ?????? ?????? )/??????, (3.8) ?????? ??????, ̅ ?????? = (?????? ??????+?????? − ?????? ??????−?????? )/(????????????). (3.9) Выписанные здесь разностные отношения называются, соответственно, левой, правой, и центральной разностными производными функции ??????(??????) в точке ?????? = ?????? ?????? . Если точка ?????? = ?????? ?????? фиксирована, а шаг ?????? стремится к нулю (при этом ?????? → ∞), то каждое из упомянутых разностных отношений стремится к значению производной функции ??????(??????) в точке ?????? = ?????? ?????? . Поэтому в качестве приближённого значения ?????? ′ (??????) можно взять любое из этих разностных отношений. Нетрудно получить выражение для погрешности, возникающей при замене дифференциального выражения разностным. Рассмотрим, например, левую разностную производную в точке ?????? = ?????? ?????? и запишем её в виде ?????? ??????, ̅ ?????? = ??????(??????)−??????(??????−??????) ?????? (3.10) По формуле Тейлора получим ??????(?????? − ??????) = ??????(??????) − ???????????? ′ (??????) + ?????? ?????? ?????? ?????? ′′ (??????), ?????? ∈ (?????? − ??????, ??????), (3.11) следовательно |