Общая формула аппроксимации производных m-ого порядка
Автор работы: Пользователь скрыл имя, 22 Июня 2015 в 15:05, курсовая работа
Описание работы
При решении прикладных задач зачастую возникает необходимость
численного нахождения производных от функции заданной таблично. Как
известно вычислительная задача нахождения производной является
некорректно поставленной. Чем больше информации о поведении функции
мы вкладываем в формулу, позволяющую численно их находить, тем с
большей точностью будет вычисляться производная. Поэтому возникает
задача получить аппроксимирующие формулы производных, которые бы
использовали значение функции во всех узлах. Это является целью
дипломной работы.
Содержание работы
Введение. ................................................................................................. 3
Глава I. Общие положения. ................................................................... 4
1.1 Дискретизация................................................................................................4
1.2. Преобразование производных в дискретные алгебраические выражения
................................................................................................................................5
1.3 Аппроксимация производных.......................................................................8
1.4. Аппроксимация общего вида.....................................................................11
1.5. Трехточечная асимметричная формула для
δT/δx ..................................13
Глава II. Аппроксимация производной на неравномерной сетке. .. 15
2.1. Трехточечная симметричная формула для
δT/δx на неравномерной
сетке.....................................................................................................................15
2.2. Трехточечная асимметричная формула для
δT/δx на неравномерной
сетке.....................................................................................................................16
Глава III. Общая формула аппроксимации производных................ 18
m-ого порядка........................................................................................ 18
3.1. Разностная N-точечная аппроксимация производных m-ого порядка..18
Глава IV. Численный эксперимент..................................................... 23
3.1. Трехточечная аппроксимация на неравномерной сетке. ........................23
3.2. Общая формулы аппроксимации производной m-ого порядка .............24
Список литературы....................................................
Файлы: 1 файл
2
Оглавление
Введение. ................................................................................................. 3
Глава I. Общие положения. ................................................................... 4
1.1 Дискретизация................................................................................................4
1.2. Преобразование производных в дискретные алгебраические выражения
................................................................................................................................5
1.3 Аппроксимация производных.......................................................................8
1.4. Аппроксимация общего вида.....................................................................11
1.5. Трехточечная асимметричная формула для
δT/δx ..................................13
Глава II. Аппроксимация производной на неравномерной сетке. .. 15
2.1. Трехточечная симметричная формула для
δT/δx на неравномерной
сетке.....................................................................................................................15
2.2. Трехточечная асимметричная формула для
δT/δx на неравномерной
сетке.....................................................................................................................16
Глава III. Общая формула аппроксимации производных................ 18
m-ого порядка........................................................................................ 18
3.1. Разностная N-точечная аппроксимация производных m-ого порядка..18
Глава IV. Численный эксперимент..................................................... 23
3.1. Трехточечная аппроксимация на неравномерной сетке. ........................23
3.2. Общая формулы аппроксимации производной m-ого порядка .............24
Список литературы............................................................................... 27
Приложение А....................................................................................... 28
Приложение Б ....................................................................................... 30
Приложение В....................................................................................... 31
PDF created with pdfFactory trial version www.pdffactory.com
3
Введение.
При решении прикладных задач зачастую возникает необходимость
численного нахождения производных от функции заданной таблично. Как
известно вычислительная задача нахождения производной является
некорректно поставленной. Чем больше информации о поведении функции
мы вкладываем в формулу, позволяющую численно их находить, тем с
большей точностью будет вычисляться производная. Поэтому возникает
задача получить аппроксимирующие формулы производных, которые бы
использовали значение функции во всех узлах. Это является целью
дипломной работы.
Выведенная формула может применяться для решения инженерно-
технических задач, и использоваться для написания программ для
вычислительных машин.
Дипломная работа состоит из введения, четырех глав, заключения,
заключения, списка использованных литературных источников и
приложения. В первой главе приведены необходимые теоретические
сведения. Во второй главе представлен вывод формул аппроксимации
производной
на неравномерной стеки. В третьей главе вывод общей
аппроксимирующей формулы. В четвертой главе численный эксперимент,
сравнение значений, найденных с помощью полученной функции, со
значениями производной функции sin x, полученной аналитически.
PDF created with pdfFactory trial version www.pdffactory.com
4
Глава I. Общие положения.
1.1 Дискретизация
При решении конкретной задачи будут известны исходные
уравнения и соответствующие граничные условия. Для получения
приближенного решения исходных уравнений с заданными граничными
условиями используются вычислительные приемы.
Например, при исследовании трехмерного нестационарного
течения несжимаемой жидкости следовало бы построить решение для
скорости и давления, т. е. рассчитать и(х, у, z, t)
t
v(x, у, г, t), w( х, у,
z, t) и р(х, у, г, t) Процесс построения вычислительного решения
состоит из двух этапов, схематически показанных на рис. 1.1:
Рис 1.1
На первом этапе дифференциальные уравнения в частных
производных, описывающие
непрерывный
процесс, а
также
вспомогательные (граничные и начальные) условия преобразуются в
дискретную систему алгебраических уравнений. Этот первый этап
называется
дискретизацией.
Процесс
дискретизации
легко
идентифицируется, если используется конечно-разностный метод.
Чтобы преобразовать исходное уравнение в частных производных
(или систему таких уравнений) в систему алгебраических уравнений
(или обыкновенных дифференциальных уравнений), можно выбрать
один из нескольких вариантов. Наиболее общепринятыми являются
Исходные
ДУЧП нач.
граничные
условия
Дискретиз
ация
условия
Система
линейных
алгеб.
уравнений
Алгоритм
решения
Приближе
нное
решение
PDF created with pdfFactory trial version www.pdffactory.com
5
метод конечных разностей, метод конечных элементов и спектральный
метод. Способ осуществления дискретизации зависит также от того,
рассматриваются ли производные по времени (в применении к задачам
с зависимостью от времени), или же уравнения, содержащие только
пространственные производные.
На практике дискретизация производных по времени осу-
ществляется почти исключительно с использованием конечно-
разностного
метода.
При
дискретизации
пространственных
производных используется, как правило, метод конечных разностей,
конечных элементов, конечных объемов или спектральный метод.
1.2. Преобразование производных в дискретные алгебраические
выражения
Для иллюстрации процесса дискретизации рассмотрим уравнение
=
,
(1.1)
которое определяет нестационарный процесс теплопроводности в
одном измерении. Символ Т соответствует температуре, символ
—
коэффициенту теплопроводности. Черта сверху символизирует точное
решение.
Характерные
граничные
и
начальные
условия,
соответствующие уравнению (1.1), имеют вид:
(0, ) = , (1, ) = ,
(1.2)
( ,0) = ( ), 0 ≤ ≤ 1.
(1.3)
PDF created with pdfFactory trial version www.pdffactory.com
6
Наиболее прямой путь дискретизации состоит в замене
производных эквивалентными им конечно-разностными выражениями.
Так, например, с помощью аппроксимации уравнение (3.1) можно
заменить уравнением:
∆
=
∆
.
(1.4)
Размеры шагов ∆ , ∆ , а также смысл нижнего индекса j и
верхнего индекса n указываются на рис. 1.2. В уравнении (1.4) символ
соответствует значению Т в узле (j, n).
Задача о нахождении точного (непрерывного) решения Т(х, t)
оказалась замененной на задачу о нахождении совокупности
дискретных значений
, т. е. приближенного решения в каждом из
узлов (j, n) (см. рис. 1.2). Ясно, что при этом возникают две связанные
между собой ошибки — ошибка аппроксимации и ошибка решения.
Истинное значение приближенного решения в промежуточной
точке между узлами сетки. Решение должно плавно изменяться в
промежутках между узловыми точками. В принципе решение в
некоторой точке ( , ), не совпадающей с узлом, может быть
построено путем интерполяции значений, соответствующих решению
для окружающих узловых точек. Этот интерполяционный процесс
является автоматически встроенной частью метода конечных
элементов.
PDF created with pdfFactory trial version www.pdffactory.com
7
Рис.1.2
Ясно, что если уравнение (1.1) является дифференциальным
уравнением в частных производных, то уравнение (1.4) алгебраическое.
Если посмотреть на рис. 1.2, то с помощью уравнения (1.4) можно
получить формулу (или алгоритм) для определения неизвестного
значения
в зависимости от известных значений
на п-м
временном слое, т. е. найти выражение
=
+
∆
∆
− 2
+
.
(1.5)
Чтобы построить полное численное решение на временном слое
(n + 1), следует применить формулу (1.5) ко всем узлам = 2,…, − 1,
предполагая при этом, что граничные условия Дирихле обеспечивают
данные о значениях
и
.
PDF created with pdfFactory trial version www.pdffactory.com
8
1.3 Аппроксимация производных.
В п.1.1 были приведены типичные алгебраические формулы,
позволяющие проиллюстрировать технику дискретизации производных,
подобных
/
. Здесь демонстрируется процесс построения таких
алгебраических формул, сначала при помощи разложения в ряд
Тейлора, а потом — при помощи некоторой общей процедуры. В
каждом случае нетрудно оценить ошибку, обусловленную процессом
дискретизации.
В качестве первого шага по пути к разработке алгоритма расчета
тех значений
, которые могут фигурировать в уравнении (1.1),
выразим производные
по пространству и времени в узле (j, n) через
значения
в близлежащих узлах. Для реализации этого процесса
воспользуемся разложениями в ряды Тейлора типа:
= ∑
∆
!
,
(1.6)
= ∑
∆
!
.
(1.7)
Эти ряды могут быть оборваны после любого числа членов, причем
возникающая
в
результате
ошибка
(ошибка
аппроксимации)
определяется в основном следующим членом разложения, если только
∆ ≪ 1 в разложении (1.6) или если ∆ ≪ 1 в разложении (1.7).
Следовательно, можно написать
=
+ ∆
+
∆
+ (∆ ).
(1.8)
PDF created with pdfFactory trial version www.pdffactory.com
9
Интерпретация остаточного члена (∆ ) сводится к тому, что,
как предполагается, существует некоторая положительная постоянная
К, зависящая от , такая, что разность между значением
в узле
(j+1,n) и первыми тремя членами правой части (1.8), рассчитанными в
узле (j, n) оказывается численно меньше величины ∆
для любых
достаточно малых ∆ . Ясно, что связанная с такой аппроксимацией
ошибка будет быстро уменьшаться по величине по мере уменьшения
∆ .
Обращаясь к выражению (1.8), нетрудно видеть, что конечно-
разностное представление
/
можно получить непосредственно.
Действительно, перегруппировка членов в (1.8) дает
=
∆
− 0.5∆
+ ⋯ .
(1.9)
Очевидно, что использование конечно-разностной подстановки
≈
∆
(1.10)
обеспечивает точность (∆ ).Дополнительные члены, фигурирующие в
правой части (1.9), называются в дальнейшем ошибкой аппроксимации.
Выражение в правой части формулы (1.10) называется аппроксимацией
с разностью вперед. Если разложить величину
в ряд Тейлора в узле
(j, n) и перегруппировать члены, то можно построить аппроксимацию с
разностью назад:
PDF created with pdfFactory trial version www.pdffactory.com
10
≈
∆
.
(1.11)
Как и (1.10), эта аппроксимация вносит ошибку
(∆ ).Гео-
метрическая интерпретация выражений (1.10) и (1.11) дается на рис.
1.3. Формула (1.10) оценивает
через наклон линии ВС, тогда как
формула (1.11) дает ту же оценку посредством наклона АВ.
Формулы (1.10) и (1.11) были получены с помощью разложения в
ряд Тейлора по пространству. Разложение в ряд Тейлора по времени
может быть использовано для построения аппроксимации с разностью
вперед
≈
∆
,
(1.12)
которая вносит ошибку (∆ ), если только предположить, что ∆ ≪ 1
и что производные высших порядков ограничены.
PDF created with pdfFactory trial version www.pdffactory.com
11
Рис 1.3
1.4. Аппроксимация общего вида
Конечно-разностные выражения, приведенные в п. 1.3, были
построены с помощью простых перестановок в единственном
разложении в ряд Тейлора. Более последовательная методика
построения разностных аппроксимаций сводится к тому, чтобы начать с
некоторого общего выражения типа
=
+
+
+ (∆
).
(1.13)
Используя формулу (1.6), можно получить
PDF created with pdfFactory trial version www.pdffactory.com
Полагая a+b+c=0,
для любого с. Выбирая
правой
части
формулы
аппроксимацию из всех возмож
параметров. Таким образом, имеем
этих значений в (1.14) дает
Следовательно, центрированн
аппроксимация имеет форму
с ошибкой аппроксимации
разностная аппроксимация вноси
высокого порядка, чем аппроксим
12
, (–a+c) x=1, получаем a=c–1/ x и
Выбирая с так, чтобы обратился в нуль третий чле
ти
формулы
(1.14),
получаем
наиболее
точну
ю из всех возможных вариантов с подбором тре
аким образом, имеем c=–a=1/2 x
И
b =0.
дает
тельно, центрированная (или центральная) разност
имеет форму
ппроксимации
(∆ ). Очевидно, что центрирован
ппроксимация вносит ошибку аппроксимации бол
ядка, чем аппроксимации с разностями вперед
(1.14)
и b=–2+ 1/ x
ся в нуль третий член
наиболее
точную
тов с подбором трех
Подстановка
нтральная) разностная
(1.15)
, что центрированная
аппроксимации более
остями вперед (1.10) и
PDF created with pdfFactory trial version www.pdffactory.com
13
назад (1.11). Формула (1.15) оценивает
по наклону линии АС на
рис. 1.3.
Если по аналогии с (1.13) воспользоваться подобным же
представлением для
, то получим следующую центрированную
разностную формулу:
=
∆
+ (∆ ).
(1.16)
1.5. Трехточечная асимметричная формула для
δT/δx
Общий
прием
построения
алгебраических
формул
для
аппроксимации производных используется для вывода трехточечного
одностороннего представления производной
. В качестве
исходного выражения берется следующее общее представление:
=
+
+
+ (∆ ).
(1.17)
где параметры a, b и c подлежат определению. Величины
и
разлагаются в ряд Тейлора около j. Подстановка этих разложений в
(1.17) позволяет получить
= ( + + )
+ ( ∆ + 2∆ )
+
∆
+
∆
+ ⋯.
(1.18)
PDF created with pdfFactory trial version www.pdffactory.com
14
Для получения наименьшей ошибки параметры a, b и с должны
удовлетворять следующим условиям:
+ + = 0,
∆ + 2∆ = 1,
∆
2
+
4∆
2
= 0.
Отсюда получаем
= −
1.5
∆
,
=
2
∆
,
= −
0.5
∆
.
=
.
.
∆
−
∆
+ ⋯.
(1.19)
PDF created with pdfFactory trial version www.pdffactory.com
15
Глава II. Аппроксимация производной на неравномерной сетке.
2.1. Трехточечная симметричная формула для
δT/δx на неравномерной
сетке
Для получения более точных решений требуется измельчение
расчетной сетки. Однако если сетка остается равномерной во всей
вычислительной области, то измельчение сетки может оказаться
неэкономичным с точки зрения стоимости вычислений, в особенности
для многомерных задач. Значит нужно ввести сетку, измельчаемую
только на тех участках вычислительной области, где ожидается
появление резких градиентов. Благодаря локальному измельчению
сетки возможно снижения порядка ошибки аппроксимации.
Для построения аппроксимации производной на неравномерной
сетке воспользуемся выражением (1.13), получим
+
+
= ( + + )
+ − ∆
+ ∆
+
∆
+ ∆
+ − ∆
+ ∆
+ ⋯.
(1.20)
Параметры a, b и с должны удовлетворять следующим условиям:
+ + = 0, − ∆
+ ∆ = 1,
∆
+ ∆
= 0.
Получаем:
= −
∆
∆
∆ + ∆
, = −
∆ − ∆
∆ ∆
,
=
∆
∆ ∆ + ∆
.
PDF created with pdfFactory trial version www.pdffactory.com
Подставим полученные коэфф
2.2. Трехточечная асимметричная ф
сетке
В качестве исходного возьмем
где Δx
J
= Δx
j
+ Δx
j+1
a параметры
Решив систему, получаем:
16
им полученные коэффициенты в (1.20)
ная асимметричная формула для
δT/δx на неравномерной
ве исходного возьмем представление (1.17), получим:
араметры a, b и c равны следующим условиям:
получаем:
(1.22)
на неравномерной
ие (1.17), получим:
(1.23)
ледующим условиям:
PDF created with pdfFactory trial version www.pdffactory.com
17
=
∆ + ∆
∆ ∆
+ −
∆
∆ ∆ − ∆
+
∆
∆ ∆ − ∆
.
(1.24)
PDF created with pdfFactory trial version www.pdffactory.com
Глава III. Общая формула ап
3.1. Разностная N-точечная аппрокси
Пусть функция y=
известно N значений в равностоящи
Получим формулу для вычисл
точках x
j.
Возьмем в качестве исходно
Здесь T
i
значения функции
Разложим T
i
в ряд Тейлора в окрестно
18
Общая формула аппроксимации производных
m-ого порядка
точечная аппроксимация производных m-
=f(x) разлагается в ряд Тейлора на
ачений в равностоящих друг от друга точках
N=k+
s=N–
k=i–1
формулу для вычисления производной m-ого порядка
качестве исходного следующее общее представление:
ения функции y=f(x) в точках
ряд Тейлора в окрестностях точки x
i
ации производных
-ого порядка
д Тейлора на (a,b) и
+s+1
–i
1
ого порядка в
общее представление:
(1.25)
PDF created with pdfFactory trial version www.pdffactory.com
19
=
+ ∆
+
∆
2
+
∆
6
+ ⋯ =
= + ∆
+
∆
2
+
∆
6
+ ⋯+
+ ∆
+ ∆
+
∆
2
+ ⋯ +
∆
2
( + ∆
+ ⋯) +
+
∆
6
( + ∆
+ ⋯) = + 2∆
+ 2∆
+
4∆
3
+ ⋯,
=
+ ∆
+
∆
2
+
∆
6
+ ⋯ =
= + 2∆
+ ∆ ( + 2∆
+ ⋯) +
∆
2
( + 2∆
+ ⋯) +
+
∆
6
( + 2∆
+ ⋯) =
= + 3∆
+
9∆
2
+
27∆
6
+ ⋯.
По аналогии получаем:
= ∑
!
(∆ )
( )
.
(1.26)
= − ∆
+
∆
2
−
∆
6
+ ⋯,
PDF created with pdfFactory trial version www.pdffactory.com
20
=
− ∆
+
∆
2
−
∆
6
+ ⋯ =
= − ∆
+
∆
2
−
∆
6
−
− ∆
− ∆
+
∆
2
− ⋯ +
∆
2
( − ∆
+ ⋯) −
−
∆
6
( − ∆
+ ⋯) = − 2∆
+ 2∆
−
4∆
3
+ ⋯.
По аналогии:
= ∑
(−1)
!
(∆ )
( )
.
(1.27)
Подставим разложение (1.26) и (1.27) в формулу (1.25) перегруппируем
и получим:
=
+
+
(∆ )
!
(−1)
( − + 1)
+
+
+ (∆ ).
(1.28)
Сравнив левую и правую части полученного равенства (1.28),
видим что для получения наименьшей ошибки коэффициенты
должны быть решением системы уравнений:
PDF created with pdfFactory trial version www.pdffactory.com
21
⎩
⎪
⎪
⎨
⎪
⎪
⎧
+
+ ⋯+
+ +
+ ⋯+
= 0,
−
− ( − 1) − ⋯−
− 0 +
+ ⋯+
= 0,
…,
(− )
+ −( − 1)
+ ⋯+ (−1)
+ 0 + (−1)
+ ⋯+
=
!
(∆ )
,
…,
(− )
+ −( − 1)
+ ⋯+ (−1)
+ 0 + (−1)
+ ⋯+
= 0.
(1.29)
1
1
1
…
1
1 …
1
−
−(− − 1)
−(− − 2)
…
−1
0 …
( − 1)
(− − 2)
…
1
0 …
…
…
…
…
…
… …
…
−
−(− − 1)
−(− − 2)
…
(−1)
0 …
…
…
…
…
…
… …
…
(− )
−( − 1)
−(− − 2)
… (−1)
0 …
Определитель данной матрицы является определителем Вандермонда. В
данном случае он равен
∆=
−
,где ∈ ,
1 ≤ < ≤ ,
= {− ,−( − 1),…,−1,0,1,…, − 1, }.
Так как b
n
≠b
j
при n≠j, следовательно определитель не равен нулю, а
значит система имеет единственное решение.
∆
= (−1)
!
(∆ )
1
1
…
1
1 …
1
−
−(− − 1)
…
−1
0 …
( − 1)
…
1
0 …
…
…
…
…
… …
…
−
−(− − 1)
…
(−1)
0 …
…
…
…
…
… …
…
(− )
−( − 1)
… (−1)
0 …
=
= (−1)
!
(∆ )
1
2
…
− −1
−
=1
.
где сумма берется по всем сочетаниям N – m – 1 чисел α
1
,α
2
,…, α
N-m-1
из
чисел 1,2,…,N-1.
Тогда
PDF created with pdfFactory trial version www.pdffactory.com
22
=
∆
∆
= (−1)
!
(∆ )
∑
…
∏
∏
.
(1.30)
= 1,2,…,
Согласно разложению (1.28) главный член ошибки аппроксимации
равен
(∆ ) =
(∆ )
!
(−1) ∑ ( − + 1)
+ ∑
. (1.31)
PDF created with pdfFactory trial version www.pdffactory.com
23
Глава IV. Численный эксперимент.
3.1. Трехточечная аппроксимация на неравномерной сетке.
Дискретизация необходима для того, чтобы превратить исходные
дифференциальные
уравнения
в
эквивалентную
им
систему
алгебраических
уравнений,
для
решения
которых
можно
воспользоваться вычислительной машиной. Если исключить тот
случай, когда соответствующее точное решение имеет предельно
простую аналитическую форму, то процесс дискретизации обязательно
вносит некоторую ошибку.
Наиболее простой
путь сравнения точности различных
алгебраических формул сводится к рассмотрению табличной функции
типа Т = sin x и к сравнению значения производной, полученного
аналитически, со значением, найденным по дискретизационной
формуле. C этой целью написана программа approk.mws на языке Maple с
использованием формул (1.22) и (1.23). Результаты приведены в таблицах
1.1 и 1.2 соответственно
x
Т'
dT/dx
Ошибка
0.007
0.999975500
0.999963834
0.000011666
0.041
0.999159617
0.999158272
0.000001345
0.493
0.880917012
0.880914302
0.000002710
0.696
0.767412932
0.767412300
0.000000632
0.871
0.644061896
0.644061600
0.000000296
0.931
0.597032636
0.597029360
0.000002703
0.991
0.547853560
0.547849920
0.000003640
Табл. 1.1 Сравнения симметричной формулы
PDF created with pdfFactory trial version www.pdffactory.com
24
x
Т'
dT/dx
Ошибка
0.007
0.999975500
0.999947393
0.000028107
0.041
0.999159617
0.999138312
0.000021305
0.493
0.880917012
0.880911902
0.000005110
0.696
0.767412932
0.767412820
0.000000112
0.871
0.644061896
0.644061345
0.000000551
0.931
0.597032636
0.597005260
0.000027376
0.991
0.547853560
0.547804260
0.000049300
Табл. 1.2 Сравнения асимметричной формулы
3.2. Общая формулы аппроксимации производной m-ого порядка
На основе формул (1.26) и (1.28) написана программа Proizv.mws на
языке Maple и модуль к ней М_Proizv.mws. В табл. 1.3, 1.4, 1.5,
аналогично п.3.1, демонстрируется сравнение для значений dT/dx,
d
2
T/dx
2
и d
3
T/dx
3
соответственно, найденных
c помощью этой
программы.
Табл. 1.3 Сравнение общей формулы для dT/dx
i
Т'
dT/dx
Ошибка
1
-0.99999999875
-0.99999999874
0.00000000001
2
-0.99999999920
-0.99999999913
0.00000000007
3
-0.99999999955
-0.99999999954
0.00000000001
4
-0.99999999980
-0.99999999980
0
5
-0.99999999995
-0.99999999994
0.00000000001
6
-1
-0.99999999999
0.00000000001
7
-0.99999999995
-0.99999999994
0.00000000001
8
-0.99999999980
-0.99999999980
0
9
-0.99999999955
-0.99999999954
0.00000000001
10
-0.99999999919
-0.99999999919
0.00000000001
11
-0.99999999875
-0.99999999874
0.00000000001
PDF created with pdfFactory trial version www.pdffactory.com
25
Табл. 1.4 Сравнение общей формулы для d
2
T/dx
2
Табл. 1.5. Сравнение общей формулы для d
3
T/dx
3
Листинг программ представлен в приложения А-В.
i
Т''
d
2
T/dx
2
Ошибка
1
-0.499999999791667e-4
-0.499320000000000e-4
0.000679999791667e-4
2
-0.399999999893333e-4
-0.399984000000000e-4
0.000015999893333e-4
3
-0.299999999955000e-4
-0.300015100000000e-4
0.000015100045000e-4
4
-0.199999999986667e-4
-0.200010720000000e-4
0.000010720013333e-4
5
-0.999999999983333e-5
-0.999855100000000e-5
0.000014489998333e-5
6
0
-0.241000000000000e-9
0.241000000000000e-9
7
0.999999999983333e-5
0.999918800000000e-5
0.000081199983333e-5
8
0.199999999986667e-4
0.200007900000000e-4
0.000007900013333e-4
9
0.299999999955000e-4
0.300016000000000e-4
0.000016000045000e-4
10
0.399999999893333e-4
0.399960000000000e-4
0.000039999893333e-4
11
0.499999999791667e-4
0.499400000000000e-4
0.000599999791667e-4
i
Т'''
d
3
T/dx
3
Ошибка
1
0.99999999875
0.99999997498
0.00000002377
2
0.99999999920
0.99999999199
0.00000000721
3
0.99999999955
0.99999999954
0.00000000001
4
0.99999999980
0.99999999946
0.00000000034
5
0.99999999995
0.99999999391
0.00000000604
6
1
0.99999999994
0.00000000006
7
0.99999999995
0.99999999994
0.00000000001
8
0.99999999980
0.99999999530
0.00000000450
9
0.99999999955
0.99999950636
0.00000049319
10
0.99999200000
0.99999199987
0.00000000013
11
0.99999875000
0.99999874691
0.00000000309
PDF created with pdfFactory trial version www.pdffactory.com
26
Заключение.
В работе изложен вывод трехточечных симметричной, асимметричной
аппроксимирующих формул производных на неравномерной сетке а также
общая формула аппроксимации производных m-ого порядка. Эти формулы
проверены на примере табличной функции sin x. Результаты вычислений и
сравнения представлены в таблицах 1.1-1.5 IV главы. Ошибка, получаемая
при расчетах, достаточно мала. Это свидетельствует о том, что
формулы выведены верно. При измельчении сетки ошибка будет
уменьшаться
PDF created with pdfFactory trial version www.pdffactory.com
27
Список литературы.
1. Бахвалов, Н. С. Численные методы / Н. С. Бахвалов, Н. П.
Жидков, Г.М. Кобельков. – М.: Наука, 1987. – 430 с.
2. Белман, Р. Динамическое программирование и уравнения в
частных производных / Пер. с. анг. С.П. Чеботарева. – М.: Мир,
1974. – 203 с.
3. Кадченко,
С.И.
Разностная
точечная
аппроксимация
производных n-ого порядка \\ Деп. ВИНИТИ. 09.03.1994, №550-
B-94
4. Калиткин, Н. Н. Численные методы / Н. Н. Калиткин. – М.: 1987.
-355 с.
5. Мишина, А. П. Высшая алгебра / А. П. Мишина, И. В.
Проскуряков. – М.: Наука, 1965. – 300 с.
6. Проскуряков, И. В. Сборник задач по линейной алгебре/ И. В.
Проскуряков. – М.: Наука, 1987 – 384 с.
7. Самарский, А. А. Численные методы: Учеб. Пособие для вузов /
А.А. Самарский, А.В. Гулин. – М.: Наука, 1989. – 432 с.
8. Сдвижков, О. А. Математика на компьютере: Maple8 / О. А.
Сдвижков. – М.: СОЛОН-Пресс, 2003. – 176 с.
9. Тихонов, А. Н. Уравнения математической физики / А. Н.
Тихонов, А. А. Самарский. – 5-е изд. – М.: Наука, 1977. – 390 с.
10. Толстых, А. И. Компактные разностные схемы и их применение
в задачах аэрогидродинамики / А. И. Толстых. – М.: Наука, 1990.
– 290 с.
11. Флетчер, К. Вычислительные методы в динамике жидкостей: В
2-х томах: Т. 1: Пер. с англ. А. И. Державиной. – М.: Мир, 1991.
– 504 с.
PDF created with pdfFactory trial version www.pdffactory.com
28
Приложение А
approk.mws
> restart;
> A:=sin(x);
mas1[j]:=array(1..200,si): сетка
mas2[j]:=array(1..200,si): значения для функции Ap
mas3[j]:=array(1..200,si): значения для функции A
mas4[j]:=array(1..200,si): значения для симметричной формулы
mas5[j]:=array(1..200,si): значения для асимметричной формулы
mas6[j]:=array(1..250,si): хранение дельта Х
Ap:=diff(A,x);
Сетка
> s:=0:
i:=1:
mas1[i]:=s:
mas6[i]:=0:
> while s<1 do
i:=i+1:
mas6[i]:=evalf((RandomTools[Generate](integer(range=1..10))/1000
)):
if mas6[i]<>mas6[i-1] and mas6[i]<>mas6[i-2] then
s:=evalf(s+mas6[i]);
mas1[i]:=s;
else i:=i-1;
fi;
od:
Значение производных в узлах
> for j from 1 to i do
x:=mas1[j]:
mas2[j]:=Ap(x):
od:
PDF created with pdfFactory trial version www.pdffactory.com
29
> for j from 1 to i do
x:=mas1[j]:
mas3[j]:=Bp(x):
od:
Основная задача
> for j from 1 to i do
x:=mas1[j]:
mas3[j]:=A(x):
od:
3х точечная симметричная
> for j from 2 to i-1 do
e1:=mas6[j]*(mas6[j+1]+mas6[j]);
Lx1:=mas6[j+1]/e1;
Lx2:=(mas6[j]-mas6[j+1])/(mas6[j]*mas6[j+1]);
e3:=mas6[j+1]*(mas6[j+1]+mas6[j]);
Lx3:=mas6[j]/e3;
mas4[j]:=(-Lx1*mas3[j-1])+(-Lx2*mas3[j])+(Lx3*mas3[j+1])
od:
> for j from 2 to i-1 do
lprint(mas1[j],mas2[j],mas4[j],abs(mas2[j]-mas4[j])):od:
3х точечная асимметричная
> for j from 2 to i-1 do
Lx1:=mas6[j+1]/(mas6[j]*(mas6[j+1]+mas6[j]));
Lx2:=(mas6[j]-mas6[j+1])/(mas6[j]*mas6[j+1]);
Lx3:=mas6[j]/(mas6[j+1]*(mas6[j+1]+mas6[j]));
mas5[j]:=(-Lx1*mas3[j-1])+(-Lx2*mas3[j])+(Lx3*mas3[j+1])
od:
> for j from 2 to i-1 do
lprint(mas1[j],mas2[j],mas4[j],abs(mas2[j]-mas4[j])):od:
PDF created with pdfFactory trial version www.pdffactory.com
30
Приложение Б
Proizv.mws
> restart:
Digits:=15:
>
read(`D:/Proizv/Modul/M_Proizv.m`):
with(Coefficienty);
with(Proizvodnaj);
> Nglob:=11:
Nglobal:=1200:
Nuz1:=11:
Nu:=trunc((Nuz1+1)/2):
m:=1:
Hag:=1e-5;
> for i from 1 to Nuz1 do
> Fx[i]:=-Hag*(Nu-i)+Pi:
Fz[i]:=sin(Fx[i]):
Fw[i]:=cos(Fx[i]):
od:
> Coef(Nuz1,m):
Proizvodnaja(Nuz1,m,Nuz1,Hag,Fz):
> for i from 1 to Nuz1 do lprint("i=",i,Fv[i],Fw[i],abs(Fv[i]-
Fw[i])):od:
PDF created with pdfFactory trial version www.pdffactory.com
31
Приложение В
M_Proizv.mws
Модуль
> restart:
Процедура вычисление значений знаковой функции
> Signum:=proc(si)
global st:
st:=1:
if si<0 then
st:=-1;
else
if si=0 then st:=0:fi:
fi;
end:
Процедура вычисление степени
> Step:=proc(z,w)
local i,st:
st:=1:
for i from 1 to w do st:=st*z:od:
RETURN(st):
end:
Вычисление коэффициентов аппроксимации
> Coefficienty[Coef]:=proc(L,m)
global A,Ng,Ngg,Bq,st,Bp;
local
si,i,p,k,j,jj,s,sq,sv,sa,Nq,N1,Nm1,Nmj,U,Fakm,Np1,Np2,Pro,Sum,Np
,v:
if m>=L then lprint("Количество узлов не может быть меньше или
равно порядку производной"):
break:fi:
for i from 1 to Nglob do
for p from 1 to Nglob do A[i,p]:=0:od:
od:
PDF created with pdfFactory trial version www.pdffactory.com
32
if L=2 then
for i from 1 to L do
for p from 1 to L do
sa:=p mod 2:
if sa=0 then Np:=1:
else Np:=-1:fi:
A[i,p]:=Np:
od:
od:
else
N1:=L-1:
Nm1:=L-m-1:
Fakm:=1:
Np1:=1:
Np2:=1:
for j from 1 to N1 do
Ng[j]:=j:
if j<=m then Fakm:=Fakm*j:fi:
if j<=N1-m then Np1:=Np1*j:fi:
Np2:=Np2*j:
od:
Nq:=trunc(Np2/(Fakm*Np1)):
if Nq>Nglobal then lprint("Nq>Nglobal"):break:fi:
Нахождение L-m-1 сочетаний
sq:=1:
while sq<=Nq do
for s from 1 to Nm1 do Ngg[s,sq]:=Ng[s]:od:
if sq<Nq then
j:=0:
>
while (j<>Nm1) and (Ng[j]<>Nmj) do
j:=j+1:Nmj:=m+j:
od:
if Ng[j]<Nmj then
Ng[j]:=Ng[j]+1:
else
PDF created with pdfFactory trial version www.pdffactory.com
33
for jj from 0 to Nm1-j do
if jj=0 then Ng[j+jj-1]:=Ng[j+jj-1]+1:fi:
Ng[j+jj]:=Ng[j+jj-1]+1:
od:
fi:
fi:
sq:=sq+1:
od:
for i from 1 to L do
k:=i-1:
s:=L-i:
for j from 1 to L do
si:=j-k-1:
Signum(si):
if st=-1 then Bq[j]:=-(k+1-j):fi:
if st=0 then Bq[j]:=0:fi:
if st=1 then Bq[j]:=j-k-1:fi:
od:
for p from 1 to L do
for j from 1 to N1 do
si:=j-p:
Signum(si):
if st=-1 then Bp[j]:=Bq[j]:fi:
if (st=1) or (st=0) then Bp[j]:=Bq[j+1]:fi:
od:
Sum:=0;
sq:=1:
while sq<=Nq do
Pro:=1:
jj:=1:
while jj<=L do
si:=jj-p:
PDF created with pdfFactory trial version www.pdffactory.com
34
Signum(si):
if jj<=Nm1 then
sv:=Ngg[jj,sq]:
if st=-1 then Pro:=Pro*Bp[sv]/(Bq[p]-Bq[jj]):fi:
if st=0 then Pro:=Pro*Bp[sv]:fi:
if st=1 then Pro:=Pro*Bp[sv]/(Bq[jj]-Bq[p]):fi:
else
if st=-1 then Pro:=Pro/(Bq[p]-Bq[jj]):fi:
if st=1 then Pro:=Pro/(Bq[jj]-Bq[p]):fi:
fi:
jj:=jj+1:
od:
Sum:=Sum+Pro:
sq:=sq+1:
od:
Вычисление коэффициентов А
jj:=p+m+1:
sa:=jj mod 2:
if sa=0 then
Np:=1:
else
Np:=-1:
fi:
A[i,p]:=Np*Fakm*Sum;
od:
od:
fi:
end:
Вычисление производных m-ого порядка
> Proizvodnaj[Proizvodnaja]:=proc(N,m,L,Hag,Func)
global st,Fv;
local si,i,j,s,Lk,Lg,Ls,Sum,Se:
Se:=Step(Hag,m);
Ls:=trunc(L/2):
for i from 1 to N do
PDF created with pdfFactory trial version www.pdffactory.com
35
Sum:=0:
for j from 1 to L do
Lk:=i:
>
Lg:=j:
if L=N then
Sum:=Sum+A[Lk,j]*Func[Lg]:
else
si:=i-Ls-1:
Signum(si):
if st=1 then
si:=i-N+Ls:
Signum(si):
if st=1 then
Lk:=i+L-N:
Lg:=N-L+j:
Sum:=Sum+A[Lk,j]*Func[Lg]:
fi:
if (st=-1) or (st=0) then
Lk:=Ls+1:
Lg:=i-Ls+j-1:
Sum:=Sum+A[Lk,j]*Func[Lg]:
fi:
fi:
if (st=-1) or (st=0) then Sum:=Sum+A[Lk,j]*Func[Lg]:fi:
fi:
od:
Fv[i]:=Sum/Se:
od:
end:
> save Coefficienty, Proizvodnaj, Signum, Step,
`D:/Proizv/Modul/M_Proizv.m`;
PDF created with pdfFactory trial version www.pdffactory.com
Информация о работе Общая формула аппроксимации производных m-ого порядка