Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2-Численные методы.doc
Скачиваний:
9
Добавлен:
22.08.2019
Размер:
3.2 Mб
Скачать

Порядок выполнения работы.

Пример. Построить кубический сплайн, интерполирующий функцию y = sh 2x на отрезке [1,00; 1,20] для равномерного разбиения с шагом h = 0,04 при краевых условиях I и II типа. Найти значения сплайна в точках от х = 1 до точки х=1,2 с шагом х = 0,01. Получить оценку точности сплайн-интерполяции и сравнить ее с фактической погрешностью вычислений.

Вид рабочего листа MS Excel приведен на рисунке.

1. Вычислим необходимые для дальнейших расчетов значения 1-ой, 2-ой и 3-ей производных:

.

Перед началом вычислений необходимо вычислить максимальный модуль производной 3-го порядка функции f(x) на отрезке[1; 1,2 ]. Так как функция гиперболического косинуса является положительной возрастающей функцией на отрезке [1; 1,2 ], то:

,

Тогда погрешности интерполяционных формул будут равны:

.

2. Рассмотрим построение кубического сплайна для краевых условий I типа. Оформим таблицу для вычисления коэффициентов mi . Так как h = 0,04, то на отрезке [1,00; 1,20] размещается n = 5 интервалов сплайн-интерполяции ( i = 1, 2, … , n) и шесть узловых точек ( i = 0, 1, … , n). В диапазоне A2:G3 разместим заголовки столбцов. В диапазоне А4:А9 размещаем номера узловых точек от 0 до 5. В диапазон В4:В9 заносим значения аргумента: ячейка В4="1", В5="1.04" и протягиваем диапазон В4:В5 до яотягиваем диапазон йка чек. нтов йна для краевых условий нкции сплацном в точке.ким сплайном 000000000000000000000000000000чейки В9. Вычисляем значения функции y = sh 2x в узловых точках: ячейка С4 = " =SINH(2*B4)" и протягиваем формулу в диапазон С5:С9. Вычисляем по формуле м необходимые для дальнейших расчетов -ей производных00000000000000000000000000000000000000000000000000000000000000000000 значение 1-ой производной в точке х0 = 1: ячейка В10 = "=2*COSH(2*B4)". Вычисляем по формуле м необходимые для дальнейших расчетов -ей производных00000000000000000000000000000000000000000000000000000000000000000000 значение 1-ой производной в точке х5 = 1,2: ячейка D10 = "=2*COSH(2*B9)". Заносим на рабочий лист теоретическую оценку погрешности вычислений: ячейка F10 = "0.007113".

Реализуем прямую прогонку. Вычисляем правые части системы линейных уравнений (5): элемент b0 = m0 : ячейка D4 = "=B10"; элементы : ячейка D5 = "=3*(C6-C4)/0.04" и протягиваем формулу в диапазон D6:D8; элемент b5 = m5 : ячейка D9 = "=D10". Вычисляем прогоночные коэффициенты Li: коэффициент L0 = 0: ячейка Е4 = "0", коэффициенты : ячейка Е5 = "=-1/(E4+4)" и протягиваем формулу в диапазон Е6:Е8. Вычисляем прогоночные коэффициенты Mi: коэффициент М0 = b0 : ячейка F4 = "D4", коэффициенты : ячейка F5 = "=E5*(F4-D5)" и протягиваем формулу в диапазон F6:F8.

Реализуем обратную прогонку. Коэффициент m5 = b5 : ячейка G9= "=D9". Коэффициенты : ячейка G8= "=E8*G9+F8" и протягиваем формулу на диапазон G7: G4.

2. В диапазоне A11:D32 вычисляем значения сплайн-функции, заданной функции и фактических отклонений. В диапазон A11:D11 заносятся заголовки столбцов. Задаются абсциссы расчетных точек: А12 = "1", А13 = "1,01", протягиваем диапазон А12:А13 до ячейки А32.

