Мегаобучалка Главная | О нас | Обратная связь


Дискретизация функций одной переменной



2015-11-20 662 Обсуждений (0)
Дискретизация функций одной переменной 0.00 из 5.00 0 оценок




 

Рассмотрим некоторую функцию (х), заданную на отрезке
[xmin, xmax], и множество точек {xk}={x1, x2 … xK}, лежащих в пределах этого отрезка (рис. 2). Перенумеруем элементы множества {xk} “по возрастанию”, т.е. будем считать, что xk-1<xk. Элементы множества {xk} в дальнейшем будут называться сеточными узлами, расстояние между соседними узлами Δхk=xk+1-xkшагомсетки, а само множество {xk} – сеткой. Отображение множества сеточных узлов {xk} на множество значений функции (х), такое что Ф(хk)= , называют сеточной функцией. Для сокращения записи, в дальнейшем мы будем использовать обозначение Фk=Ф(хk).

Зачем нам потребовалось введение понятия сеточной функции? Дело в том, что, в силу конструктивных особенностей современных цифровых ЭВМ, при численном решении математических уравнений мы вынуждены заменять функции непрерывного аргумента их сеточными представлениями[12].

Рис. 2. Сетка {xk}={x1, x2 … xK} и множество значений сеточной функции {Фk}

 

Представляется очевидным, что, используя различные сетки, мы можем сопоставить данной функции целый ряд её сеточных представлений. И наоборот, имея в своем распоряжении лишь сеточную функцию, мы можем сопоставить ей целый ряд непрерывных восполнений[13]. Исследование свойств сеточных функций, а также методов построения и свойств восполнений – одна из задач вычислительной математики.

Наша ближайшая задача заключается в оценке величины производной функции[14] по значениям сеточной функции Ф. Вспоминая определение понятия производной, отметим, что такие оценки (аппроксимации) могут быть получены при помощи одностороннего конечно-разностного отношения назад:

; (9a)

одностороннего конечно-разностного отношения вперед:

; (9b)

и центрального (трехточечного) конечно-разностного отношения:

. (9c)

 

Важно понимать, что величины , и являются оценками, они не обязательно должны быть равными, а при переходе к другой сетке {xk} они могут изменяться. В то же время, с геометрической точки зрения, приведенные конечно-разностные аппроксимации равны тангенсам углов наклона прямых, проведенных через соответствующие точки кривой (х), и, при “достаточно” малой величине шага Δх, мы вправе ожидать, что они будут близки к величине тангенса угла наклона касательной к кривой (х) в точке хk.

Для того, чтобы оценить погрешность оценок (9), разложим функцию (х) в ряд Тейлора относительно некоторой точки х*, лежащей между хk-1 и xk. При этом для её узловых значений можно записать:

 

Тогда, например, для случая (9a) будем иметь:

(10)

Учитывая, что для всех точек х*, лежащих в пределах отрезка
(xk-1,xk), = =const, а величина последнего члена в (10) сопоставима с длиной отрезка , мы можем окончательно записать[15]:

(11)

 

Очевидный вывод из формулы (11) заключается в том, что для повышения качества конечно-разностной аппроксимации производной функции (х) нам следует уменьшать шаг сетки. Другой путь улучшения оценки производной связан с использованием большего объема информации о значениях функции в узлах сетки. Например, можно показать, что пятиточечная симметричная аппроксимация, полученная для случая сетки, имеющей постоянный шаг Dх, имеет точность порядка Dх4:

(12)

 

За увеличение точности приходится "платить" увеличением объема вычислительной работы: при использовании формул (9) нам необходимо выполнить два арифметических действия[16], а при использовании формулы (12) – семь арифметических действий.

В таблице 3.1 приведены результаты расчета производной функции (х)=sin(x) при х=0,5 на сетке с шагом Dх=0,05.

 

Таблица 3.1

