Столярчук В.А. Численные методы. Материалы к занятиям. Тема 3. Численное дифференцирование 3. Численное дифференцирование. Задание на лабораторные занятия 15.04.15 и 29.04.15 в терминальном зале кафедры ауд. 717 корпуса 24 c 9:00. 1. Перевести на Фортран программы, составленные на Паскале, для определения первых производных левыми, правыми и центральными разностями для ранее выбранной функции (для невыполнивших задание на Паскале, составить программы сразу на Фортране - это будет возможность реабилитироваться отстающим). Проверить совпадение новых результатов работы пронграмм, составленных на Паскале и Фортране. Сделать вывод. 2. Составить программы на Фортране для определения первых производных в той же точке той же функции по формуле дифференцирования на основе первой инерполяционной формулы Ньютона и на основе формулы Стирлинга. Сравнить результаты, провести анализ и сделать выводы. 3. Оформить в виде отчета и переслать на проверку преподавателю. 3.1. Вычисление производных конечно-разностными формулами Три способа нахождения производной функции конечно-разностными формулами. 1. Формула левой односторонней разности: ( 𝑑𝑦 𝑦𝑘 − 𝑦𝑎 ) ≈ 𝑑𝑥 𝑘 ℎ𝑎𝑘 2. Формула правой односторонней разности: ( 𝑑𝑦 𝑦𝑏 − 𝑦𝑘 ) ≈ 𝑑𝑥 𝑘 ℎ𝑘𝑏 3. формула центральной разности. ( 𝑑𝑦 𝑦𝑏 − 𝑦𝑎 ≈ 𝑡𝑔(𝛼) ) ≈ 𝑑𝑥 𝑘 ℎ𝑎𝑘 + ℎ𝑘𝑏 Столярчук В.А. Численные методы. Материалы к занятиям. Тема 3. Численное дифференцирование Поясняющий рисунок ниже. Z c a k b d x Нахождение производной в точке x0 от заданной функции y (x) с точностью можно проводить примерно по следующему алгоритму: Задаем точку x0 , начальное приращение x , точность и некоторое очень маленькое число и переходим к алгоритму подсчета производной от функции f (x) в точке x0 : Шаг 1. Вычисляем x1 x0 x и x1 x0 x , для которых находим y1 y( x1 ) и y2 y( x2 ) ; Шаг 2. Вычисляем производную в точке x0 по формуле, например, y 2 y1 ; 2 x Проверяем выполнение условия abs( 0 ) . Если выполнялось, то центральных разностей: 0 y0 искомая производная равна 0 и происходит выход из алгоритма, если не выполнялось, то проводим переприсвоение 0 , задаем новый шаг x x и переходим к выполнению шага 1. 2 Столярчук В.А. Численные методы. Материалы к занятиям. Тема 3. Численное дифференцирование Задание к дифференцированию конечно-разностными формулами 1. Выбрать дифференцируемую функцию для исследования. 2. Посчитать точное значение производной в некоторой точке k при 𝑥𝑘 . 3. Описать способы нахождения производной конечно-разностными формулами. 4. Написать программу (или программы), с помощью которой (ых) найти значение производной в заданной точке 𝑥𝑘 .с точность eps=0.001 тремя конечно-разностными формулами (левая, правая и центральная разность), задавая шаг сначала h (слева и справа от выбранной точки), равный какому-либо разумному числу, а потом уменьшая его для достижения заданной точности. 5. Сравнить результаты 6. Сделать выводы. 3.2. Вычисление производных с помощью интерполирующих полиномов Этот способ можно применять как в случае, когда формула есть, так и когда функция задана таблицей значений с равноотстоящим шагом по аргументу. Если формула функция есть, то мы её представляем таблицей значений с равноотстоящим шагом по аргументу, просто вычисляя значения этой функции по заданной формуле. Если формулы для функции нет, а функция задана таблицей значений функции с равноотстоящим шагом по аргументу, то алгоритм численного дифференцирования с использованием таблично заданной функции основывается на следующем. Поскольку любую функцию, заданную таблично, можно представить интерполяционным многочленом, выбрав какое-нибудь множество из n 1 узлов, то формулу производной от интерполяционного многочлена n (x) можно использовать в качестве Столярчук В.А. Численные методы. Материалы к занятиям. Тема 3. Численное дифференцирование приближенного значения производной таблично заданной функции y( x) n ( x) . Формулы дифференцирования на основе первой инерполяционной формулы Ньютона Для нахождения первой и второй производных функции y ( x) f ( x) функцию у, заданную в равноотстоящих точках xi (i = 0, 1, 2, …,n) отрезка [a,b] значениями yi f ( xi ) , приближенно заменяют интерполяционным многочленом Ньютона, построенным для системы узлов xi : Здесь: yn1 yn yn1 , откуда y0 y1 y0 ; y1 y2 y1 ; y2 y3 y2 ; ….. Разности высших порядков будут: 2 y0 y1 y0 y2 y1 ( y1 y0 ) y2 2 y1 y0 2 y1 y2 y1 y3 y2 ( y2 y1 ) y3 2 y2 y1 3 y0 2 y1 2 y0 ( y3 2 y2 y1 ) ( y2 2 y1 y0 ) y3 3 y2 3 y1 y0 3 y1 2 y2 2 y1 ( y4 2 y3 y2 ) ( y3 2 y2 y1 ) y4 3 y3 3 y2 y1 т y1 yт myт 1 m(m 1) yт 1..... y 1 2 Раскрывая скобки и учитывая, что получим: Теперь можно вычислить первую производную в любой точке 𝑥𝑖 (𝑖 = 0,1, 2, 3, …., n) отрезка [a,b], подставив в эту формулу 𝑥𝑖 . Аналогично, учитывая, что 𝑦 ′′ = 𝑑(𝑦 ′ ) 𝑑𝑥 = 𝑑(𝑦 ′ ) 𝑑𝑞 𝑑𝑞 ∙ 𝑑𝑥 2 = 1 ℎ ∙ 𝑑(𝑦 ′ ) 𝑑𝑞 , получим: 1 2 6𝑞 − 18𝑞 + 11 4 3 (𝑞 𝑦 + − 1) ∙ ∆ 𝑦 + ∙ ∆ 𝑦0 + ⋯ ] [∆ 0 0 ℎ2 12 Таким же образом можно при необходимости вычислить производную функции y(x) любого порядка. Заметим, что при вычислении производных в фиксированной точке x , не входящей в перечень 𝑥𝑖 , в качестве 𝑥0 следует брать ближайшее табличное значение аргумента. 𝑦 ′′ (𝑥) = Столярчук В.А. Численные методы. Материалы к занятиям. Тема 3. Численное дифференцирование Задание. 1. Использовать дифференцируемую функцию yi f ( xi ) , для которой находили производную конечно-разностными формулами в точке 𝑥𝑘 . 2. Задать интервал, образованный значениями 𝑥𝑘 -5 и 𝑥𝑘 +5. Разбить интервал на 100 отрезков и для каждого xi (i = 0, 1, 2, …,100) подсчитать значения yi f ( xi ) . В дальнейшем работать с функцией yi f ( xi ) , представленной таблично. 3. Подсчитать первую производную от функции yi f ( xi ) в точке с координатой xi =𝑥𝑘 по формуле подсчета первой производной, выведенной на основе первой инерполяционной формулы Ньютона, при этом: а) сначала использовать только один член формулы, а именно y0 , затем два ( y0 2q 1 2 2q 1 2 3q 6q 2 3 y0 ),потом три y0 y0 y0 , потом 2 2 6 четыре. 4. Результаты сравнить с теоретическим значением и между собой, сделать выводы. 5. На повышенную оценку – по формуле Стирлинга тоже для четырех слогаемых. На основе интерполяционного полинома Стирлинга. Обычно формулы численного дифференцирования применяют для нахождения производных в узлах xi , а так как при этом любую точку можно принимать за начальную, то формулы записывают для x0 . Формулы численного дифференцирования, рассмотренные ранее, используют лишь значения функции при 𝑥 > 𝑥0 . Более точный результат дают центральные формулы дифференцирования, которые учитывают значения данной функции как при 𝑥 > 𝑥0 так и при 𝑥 < 𝑥0 . Одна из подобных формул получается, если за основу взять интерполяционную формулу Стирлинга. Приводимые ниже формулы численного дифференцирования применяются в тех случаях, когда функция y ( x) f ( x) задана таблично ( yi f ( xi ) в равносторонних узлах xi x0 ih (i 0,1,2....) . При этом x0 находится в середине таблицы. Пусть …, 𝑥−3 , 𝑥−2 , 𝑥−1 , 𝑥0 , 𝑥1 , 𝑥2 , 𝑥3 , … .. шагом𝑥𝑖+1 − 𝑥𝑖 . Значения данной функции в этих точках yi f ( xi ) . 1 y y0 1 3 y2 3 y1 1 5 y3 5 y2 y0 f ( x0 ) 1 ...... h 2 6 2 30 2 Здесь:……… y3 y2 y3 ; y2 y1 y2 ; y1 y0 y1 ; y0 y1 y0 ; y1 y2 y1 ; y2 y3 y2 ; ….. yn1 yn yn1 Столярчук В.А. Численные методы. Материалы к занятиям. Тема 3. Численное дифференцирование Разности высших порядков будут: 2 y1 y2 y1 y3 y2 ( y2 y1 ) y3 2 y2 y1 3 y1 2 y2 2 y1 ( y4 2 y3 y2 ) ( y3 2 y2 y1 ) y4 3 y3 3 y2 y1 т y1 yт myт 1 m(m 1) yт 1..... y 1 2 Несколько иная запись производных по формуле Стирлинга. 𝑥−𝑥0 Полагая 𝑞 = и заменяя функцию интерполяционным полиномом ℎ Стирлинга, получим с учетом Здесь: и т.д. 𝑑𝑞 𝑑𝑥 1 = : ℎ