Тема 3. Численное дифференцирование

advertisement
Столярчук В.А. Численные методы. Материалы к занятиям. Тема 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 :
Здесь: yn1  yn  yn1 , откуда 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 y2  3 y1 1 5 y3  5 y2
y0  f ( x0 )   1


 ...... 
h
2
6
2
30
2

Здесь:……… y3  y2  y3 ; y2  y1  y2 ; y1  y0  y1 ; y0  y1  y0 ; y1  y2  y1
; y2  y3  y2 ; ….. yn1  yn  yn1
Столярчук В.А. Численные методы. Материалы к занятиям. Тема 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
= :
ℎ
Download