Способ расчета Результат Ошибка
Точное значение 0.87758 ‑‑‑
Разностное отношение назад (8а) 0.88920 1.162×10-2
Разностное отношение вперед (8b) 0.86523 -1.235×10-2
Трехточечная (симметричная) аппроксимация (8с) 0.87722 -3.7×10-4
Пятиточечная симметричная аппроксимация (11) 0.87758 -1.8 ×10-7

 

Данные табл. 3.1 полностью подтверждают полученные выше выводы о связи погрешности конечно-разностных аппроксимаций с величиной шага сетки Dх. При рассмотрении результатов табл. 3.1 следует иметь в виду, что применение неравномерной сетки (Dх¹const) уменьшает выигрыш от использования центрально-разностной формулы (9c) (см. прим. 12).

Ограниченность имеющихся вычислительных ресурсов зачастую вынуждает исследователей увеличивать шаг расчетной сетки и использовать менее точные аппроксимации производных. Возникает естественный вопрос: какой из двух возможных путей повышения точности расчета позволяет получить более качественное решение при равных затратах ресурсов ЭВМ?

Оказывается, что применение высокоточных аппроксимаций (напр., вида (12)) на грубой сетке не приводит к заметному улучшению качества расчета в целом, более того, в тех случаях, когда рассматриваемая функция Ф(х) имеет значительный градиент, применение более точных аппрок­симаций может привести к получению худшего результата [Флетчер].

В таблице 3.2, в качестве примера, приведены результаты расчета производной функции (х)=-th(10×(1-x)) при х=0,9 на сетках с шагом Dх=0,05 и Dх=0,025. График функции приведен на рис. 3.

 

Рис. 3. График функции (х)=-th(10×(1-x))

 

Таблица 3.2

Способ расчета Результат Ошибка
Точное значение 4.19974 ‑‑‑
Dх=0,05
Разностное отношение назад (8а) 2.87108 -1.32866
Разностное отношение вперед (8b) 5.98954 1.78980
Трехточечная (симметричная) аппроксимация (8с) 4.43031 0.23057
Пятиточечная симметричная аппроксимация (11) 4.30037 0.10063
Dх=0,025
Разностное отношение назад (8а) 3.46758 -0.73216
Разностное отношение вперед (8b) 5.05781 0.85807
Трехточечная (симметричная) аппроксимация (8с) 4.26269 0.06295
Пятиточечная симметричная аппроксимация (11) 4.20682 0.00708

 

Сопоставление результатов, приведенных в табл. 3.2, с данными табл. 3.1, оставляет удручающее впечатление: если в табл. 3.1 максимальная ошибка не превосходила 2% от оцениваемой величины, то в табл. 3.2, при расчете на сетке с шагом Dх=0,05 только лучший результат имеет 2% ошибку, а максимальная ошибка приближается к 50%. Для того, чтобы прояснить причину столь существенного ухудшения качества аппроксимаций, следует отметить, что вторая производная (отвечающая за скорость изменения функции) у sin(x) по абсолютной величине не превосходит единицу, а вторая производная функции (х)=-th(10×(1-x)) при х=0,9 составляет 64,0. Именно поэтому, первом случае шаг сетки Dх=0,05 был вполне достаточен для оценки производной, а во втором ‑ слишком велик.

Уменьшение шага сетки в два раза (до Dх=0,025) позволило уменьшить ошибку: в случае применения односторонних аппроксимаций ‑ примерно в два раза; в случае применения трехточечной аппроксимации – в четыре раза; а в случае применения пятиточечной аппроксимации – почти в шестнадцать раз. Можно ожидать, что дальнейшее уменьшение шага сетки позволит качественно уменьшить величину ошибки аппроксимации.

Анализ данных табл. 3.2 также показывает, что в рассматриваемом случае применение пятиточечной аппроксимации не дает существенного выигрыша по сравнению с трехточечной: при Dх=0,05 достигнут выигрыш по величине ошибки примерно в два раза; при Dх=0,025 – примерно в восемь раз[17].