Вычисляем значение сплайна на первом частичном отрезке [1,00; 1,04] по формуле:

ячейка В12="=$C$4*(A12-$B$5)^2*(2*(A12-$B$4)+0.04)/0.04^3+$C$5 *(A12-$B$4)^2*(2*($B$5-A12)+0.04)/0.04^3+$G$4*(A12-$B$5)^2*(A12-$B$4)/0.04^2+$G$5*(A12-$B$4)^2*(A12-$B$5)/0.04^2" и протягиваем формулу на диапазон В13:В16.

3. Вычисляем значение сплайна на втором частичном отрезке [1,04; 1,08] по формуле:

ячейка В17="=$C$5*(A17-$B$6)^2*(2*(A17-$B$5)+0.04)/0.04^3+$C$6 *(A17-$B$5)^2*(2*($B$6-A17)+0.04)/0.04^3+$G$5*(A17-$B$6)^2*(A17-$B$5)/0.04^2+$G$6*(A17-$B$5)^2*(A17-$B$6)/0.04^2" и протягиваем формулу на диапазон В18:В20. Для упрощения ввода формулы в ячейку В17 можно скопировать в нее формулу из ячейки В16 и изменить в ней на единицу номера строк ячеек с абсолютной адресацией. Этот же принцип копирования формулы сплайна для текущего частичного отрезка из последней ячейки предшествующего отрезка можно реализовать для всех других частичных отрезков и любых краевых условий. Далее целесообразность использования этой процедуры не оговаривается.

4. Вычисляем значение сплайна на третьем частичном отрезке [1,08; 1,12] по формуле:

ячейка В21="=$C$6*(A21-$B$7)^2*(2*(A21-$B$6)+0.04)/0.04^3+$C$7 *(A21-$B$6)^2*(2*($B$7-A21)+0.04)/0.04^3+$G$6*(A21-$B$7)^2*(A21-$B$6)/0.04^2+$G$7*(A21-$B$6)^2*(A21-$B$7)/0.04^2" и протягиваем формулу на диапазон В22:В24.

5. Вычисляем значение сплайна на четвертом частичном отрезке [1,12; 1,16] по формуле:

ячейка В25="=$C$7*(A25-$B$8)^2*(2*(A25-$B$7)+0.04)/0.04^3+$C$8 *(A25-$B$7)^2*(2*($B$8-A25)+0.04)/0.04^3+$G$7*(A25-$B$8)^2*(A25-$B$7)/0.04^2+$G$8*(A25-$B$7)^2*(A25-$B$8)/0.04^2" и протягиваем формулу на диапазон В26:В28.

6. Вычисляем значение сплайна на пятом частичном отрезке [1,16; 1,20] по формуле:

ячейка В29="=$C$8*(A29-$B$9)^2*(2*(A29-$B$8)+0.04)/0.04^3+$C$9 *(A29-$B$8)^2*(2*($B$9-A29)+0.04)/0.04^3+$G$8*(A29-$B$9)^2*(A29-$B$8)/0.04^2+$G$9*(A29-$B$8)^2*(A29-$B$9)/0.04^2" и протягиваем формулу на диапазон В30:В32.

7. Вычислим точное значение функции y = sh 2x на отрезке [1,00; 1,20] в заданных точках: ячейка С12 = "=SINH(2*A12)" и протягиваем формулу в диапазон С13:С32. Вычисляем фактическую погрешность вычислений по формуле dф = |S (x) – f(x) | : ячейка D12 = "=ABS(B12-C12)" и протягиваем формулу в диапазон D13:D32. Вычисления для сплайна с краевыми условиями I типа закончены. Фактическая погрешность на 4 порядка меньше теоретической. Отличие от нуля фактической погрешности в узловых точках объясняется округлением результата в последнем разряде разрядной сетки.