Таким образом, мы можем констатировать, что, для получения оценки производной функции с заданной точностью, шаг сетки Dх должен быть согласован с характером поведения функции. На практике, для получения качественной информации о величине производных функции часто применяют неравномерные и адаптивные сетки, а также используют многосеточные методы.

Применение неравномерных сеток (т.е. сеток с Dх¹const) имеет смысл в тех случаях, когда ещё до начала расчета можно указать область наиболее быстрого изменения значений функции, что позволяет исследователю "вручную" организовать сгущение сеточных узлов в этой области, однако, если прогноз свойств функции не оправдается, проделанная работа окажется бесполезной.

Алгоритм построения адаптивной сетки подразумевает программное перестроение сетки в процессе расчета – сеточные узлы автоматически сгущаются (сдвигаются) в областях резкого изменения исследуемой функции и, наоборот, в областях малых изменений сетка разрежается. Общее число узлов сетки остается при этом неизменным.

Многосеточная концепция подразумевает выполнение расчета на двух сетках, имеющих различный шаг. Если в результате сопоставления полученных результатов выявляется существенное различие величины производных функции, определенных в совпадающих точках обеих сеток, то строится новая, более подробная, сетка. Таким образом, общее число узлов сетки на каждом последующем этапе расчета увеличивается. Процедура повторяется до тех пор, пока не будет достигнуто хорошее соответствие результатов, полученных на двух последних сетках, или не будет достигнуто предельно допустимое число узлов, заданное исследователем.

Рассмотрим применение изложенной теории к решению обыкновенных дифференциальных уравнений[18]. Пусть:

, хÎ[0,8; 1,2] (13)

 

Точным решением уравнения (13) является функция (см. рис. 3) (х)=-th(10×(1-x))+А, где А – произвольная постоянная, для определения которой необходимо задать начальное условие. Пусть (0,8)=0,1.

Будем использовать равномерную расчетную сетку, её первый узел совместим с левой границей интервала: х0=0,8; xk=x0+k×Dх, где k – номер узла сетки. Величину шага сетки Dх уточним позднее, в процессе численного решения.

Запишем уравнение (13) для узла х0, заменив производную в левой части разностным отношением вперёд (см. (8b)):

, Ф0= (0,8).

 

Откуда следует формула для расчета значения функции в первом узле:

(14)

 

Зная значение функции в первом узле Ф1, мы можем точно таким же способом последовательно определить её значения во всех остальных узлах сетки.

На рис. 4 приведены результаты численного решения дифференциального уравнения (13) на трех сетках. Как следует из рис. 4, по мере уменьшения шага сетки (и, соответственно, увеличения объема вычислительной работы) численное решение начинает лучше соответствовать точному.

 

Рис. 4. Влияние шага расчетной сетки Dх

на точность численного решения дифференциального уравнения

 

В завершение параграфа рассмотрим общий способ построения конечно-разностных аппроксимаций. Наша цель будет заключаться в получении трехточечной центральной оценки второй производной ²(хk), с использованием данных о значениях функции в смежных узлах. Задача будет решена, если нам удастся представить ² в виде:

, (15)

 

где a, b, c – коэффициенты, подлежащие определению, а – ошибка аппроксимации некоторого порядка m.

Вместо значений функции в боковых узлах используем их представления в виде рядов Тейлора:

и перегруппируем правую часть (15):

, (16)

 

Для того, чтобы правая часть (16) соответствовала виду (15), коэффициенты a, b, c должны удовлетворять условиям:

Откуда следует:

Окончательно будем иметь:

(17)

 

В случае использования равномерной сетки выражение для существенно упростится:

(18)

 

Отметим, что при использовании иного общего представления для второй производной вместо (15), вид формул (17), (18) был бы иной. Несомненным достоинством использованного метода построения конечно-разностных аппроксимаций производных является попутное получение оценки для ошибки аппроксимации.

 

 



2015-11-20 662 Обсуждений (0)
Дискретизация функций одной переменной 0.00 из 5.00 0 оценок









Обсуждение в статье: Дискретизация функций одной переменной

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (662)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.01 сек.)