8. Рассмотрим построение кубического сплайна для краевых условий II типа. Целесообразно скопировать диапазон A2:G32, в котором реализован расчет для кубического сплайна с краевыми условиями I типа, в ячейку А34, сформировав тем самым "заготовку" для расчета кубического сплайна с краевыми условиями II типа. При этом необходимо изменить диапазон A42:D42 для определении вторых производных на концах отрезка интерполяции, вычисление коэффициентов правых частей системы (7) линейных алгебраических уравнений bi , i = 1, 2, … , n-1 (диапазон D37:D40), а также диапазон В44:В64 вычисления значений сплайна.

9. Вычисляем по формуле м необходимые для дальнейших расчетов -ей производных00000000000000000000000000000000000000000000000000000000000000000000 значение 2-ой производной в точке х0 = 1: ячейка В42 = "=4*SINH(2*В36)". Вычисляем по формуле м необходимые для дальнейших расчетов -ей производных00000000000000000000000000000000000000000000000000000000000000000000 значение 2-ой производной в точке х5 = 1,2: ячейка D42 = "=4*SINH(2*B41)".

Вычисляем изменившиеся элементы правых частей системы (7) линейных алгебраических уравнений (диапазон D37:D40) по формуле : ячейка D37 = "=6*(C38-2*C37+C36)/0.04^2" и протягиваем формулу в диапазон D38:D40.

10. Вычисляем значение сплайна на первом частичном отрезке [1,00; 1,04] по формуле:

,

ячейка В44="=$C$36*($B$37-A44)/0.04+$C$37*(A44-$B$36)/0.04+$G$36* (($B$37-A44)^3-0.04^2*($B$37-A44))/6/0.04+$G$37*((A44-$B$36)^3-0.04^2*(A44-$B$36))/6/*0.04" и протягиваем формулу на диапазон В45:В48.

11. Вычисляем значение сплайна на втором частичном отрезке [1,04; 1,08] по формуле:

,

ячейка В49=" = $C$37*($B$38-A49)/0.04+$C$38*(A49-$B$37)/0.04+$G$37* (($B$38-A49)^3-0.04^2*($B$38-A49))/6/0.04+$G$38*((A49-$B$37)^3-0.04^2*(A49-$B$37))/6/0.04" и протягиваем формулу на диапазон В50:В52.

12. Вычисляем значение сплайна на третьем частичном отрезке [1,08; 1,12] по формуле:

,

ячейка В53="=$C$38*($B$39-A53)/0.04+$C$39*(A53-$B$38)/0.04+$G$38* (($B$39-A53)^3-0.04^2*($B$39-A53))/6/0.04+$G$39*((A53-$B$38)^3-0.04^2*(A53-$B$38))/6/0.04" и протягиваем формулу на диапазон В54:В56.

13. Вычисляем значение сплайна на четвертом частичном отрезке [1,12; 1,16] по формуле:

,

ячейка В57="=$C$39*($B$40-A57)/0.04+$C$40*(A57-$B$39)/0.04+$G$39* (($B$40-A57)^3-0.04^2*($B$40-A57))/6/0.04+$G$40*((A57-$B$39)^3-0.04^2*(A57-$B$39))/6/0.04" и протягиваем формулу на диапазон В58:В60.

14. Вычисляем значение сплайна на пятом частичном отрезке [1,16; 1,20] по формуле:

,

ячейка В61="=$C$40*($B$41-A61)/0.04+$C$41*(A61-$B$40)/0.04+$G$40* (($B$41-A61)^3-0.04^2*($B$41-A61))/6/0.04+$G$41*((A61-$B$40)^3-0.04^2*(A61-$B$40))/6/0.04" и протягиваем формулу на диапазон В62:В64. Вычисления для сплайна с краевыми условиями II типа закончены. Фактическая погрешность на 3-4 порядка меньше теоретической. Отличие от нуля фактической погрешности в узловых точках объясняется округлением результата в последнем разряде разрядной сетки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]