O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf ·...

84
КЫРГЫЗСКО-РОССИЙСКИЙ СЛАВЯНСКИЙ УНИВЕРСИТЕТ С.Н. Скляр, П.В. Козлов ЧИСЛЕННЫЕ МЕТОДЫ Лабораторный практикум (материалы для самостоятельной работы) Бишкек 2007 2 Рецензент докт. физ.-мат. наук, проф., Э.Б. Кулумбаев Печатается по решению кафедры физики и микроэлектроники и РИСО КРСУ С 43 Скляр С.Н., Козлов П.В. ЧИСЛЕННЫЕ МЕТОДЫ: Лабораторный практикум (материалы для самостоятельной работы). – Бишкек: Изд-во КРСУ, 2007. – 168 с. Учебное пособие включает описание работ лабораторного прак- тикума по курсу «Численные методы». Представлены основные разделы курса: «Численные методы алгебры и анализа», «Численные методы решения обыкновенных дифференциальных уравнений», «Численные методы решения уравнений с частными производными (уравнений ма- тематической физики)». В каждой лабораторной работе присутствует раздел, содержащий необходимые теоретические положения и основные формулы, предложен набор специально подобранных тестовых задач, перечислены требования, предъявляемые к программной реализации, приведено задание для работы с программой. В приложении рассмотре- ны методы решения вычислительных задач средствами системы компь- ютерной математики MatLab. Для студентов физико-математических и технических специаль- ностей. © КРСУ, 2007

Transcript of O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf ·...

Page 1: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

КЫРГЫЗСКО-РОССИЙСКИЙ СЛАВЯНСКИЙ УНИВЕРСИТЕТ

С.Н. Скляр, П.В. Козлов

ЧИСЛЕННЫЕ МЕТОДЫ

Лабораторный практикум

(материалы для самостоятельной работы)

Бишкек 2007

2

Рецензент докт. физ.-мат. наук, проф., Э.Б. Кулумбаев

Печатается по решению кафедры физики и микроэлектроники

и РИСО КРСУ С 43 Скляр С.Н., Козлов П.В. ЧИСЛЕННЫЕ МЕТОДЫ: Лабораторный практикум (материалы

для самостоятельной работы). – Бишкек: Изд-во КРСУ, 2007. – 168 с. Учебное пособие включает описание работ лабораторного прак-

тикума по курсу «Численные методы». Представлены основные разделы курса: «Численные методы алгебры и анализа», «Численные методы решения обыкновенных дифференциальных уравнений», «Численные методы решения уравнений с частными производными (уравнений ма-тематической физики)». В каждой лабораторной работе присутствует раздел, содержащий необходимые теоретические положения и основные формулы, предложен набор специально подобранных тестовых задач, перечислены требования, предъявляемые к программной реализации, приведено задание для работы с программой. В приложении рассмотре-ны методы решения вычислительных задач средствами системы компь-ютерной математики MatLab.

Для студентов физико-математических и технических специаль-ностей.

© КРСУ, 2007

Page 2: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

3

СОДЕРЖАНИЕ

ПРЕДИСЛОВИЕ ............................................................................................5 Глава 1. Интерполяция и сглаживание сеточных функций ......................8 Лабораторная работа 1.1. Алгебраическая интерполяция...................9 Лабораторная работа 1.2. Интерполирование квадратичным сплайном ...................................................................................................15 Лабораторная работа 1.3. Построение кубического сплайна ............19 Лабораторная работа 1.4. Сглаживающий кубический сплайн ........22 Лабораторная работа 1.5. Восстановление сеточных функций методом наименьших квадратов.............................................................29 Лабораторная работа 1.6. Сглаживание сеточных функций .............32

Глава 2. Численное интегрирование .........................................................39 Лабораторная работа 2.1. Экстраполяция Ричардсона и метод Ромберга для вычисления интегралов......................................40 Лабораторная работа 2.2. Адаптивный метод вычисления интеграла...................................................................................................50

Глава 3. Численное решение начальной задачи для обыкновенных дифференциальных уравнений и систем первого порядка ......................55 Лабораторная работа 3.1. Методы Рунге-Кутта ..................................... Лабораторная работа 3.2. Итерационные методы решения нелинейных дифференциальных уравнений.............................................. Лабораторная работа 3.3. Разностные схемы для решения линейной задачи Коши ................................................................................

Глава 4. Численные методы решения краевых задач для обыкновенных дифференциальных уравнений второго порядка ......... Лабораторная работа 4.1. Монотонные разностные схемы для линейных уравнений .............................................................................

Глава 5. Численные методы решения уравнений с частными производными.............................................................................. Лабораторная работа 5.1. Итерационные методы решения двумерных сеточных уравнений. На примере уравнения Пуассона .......

4

Лабораторная работа 5.2. Схема с весами для уравнения Теплопроводности........................................................................................ Лабораторная работа 5.3. Разностные схемы для уравнения конвективного переноса ..............................................................................

Глава 6. Методы построения адаптивных сеток .......................................... Лабораторная работа 6.1. Адаптация сетки на основе оптимизации кусочно-постоянного интерполянта.................................... Лабораторная работа 6.2. Адаптация сетки на основе оптимизации кусочно-линейного приближения ....................................... Лабораторная работа 6.3. Адаптация сетки на основе эквидистанктного распределения весовой функции.................................

ПРИЛОЖЕНИЕ. Решение вычислительных задач средствами системы MATLAB ........................................................................................... 1. Поиск корней нелинейных уравнений ......................................................

1.1. Корни полиномов .................................................................................. 1.2. Корни уравнения с одним неизвестным.............................................. 1.3. Решение систем нелинейных уравнений.............................................

2. Решение задач оптимизации .................................................................... 2.1. Вычисление минимумов функции одной переменной....................... 2.2. Вычисление минимума функции многих переменных ......................

3. Интерполяция и аппроксимация сеточных функций ............................ 3.1. Полиномиальная интерполяция и аппроксимация............................. 3.2. Сплайновая интерполяция данных ...................................................... 3.3. Параметрическая интерполяция ..........................................................

4. Численное интегрирование...................................................................... 5. Численное решение обыкновенных дифференциальных

уравнений .................................................................................................. 5.1. Решение задачи Коши ........................................................................... 5.2. Решение краевых задач для уравнений второго порядка ..................

6. Создание интерфейсных приложений ....................................................... 7. Краткая справка по часто используемым функциям MatLab................... ЛИТЕРАТУРА .................................................................................................

Page 3: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

5

ПРЕДИСЛОВИЕ

Предлагаемое учебное пособие включает материалы для само-стоятельной работы в рамках лабораторного практикума по курсу «Чис-ленные методы». Оно является следствием многолетнего опыта препо-давания курса «Численные методы» студентам специальностей «При-кладная математика и информатика», «Информатика и вычислительная техника», «Физика», «Математические методы в экономике» Кыргыз-ско-Российского (Славянского) университета (КРСУ), а также специаль-ности «Software Engineering» Американского университета в Централь-ной Азии (АУЦА).

В своем традиционном изложении курс «Численные методы» со-держит три основных раздела: «Численные методы алгебры и анализа», «Численные методы решения обыкновенных дифференциальных урав-нений», «Численные методы решения уравнений с частными производ-ными (уравнений математической физики)» и знакомит с областью ма-тематики, играющей ключевую роль в процессе математического моде-лирования природных явлений, а также при использовании математиче-ских моделей в технических, экономических и социальных науках. Эти разделы в той или иной степени также нашли отражение в предлагаемой работе, в то же время, при ее создании авторы преследовали и специаль-ные цели. Очевидно, что для эффективного усвоения курса, помимо тео-ретического (лекционного) материала, студенты должны получить воз-можность практической иллюстрации работы вычислительных методов и алгоритмов в рамках лабораторного (компьютерного) практикума. Однако объем предлагаемого в курсе материала достаточно велик, а время, выделяемое для работы в компьютерных классах, как правило, недостаточно для сопровождения этого материала полноценными чис-ленными экспериментами. Поэтому, на наш взгляд, эффективной явля-ется лабораторная практика, в рамках которой часть материала иллюст-рируется при работе студента с пакетом специальных обучающих про-грамм, в который встроены изучаемые методы и наборы целевым обра-зом сконструированных тестовых задач (в КРСУ и АУЦА такой пакет –«NUM_METH» разработан при участии студентов), а другая часть мате-риала включается в самостоятельную работу студента, выполняемую под руководством преподавателя. Для организации именно этой само-стоятельной работы и предназначено предлагаемое учебное пособие.

6

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

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

Последнее время в рамках многих «компьютеризированных» кур-сов, в частности, при изучении численных методов, широко использу-ются такие системы компьютерной математики как Mathematica, Maple, MatLab [30–32]. Располагая мощными библиотеками функций и пре-красными графическими возможностями, они освобождают разработчи-ка от большого объема рутинной работы, ускоряют процесс подготовки программного кода и позволяют сделать упор на содержательной сторо-не исследования моделей. Несмотря на то, что при таком подходе стра-дает методическая сторона, он абсолютно оправдан при изучении чис-ленных методов студентами «нематематических» специальностей и для преподавания предметов естественно-научного цикла, в частности, фи-зики. Поэтому в разделе «Приложение» пособия приведены решения ря-да вычислительных задач, обсуждаемых ранее в лабораторных работах, средствами системы MatLab. Предпочтение системе MatLab отдано по-

Page 4: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

7

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

8

Глава 1. ИНТЕРПОЛЯЦИЯ И СГЛАЖИВАНИЕ СЕТОЧНЫХ ФУНКЦИЙ

На отрезке ,a bй щк ъл ы рассмотрим «n» произвольных точек, удовлетво-

ряющих условию:

1 2... ...

i na x x x x bЈ < < < < < Ј .

Пусть 1

nh h

i if f

=є – произвольная сеточная функция со значе-

ниями hif в точках

ix (i=1,2,...n), которые будем называть узлами ин-

терполяции.

Определение 1.1. Задача интерполяции сеточной функции hf

состоит в том, чтобы найти такую функцию ,f C a bй щО к ъл ы, которая удовле-

творяет соотношениям: ( ) ( )h h

i iif f x fє = (i=1,2,…n).

Иными словами, это задача непрерывного продолжения функции

hf со множества узлов 1

n

i ix

= на весь отрезок ,a bй щ

к ъл ы. Очевидно, что та-

кая задача обратна задаче проектирования пространства ,C a bй щк ъл ы в про-

странство сеточных функций h

U и имеет бесконечно много решений.

Чтобы сделать задачу интерполирования однозначно разрешимой, необ-

ходимо ограничиться неким классом функций из ,C a bй щк ъл ы, в котором это

продолжение (интерполянт) будет искаться. В качестве таких классов будем рассматривать алгебраические многочлены и сплайн-функции. Приведем определение интерполяционного сплайна, которое нам потре-буется в дальнейшем.

Определение 1.2 . Интерполяционным сплайном степени «m»

для сеточной функции hf назовем функцию ( ), hm

S x f , определенную

для ,x a bй щО к ъл ы и удовлетворяющую условиям:

Page 5: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

9

1) для любых i=1,2,…n-1 и 1

,i i

x x x+

й щО к ъл ы, ( ) 1, ,h

m m i iS x f P x x

+й щО к ъл ы;

2) ( ) 1, ,h mm

S x f C a b- й щО к ъл ы;

3) ( ), , 1,2, ...h hm i i

S x f f i n= =

ЛАБОРАТОРНАЯ РАБОТА 1.1

Алгебраическая интерполяция

Основная цель. Научиться строить интерполяции при помощи многочлена Лагранжа. Изучить влияние выбора интерполяционной сет-ки на сходимость процесса интерполяции.

Теория и основные формулы. На отрезке [0,1] рассмотрим ин-

терполяционную сетку:

0Ј x1<x

2<…<x

i<…<xnЈ 1. (1.1.1)

Пусть f h є f hi

1ni =

– сеточная функция, заданная в узлах сетки

(I.1.1). Интерполяционный многочлен Лагранжа определяется следую-щими формулами:

( ), hn

x fl,

1

N

n kk

w=

є е (x)⋅f hk; (1.1.2)

,n kw

1

Ni

i k ii k

x x

x x=

ж ц- чз чзє чз чз ч-и шХ ; x∈[0,1]. (1.1.3)

Можно доказать (см. [1–7]), что многочлен, определяемый фор-мулами (1.1.2–3), является единственным решением задачи интерполя-ции (Определение 1.1) в классе многочленов, степени которых не пре-

восходят “n-1” (класс 1[0,1]

nP

-). Тот же самый многочлен может быть

построен методами, отличными от того, который определяется форму-лами (1.1.2–3), например, интерполяционный многочлен в форме Нью-тона описан в учебниках [1–7]; здесь мы приведем менее известный ме-тод построения интерполяционного многочлена, который обычно назы-вают методом Невилле.

10

Пусть 1 2, , ..., (1 )

km m m k nЈ Ј – натуральные числа, удовлетво-

ряющие условиям:

1 21 ...

km m m nЈ < < < Ј .

Нам потребуется уточнить обозначение (1.1.2) для многочлена

Лагранжа: если он построен по значениям сеточной функции hf в узлах

1 2, , ..., ,

km m mx x x то этот многочлен будем обозначать символом:

( )1 2

, ; , , ...,k

h

k m m mx f x x xl . Алгоритм метода Невилле основан на следую-

щем утверждении, доказательство которого мы не приводим, чтобы не перегружать изложение.

Теорема 1.1.1. Рассмотрим узлы 1 2, , ...,

kx x x и выберем и

i jx x –

две различные точки из этого множества. Тогда:

( ) ( )( )

1 2 1 1 1 1

1 1 1 1

, ; , , ..., [( ) , ; , ..., , , ...,

( ) , ; , ..., , , ..., ]/ ( ).

h hk k i k i i k

h

j k j j k j i

x f x x x x x x f x x x x

x x x f x x x x x x

- - +

- - +

= - -

- - -

l l

l (1.1.4)

Чтобы вычислить значение ( , )hn

x fl многочлена интерполяции

по узлам 1 2, , ...,

nx x x и фиксированном x, рассмотрим, опираясь на фор-

мулу (1.1.4), следующие цепочки значений в точке x: 1) многочленов, построенных по одному узлу:

( )1, ; , 1,2, ..., ;h h

i ix f x f i n= =l

2) многочленов, построенных по двум узлам:

( ) ( )( )

2 1 1 1

1 1 1

, ; , [( ) , ;

( ) , ; ]/ ( ), 2, 3, ..., ;

h hi i i i

h

i i i i

x f x x x x x f x

x x x f x x x i n

- -

- -

= - -

- - - =

l l

l

3) многочленов, построенных по трем узлам:

( ) ( )( )

3 2 1 2 2 1

2 2 1 2

, ; , , [( ) , ; ,

( ) , ; , ]/ ( ), 3, ..., ;

h hi i i i i i

h

i i i i i

x f x x x x x x f x x

x x x f x x x x i n

- - - -

- - -

= - -

- - - =

l l

l

и так далее, и наконец, многочленов, построенных по k (1 k nЈ Ј ) узлам:

Page 6: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

11

( ) ( )( )1 2 1 1 2

1 1 1 1

, ; , , ..., [( ) , ; , ...,

( ) , ; , ..., ]/ ( ), , ..., ;

h hk i k i k i i k k i k i

h

i k i k i i i k

x f x x x x x x f x x

x x x f x x x x i k n

- + - + - + - - +

- - + - - +

= - -

- - - =

l l

l (1.1.5)

последним в этой цепочке будет значение в точке x интересующего нас

многочлена ( , )hn

x fl :

( ) ( )( )

1 2 1 1 2

1 1 1 1

, ; , , ..., [( ) , ; , ...,

( ) , ; , ..., ]/ ( ).

h hn n n n

h

n k n n

x f x x x x x x f x x

x x x f x x x x

-

- -

= - -

- - -

l l

l

Обозначим:

( ), 1 2, ; , , ..., , 1,2, ..., ; 1,2, ..., .h

i k k i k i k iQ x f x x x i n k i

- + - += = =l

Эти величины, вычисленные в соответствии с формулой (1.1.5), можно расположить в виде нижне-треугольной таблицы (матрицы):

1,1

2,1 2,2

3,1 3,2 3,3

,1 ,2 ,3 ,n n n n n

Q

Q Q

Q Q Q

Q Q Q Q

Ч Ч Ч Ч

Ч Ч Ч

Ч Ч

Ч Ч Ч Ч Ч

Ч

Вычисления осуществляются последовательно: сначала – по строкам, а внутри каждой строки – по столбцам, их можно формализо-вать в виде следующего псевдокода:

Алгоритм 1.1.1. Позволяет вычислять значения многочлена Ла-

гранжа ( , )hn

x fl в фиксированной точке x.

INPUT( 1 1, ,

nn hi ii i

x f x= =

);

for i = 1 to n do ,1

;h

i iQ f=

for i = 2 to n do

for j = 2 to i do 1 , 1 1, 1

,

1

( ) ( )i j i j i i j

i j

i i j

x x Q x x QQ

x x- + - - -

- +

- - -=

-;

OUTPUT(,n n

Q )

( , )hn

x fl =,n n

Q .

12

Будем рассматривать два варианта выбора интерполяционной сетки:

1) равномерная сетка: xiє (i–1)⋅h, h

1

1nє

-, i=1,2,... .n

2) Чебышевская сетка: в этом случае узлы сетки совпадают с нулями полинома Чебышёва степени n (см. [2–4]):

xiє

1

2[1- cos

(2 1)

2

i

n

p-] , i=1,2,... .n

Тестовые функции. Сеточные функции fh будем получать, про-

ектируя на сетку (I.1.1) следующие непрерывные функции (все функции рассматриваются на отрезке [0,1], 0 1,e< Ј если не оговорены иные условия):

1) функция с погранслоем у точки x=0:

f1(x) =1 exp( )

11 exp( )

x

e

e

- -

- -

;

2) функция с двумя погранслоями у точек x=0 и x=1:

f2(x) =1 –

1exp( ) exp( )

11 exp( )

x x

e e

e

-- +

+ -

;

3) функция с погранслоем у точки x=1:

f3(x) =

1 1exp( ) exp( )

11 exp( )

x

e e

e

-- - -

- -

;

4) 4

ln 1

( )1

ln 1

x

f xe

e

ж цчз ч+з чз чзи ш=

ж цчз ч+з чз чзи ш

;

Page 7: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

13

5) 5( ) cos

xf x

p

e

ж цчз ч= з чз чзи ш;

6) 6( ) sin

xf x x

p

e

ж цчз ч= Ч з чз чзи ш;

7) “регуляризация дельта-функции”:

f7(x) = 2(2 1)x

e

e+ -;

8)

при

при8

0, 0;

( ) 1exp , 0 1;

x

f x xx

xe

мп =ппп ж ц= -н чзп ч- < Јз чп з чзп и шпо

9) при

при9

0, 0;

1ln , 0 1;

xf

x xx

мп =ппп= нп Ч < Јпппо

10) “гладкая ступенька”:

f10(x) є

при

при

2 1exp( ) 1

2 1, 0 ;

3 2 1 2exp( ) 1

1 21 exp( )2 1

, 1;3 1 2 2

1 exp( )

x

xx

x

xx

e

e

e

e

мп -п -ппп- Ч Ј Јпп -п +пппнп -п -ппп- Ч < Јпп -п +пппо

11) “ступенька”:

f11(x) є

при

при

при

1 1, 0 ;

2 21 2 1 1

, ;4 2 21 1

, 1.2 2

x

xx

x

e

e ee

e

мпп Ј < -ппппп -п - Ј Ј +нппппп- + < Јпппо

(ε∈(0,1

2]).

14

12) “уступ”:

при

при

при

12

2, 0 ;

2

1, 1 ;2 2

2(1 ), 1 1;

2

xx

f x

xx

e

ee e

e

e

мпп Ј <пппппп= Ј Ј -нппп -пп - < Јпппо

13) “угол”:

при

при

при

при

13

10, 0 ;

22 1 1 1

1, ;2 2

1 2 1 11, ;

2 21

0, 1;2

x

xx

fx

x

x

e

e

ee

ee

мп -п Ј Јппппп - -п + < Јппп= нп - +п + Ј <пппп +пп Ј Јпппо

14) индивидуально разработанный пример. Требования к программе. Программа должна включать: 1) Построение интерполяционного многочлена Лагранжа по

формулам (1.1.2–3): а) на равномерной сетке, б) на Чебышевской сетке. 2) Построение интерполяционного многочлена Лагранжа с ис-

пользованием рекурентных формул метода Невилле (алгоритм 1.1.1.): а) на равномерной сетке, б) на Чебышевской сетке.

3) Тестовые функции (по заданию преподавателя) с возможно-стью выбора параметра «ε». Может быть реализован дискретный выбор ε по формуле: ε=2-к, к=0,1,2,…

4) Возможность выбора числа узлов сетки «n», допустим дис-кретный вариант: n=1+2к, к=2,3,4,…

5) Вывод погрешности интерполяции Err(f) на «контрольной» сетке с узлами:

yi1

2i i

x x+

+= , i=1,2,...n-1;

Err(f) є1 1max

i nЈ Ј -

( ) ( , ( ) )hi n i

f y y f- l . (1.1.6)

Page 8: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

15

6) Графику: одновременная отрисовка графиков функции f(x) и

многочленов Лагранжа ( , ( ) )hn

x fl , построенных указанными выше дву-

мя способами; отрисовка узлов сетки xi

1ni =

. Предусмотреть возмож-

ность масштабирования графика: а) по исходной функции f(x); б) по всем функциям.

Задание для работы с программой. Провести численные расче-ты, варьируя значения параметров ε и n; использовать все тестовые функции и все варианты интерполяции. Анализируя результаты расче-тов, ответить на следующие вопросы:

1) Сходиться ли процесс интерполяции многочленом Лагранжа: a) на равномерной сетке, b) для Чебышевской сетки?

2) Сравнить между собой точность двух вариантов интерполя-ции (на равномерной и Чебышевской сетках).

Основные критерии сравнения: a) погрешность (1.1.6), b) визуальная близость графиков функции f(x) и соответст-

вующего интерполянта ( , ( ) )kn

x fl .

3) Во всех перечисленных выше случаях оценить эффективность метода Невилле.

Все выводы необходимо аргументировать результатами числен-ных расчетов и оформить в виде отчета.

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 1.2

Интерполирование квадратичным сплайном

Основная цель. Научиться строить квадратичную сплайн-интерполяцию и понять ее особенности; сравнить поведение квадратич-ного сплайна с поведением линейного и кубического сплайнов.

Теория и основные формулы. На отрезке [0,1] рассмотрим про-извольную сетку:

0Ј x1<x

2<…<x

i<…<xnЈ 1. (1.2.1)

16

Обозначим hi=x

1i +-x

i – длину i-ой сеточной ячейки (i =1,2,...n -1).

Пусть f h є f hi

1ni =

– сеточная функция, заданная на сетке (1.2.1), воз-

можно, что сеточная функция получена как проекция на сетку некото-

рой непрерывной функции, т.е. f h =(f) h , где f∈C[0,1]. Согласно опреде-

лению (см. определение 1.2), интерполяционный сплайн S2(x,fh ) степе-

ни два удовлетворяет условиям:

1) S2(x, f h ) – полином второй степени на каждом интервале (x

i,

x1i +);

2) S2(x, f h ) – непрерывен вместе с первой производной на [0,1];

3) S2(

ix , f h ) = f h

i, при i=1,2,...n .

М е т о д 1. В силу п. 2, можно определить величины:

Mi=

2Sў(x

i, f h ), i=1,2,...n .

В силу п.1, для любого i=1,2,...n -1 и x∈[xi, x

1i +]:

12 1( , ) .h ii

i i

i i

x xx xS x f M M

h h+

+

--ў = Ч + Ч (1.2.2)

Интегрируя (1.2.2), получим: 22

12 1

( )( )( , ) .

2 2h ii

i i i

i i

x xx xS x f M M C

h h+

+

--= Ч - Ч + (1.2.3)

Используя п. 3 находим Сi:

S2(

ix , f h )=

2i

h- M

i+C

i=f h

i,

Ci=

2i

hM

i+ f h

i.

Из (1.2.3) получаем:

S2(x,fh )=

2( )

2i

i

x x

h

-M

1i ++

1

2i

h[h 2

i-(x

1i +-x) 2 ] M

i+ f h

i (1.2.4)

i=1,2,...n -1 и x∈[xi, x

1i +].

Page 9: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

17

уравнения для Mi получим, подставляя x

1i + в (1.2.4) и используя п. 3)

определения квадратичного сплайна:

M1i ++ M

i=2 1

h h

i i

i

f f

h+

-, i= 1,2,...n -1. (1.2.5)

В случае, когда fh

является проекцией гладкой функции f(x), сис-тема (1.2.5) дополняется одним из краевых условий:

1(0)M f ў= , либо (1)

nM f ў= . (1.2.6)

Если известна лишь сеточная функция f h , либо не известны точ-ные значения (0)f ў и (1)f ў , можно положить:

M1= 3 1

3 2

x x

x x

-

-2 1

2 1

h hf f

x x

-

- – 2 1

3 2

x x

x x

-

-3 1

3 1

h hf f

x x

-

-, (1.2.7)

Mn= 2

1 2

n n

n n

x x

x x-

- -

-

-1

1

h hn n

n n

f f

x x-

-

-

- – 1

1 2

n n

n n

x x

x x-

- -

-

-2

2

h hn n

n n

f f

x x-

-

-

-,

Итак, расчет производится по формулам (1.2.5), (1.2.6) или (1.2.5), (1.2.6), а затем квадратичный сплайн вычисляется по формуле (1.2.4).

М е т о д 2. Запишем представление для квадратичного сплайна в следующем виде:

S2(x,fh )= i

i

x x

h

-Чf

1hi +

+ i 1

i

x -x

h+ f h

i– 1

( )( )

2i i

i

x x x x

h+

- -D

i (1.2.8)

i=1,2,...n -1 и x∈[xi, x

1i +].

Условия п.п. 1) и 3), очевидно, выполнены. Осталось удовлетво-рить условию 2). Сделаем это, предварительно вычислив следующие ве-личины:

2( , )hS x fў = 1

h h

i i

i

f f

h+

- -

1 2( )

i i

i

x x D

h

+-

,

2( , )h

iS x fў = 1

h h

i i

i

f f

h+

-–

2i

D, (1.2.9)

2 1( , )h

iS x f

+ў = 1

h h

i i

i

f f

h+

- +

2i

D. (1.2.10)

18

Приравнивая (1.2.9) к (1.2.10) при i=i-1, получим:

D1i -+ D

i=2 ( 1

h h

i i

i

f f

h+

-– 1

1

h hi i

i

f f

h-

-

-), i=2,3,…n-1. (1.2.11)

К системе (1.2.11) добавляем одно из краевых условий:

D1=2( 2 1

1

h hf f

h

-– M

1), либо D

1n-= 2(M

n– 1

1

h hn n

n

f f

h-

-

-), (1.2.12)

где M1 и M

n определяются по одной из формул (1.2.6) или (1.2.7). В

данном случае расчетными формулами являются формулы (1.2.11), (1.2.12) и (1.2.8).

Тестовые функции. Тестовые функции лабораторной работы 1.1. Требования к программе. Программа должна включать: 1. Построение квадратичного сплайна одним из приведенных

выше методов на равномерной сетке xi = (i - 1)h, h=1/(n – 1). Необходимо использовать два варианта краевых условий: (1.2.6) и (1.2.7), с целью их сравнения.

2. Тестовые функции из лабораторной работы 1.1 (по заданию преподавателя) с возможностью выбора параметра «ε». Может быть реа-лизован дискретный выбор ε по формуле: ε=2-к, к=0,1,2,…

3. Возможность выбора числа узлов сетки “n”, допустим дис-кретный вариант: n=1+2к, к=2,3,4,…

4. Вывод погрешности интерполяции Err(f) на «контрольной» сетке с узлами:

yi1

2i i

x x+

+= , i=1,2,...n-1;

Err(f) є1 1max

i nЈ Ј -

( ) ( , ( ) )hi n i

f y y f- l .

5) Графику: одновременная отрисовка графиков функции f(x) и двух интерполяционных сплайнов (построенных по различным краевым

условиям (1.2.6) и (1.2.7)), отрисовка узлов сетки xi

1ni =

. Предусмот-

реть возможность маштабирования графика: а) по исходной функции f(x); б) по всем функциям.

Задание для работы с программой 1. Варьируя значения параметров «ε» и «n», провести численные

расчеты для всех тестовых функций. Выяснить при этом свойства и осо-

Page 10: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

19

бенности интерполяции при помощи квадратичного сплайна. Попытать-ся ответить на вопрос: какое из краевых условий (1.2.6) или (1.2.7) луч-ше использовать.

2. Сравнить между собой точность приближения квадратичным сплайном и сплайнами: линейным и кубическим (предполагается неко-торый опыт работы с этими сплайнами). Основные критерии качества: а) погрешность интерполяции, б) визуальная близость графиков функции и соответствующего интерполянта.

3. Выяснить, присущи ли квадратичной интерполяции колеба-тельные эффекты, наблюдаемые в случаях интерполяции кубическим сплайном.

Все выводы необходимо аргументировать результатами числен-ных расчетов и оформить их в виде отчета.

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 1.3

Построение кубического сплайна

Основная цель. Освоить интерполяцию кубическим сплайном и

изучить ее особенности. Изучить влияние краевых условий на точность интерполяции.

Теория и основные формулы. На отрезке 0,1й щк ъл ы рассмотрим про-

извольную сетку:

1 20 ... ... 1

i Nx x x x= < < < < < = . (1.3.1)

Пусть 1

Nh h

i if f

== – сеточная функция, заданная в узлах сетки

(1.3.1). Согласно определению (см. определение 1.2), интерполяционный

сплайн S3(x,f h ) степени три (кубический сплайн) удовлетворяет усло-

виям:

1) S3(x,fh ) – полином третьей степени на каждом интервале

(xi,x

1i +);

2) S3(x,fh ) – непрерывен вместе со второй производной на [0,1];

3) S3(

ix ,f h ) = f h

i, при i=1,2,...n .

20

Обозначим: ( )11,2, ... 1

i i ih x x i n

+= - = - – длины сеточных яче-

ек; значения интерполяционного кубического сплайна определяются по

следующим формулам (подробности см. в 1 , 2йщйщкъ к ълыл ы): 1

,i i

x x x+

й щО к ъл ы,

( )( ) ( )

М М

М М

3 3

1

3 1

2 21 1

1

,6 6

;6 6

1,2,... 1.

i ih

i i

i i

h hi i ii i ii i

i i

x x x xS x f

h h

h x xx x hf f

h h

i N

+

+

+ ++

- -= + +

ж ц ж ц --ч чз зч чз з+ - + -ч чз зч чз зч чзчз и ши ш= -

(1.3.2)

Параметры М1

n

i i = в (1.3.2) определяются из следующей систе-

мы уравнений:

( )М М М 1 11 1 1 1

1

2 6 ,

2, ... 1

h h h hi i i i

i i i i i i i

i i

f f f fh h h h

h h

i N

+ -- - - +

-

ж ц- - чз чз+ + + = - чз чз ччзи ш= -

(1.3.3)

Для замыкания системы (1.3.3) недостает двух уравнений, кото-рые мы будем называть краевыми условиями. Эти уравнения могут быть выбраны различными способами, опишем их. Предположим, что сеточ-

ная функция hf является проекцией на сетку (1.3.1) некоторой непре-

рывной функции ( )f x т.е. ( )h hf f= .

1) Если известны значения (0)f ўў и (1)f ўў , то положим:

1(0), (1)

nM f M fўў ўў= = (1.3.4)

2) Если известны значения (0)f ў и (1)f ў , то уравнения (1.3.3)

дополним следующими:

2 11 1 1 2

1

11 1 1

1

2 6[ (0)],

2 6[ (1) ].

h h

h hn n

n n n n

n

f fh M h M f

h

f fh M h M f

h-

- - -

-

мп -п ўп Ч + Ч = -пппнп -п ўп Ч + Ч = -пппо

(1.3.5)

3) Если априорная информация в значениях ( )f xў или ( )f xўў на

концах отрезка [0,1] неизвестна, то систему (1.3.3) можно дополнить уравнениями:

10, 0

nM M= = . (1.3.6)

Page 11: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

21

Сплайн, построенный с учетом краевых условий (1.3.6) называет-ся нормальным. Системы уравнений (1.3.3), (1.3.4), либо (1.3.3), (1.3.5), либо (1.3.3), (1.3.6) решаются методом прогонки [2].

Тестовые функции. Тестовые функции лабораторной работы 1.1. Требования к программе. Программа должна включать: 1. Построение интерполяционного кубического сплайна в трех

вариантах: а) по формулам (1.3.3), (1.3.4) б) по формулам (1.3.3, (1.3.5) в) по

формулам (1.3.3), (1.3.6). 2. Тестовые функции из лабораторной работы 1.1 (по заданию

преподавателя) с возможностью выбора параметра “ e ”. Допустим дис-

кретный вариант выбора : к2 ; 0,1,2,...ke -= =

3. Возможность выбора числа узлов сетки «n». Допустим дис-

кретный вариант: 1 2 , 2, 3, 4,...kn k= + = Ограничиться случаем рав-

номерной сетки:

( 1) ; 1 ( 1); 1,2, ...,i

x i h h n i n= - = - = .

4. Вывод погрешности интерполяции на контрольной сетке:

1

1

n

i iy

-

=

1 ; 1,2, ...2

i ii

x xy i n+

+є = ,

31 1( ) ( ) ( , ( ) )h

i ii nErr f Max f y S y f

Ј Ј -є - . (1.3.7)

5. Графику: одновременная отрисовка графиков функции f(x) и трех вариантов сплайн-интерполяции: (1.3.3), (1.3.4); (1.3.3), (1.3.5) и

(1.3.3), (1.3.6). Отрисовка узлов сетки 1

n

i ix

=. Предусмотреть возмож-

ность масштабирования графиков: а) по исходной функции f(x), б) по

всем функциям f(x) и 3( , ( ) )hS x f .

Задание для работы с программой. Провести все численные

расчеты, варьируя значения параметров и ne . Использовать все тесто-

вые функции и три варианта интерполяции. Анализируя результаты рас-четов, ответить на следующие вопросы.

1. Сходится ли процесс интерполяции с кубическим сплайном?

22

2) Сравнить между собой точность трех вариантов интерполяции ((1.3.3), (1.3.4); (1.3.3), (1.3.5), (1.3.7)). Основные критерии сравнения: а) погрешность (1.3.7); б) визуальная близость графиков функции ( )f x и

соответствующих интерполянтов 3( , ( ) )hS x f .

Все выводы необходимо аргументировать результатами числен-ных расчетов и оформить в виде отчета.

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 1.4

Сглаживающий кубический сплайн Основная цель. Научиться строить интерполяции при помощи

сглаживающего кубического сплайна. Сравнить между собой два вида интерполяции: сглаживающим и интерполяционным кубическими сплайнами.

Теория и основные формулы. На отрезке [0,1] рассмотрим про-

извольную сетку:

1 20 ... ... 1

i nx x x x= < < < < < = . (1.4.1)

Пусть 1

nh h

i if f

=є – сеточная функция, заданная в узлах сетки

(1.4.1). Обозначим: 1i i i

h x x+

є - ( 1,2, ..., 1)i n= - . Если значения

функции hf вычислены с некоторой погрешностью, то для её гладкого восполнения не имеет смысла использовать интерполяционный сплайн в точности совпадающий с этой функцией в узлах сетки. Отказавшись от интерполяционности, можно попытаться использовать возникший про-извол, чтобы построить сплайн более «плавно» проходящий в окрестно-сти заданных значений, чем интерполяционный. Такие сплайны назы-ваются сглаживающими (см. [6]).

Рассмотрим функционал

122

10

[ ] ( ) ( )n

hi i i

i

u u x dx p u x f=

й щй щўўF є + -к ъ к ъл ы л ыет , (1.4.2)

Page 12: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

23

определённый на пространстве 2[0,1]C , в котором 0,( 1,2, ..., )i

p i n> = –

заданы. Сглаживающий сплайн, по определению, это функция, достав-ляющая минимум функционалу (1.4.2). Можно доказать, что сглаживаю-щий сплайн является интерполяционным кубическим сплайном, т.е.

функцией, которая определяется формулами: 1

[ , ]i i

x x x+

О , i=1,2,…,n-1,

331

3 1

2 21 1

1

( )( )( )

6 6

( ) ( ) ;6 6

iii i

i i

i i ii i ii i

i i

x xx xS x M M

h h

h M x xx x h Ms s

h h

++

+ ++

--є Ч + Ч +

--+ - Ч + - Ч

(1.4.3)

1 11 1 1 1

1

1

2( ) 6 ,

0, 0; 2, 3, ..., 1.

i i i ii i i i i i i

i i

n

s s s sh M h h M h M

h h

M M i n

+ -- - - +

-

м ж цп - - чп з чп з+ + + = - чзп чз чзн и шппп = = = -по

(1.4.4)

Величины 3( ),

i is S x= при I = 1, 2, … n в формулах (1.4.3), (1.4.4)

являются свободными параметрами. Заметим, что если hi i

s f=

( 1,2,...,i n= ), то формулы (1.4.3), (1.4.4) определяют нормальный ин-

терполяционный кубический сплайн для сеточной функции hf . Приве-дем краткий вывод основных формул для построения сглаживающего кубического сплайна (подробности можно найти в [6]) Из (1.4.3) следу-ет, что:

13 1

( ) iii i

i i

x xx xS x M M

h h+

+

--І = Ч + Ч , 1

[ , ], 1,2, ..., .i i

x x x i n+

О = (1.4.5)

Подставим (1.4.5) в (1.4.2), в результате получим:

Ф1

21

213 1

1 1

[ ] [ ] .i

i

xn n

hiii i i i i

i ii ix

x xx xS M M dx p s f

h h

+-+

+= =

й щ--к ъ= Ч + Ч + -к ък ъл ы

е ет (1.4.6)

Вычисляем интеграл в (1.4.6), получим:

Ф

1

3 1 1 1 12

2

1

1[ ] [ 2( ) ]

6

( ) .

n

i i i i i i i ii

nh

i i ii

S M h M h h M h M

p s f

-

- - - +=

=

= Ч Ч Ч + + Ч + Ч +

+ -

е

е (1.4.7)

24

Как следует из (1.4.4), величины i

M являются функциями пара-

метров 1

ni i

s=

, поэтому функционал (1.4.7) также определяется этими

параметрами. Таким образом, необходимым условием экстремума функционала (1.4.7) являются соотношения:

Ф

3[ ]

0k

S

s

¶=

¶, 1,2,..., .k n= (1.4.8)

Дифференцируя (1.4.7) и используя (1.4.4), получим:

Ф 13

1 1 1 12

[ ]1 1[ 2( ) ]

2 6( )

n

i i i i i i i iik k

h

k k k

SM h M h h M h M

s s

p s f

-

- - - +=

¶ ¶= Ч Ч + + + +

¶ ¶+ - =

е

11 1

2 1

( )n

hi i i ii k k k

i k i i

s s s sM p s f

s h h

-+ -

= -

й щ- -¶ к ъ= Ч - + - =к ъ¶ к ъл ые

- при

- - при

- при

2 1 1 1

1

1 1

1 1

1

1

1( ), 1;

1 1 1 1( ), 2, 3,..., 1;

1( ), .

h

hk k k k k k

k k k k

hn n n n

n

M p s f kh

M M M p s f k nh h h h

M p s f k nh

- +

- -

-

-

мпп Ч + =ппппп ж цп чзп чз= Ч + Ч + Ч + = -н чз чп з чи шппппп Ч + =пппо

Таким образом, система уравнений (1.4.8) эквивалентна следующей:

-

- -

-

2 1 1 1

1

1 1

1 1

1

1

1( ) 0,

1 1 1 1( ) 0,

2, 3, ..., 1;

1( ) 0.

h

hi i i i i i

i i i i

hn n n n

n

M p s fh

M M M p s fh h h h

i n

M p s fh

- +

- -

-

-

мпп Ч + =ппппп ж цп чзп чзЧ + Ч + Ч + =п чзп чз чн и шпп = -пппппп Ч + =пппо

(1.4.9)

Итак, для того, чтобы построить сглаживающий кубический

сплайн нужно: а) совместно решить системы уравнений (1.4.4) и (1.4.9) относи-

тельно неизвестных 1

ni i

M=

и 1

ni i

s=

;

Page 13: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

25

б) воспользоваться формулой (1.4.3). Решить систему уравнений (1.4.4), (1.4.9) можно различными спо-

собами: например, используя матричную прогонку (см. [8]); можно ис-

ключить неизвестные 1

n

i is

=из уравнений (1.4.4), (1.4.9) получив пяти-

точечную систему уравнений для определения 1

n

i iM

=, решить эту сис-

тему можно используя пятиточечную прогонку (см. [8]). Именно этот по-следний вариант решения системы (1.4.4), (1.4.9) мы и рассмотрим.

Считая, для простоты, в (1.4.9) (а значит и в (1.4.2)) все i

p рав-

ными между собой, положим:

1, 1,2, ..., .

i

q i np

є =

В дальнейшем будем считать, что параметр «q» меняется в преде-

лах: 0 qЈ < + Ґ . Найдем при 1,2,...i

s i n= из (1.4.9) и подставим эти

величины в (1.4.4), в результате получим следующую пятиточечную систему уравнений:

1

2 1 2 2 2 3 2 4 2

2 1 1 2

1 3 1 2 1 1 1 1

0,

,

,

3, 4, ..., 2;

,

0.

i i i i i i i i i i i

n n n n n n n n n

n

M

B M C M D M E M F

A M B M C M D M E M F

i n

A M B M C M D M F

M

- - + +

- - - - - - - -

мп =ппп- + - + =пппп - + - + =ппнп = -ппп - + - =пппп =ппо

(1.4.3)

Коэффициенты системы (1.4.10) определяются следующими со-отношениями:

2 1

6, 3, 4,..., 1;

i

i i

qA i n

h h- -

= = -Ч

1

6, 2, 3, ..., 2;

i

i i

qE i n

h h+

= = -Ч

( )1

1 1 1

6 2 1 6 1 22 , 2, 3,..., 1;

i i i

i i i i i i

q qC h h i n

h h h h h h -

- - -

ж ц ж цч чз зч чз з= Ч + + Ч + + + = -ч чз зч чз зч чи ш и ш

2 1

1 2

6 11 ;

qB h

h h

ж цчз чз= Ч + -чз чз чи ш

26

1

1 2 1

6 1 2 1, 3, 4,..., 1;

i i

i i i i

qB h i n

h h h h -

- - -

ж цчз чз= Ч + + - = -чз чз чи ш

1 1

6 1 2 1, 2, 3,..., 2;

i i

i i i i

qD h i n

h h h h- +

ж цчз чз= Ч + + - = -чз чз чзи ш

1 1

1 2

6 11 ;

n n

n n

qD h

h h- -

- -

ж цчз чз= Ч + -чз чз чи ш

1 1

1

6 , 2, 3, ..., 1.i i i ii

i i

f f f fF i n

h h+ -

-

ж ц- - чз чз= - = -чз чз чзи ш

Для решения системы (1.4.10) применим прогонку, описанную, например, в [8]:

I. Прямой ход прогонки (вычисление прогоночных коэффици-ентов):

1 1 1

0, 0, 0;a b g= = =

2 2 22 2 2

2 2 2

, , ;D E F

C C Ca b g= = =

2 1 2( ), 3, 4, ..., 1;

i i i i i i i iC A A B i nb a a

- - -D = - + - = -

1 2

1( ) , 3, 4, ..., 2;

i i i i i i

i

D A B i na b a- -

й щ= Ч + - = -к ъл ыD;

, 3, 4, ..., 2.ii

i

Ei nb = = -

D

2 1 2

1( ) , 3, 4, ..., 1;

i i i i i i i i

i

F A A B i ng g g a- - -

й щ= Ч - - - = -к ъл ыD

II. Обратный ход прогонки (вычисление решения):

0,n

M = 1 1

,n n

M g- -

=

1 2, 2, 3, ...,1.

i i i i i iM M M i n na b g

+ += - + = - -

После вычисления параметров при 1,2,...,i

M i n= величины

при, 1,2, ...,i

s i n= , необходимые для построения сглаживающего

сплайна по формулам (1.4.3), находим из уравнений (1.4.9).

Page 14: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

27

Тестовые функции. Тестовые функции лабораторной работы 1.1. Требования к программе. Программа должна включать: 1. Построение а) интерполяционного кубического сплайна: он

должен получиться в рамках вышеописанного алгоритма, если положить q=0; б) сглаживающего кубического сплайна по формулам (1.4.3), (1.4.9) и (1.4.10).

2. Тестовые функции лабораторной работы 1.1 с возможностью выбора параметра «e ». Допустим дискретный вариант выбора:

2 , 0,1,2,...k ke -= =

3. Возможность выбора числа узлов сетки n . Допустим дис-

кретный вариант: 1 2 , 2, 3, 4,...kn k= + = . Достаточно ограничиться

случаем равномерной сетки:

( 1) ; 1 ( 1); 1,2, ...,i

x i h h n i n= - = - = .

4. Возможность выбора параметра “q” в пределах: 0 qЈ < + Ґ . 5. Вывод погрешности интерполяции и на «контрольной» сетке:

1

1

n

i iy

-

=

1 ; 1,2, ...,2

i ii

x xy i n+

+є = ,

31 1( ) ( ) ( , ( ) )h

i ii nErr f Max f y S y f

Ј Ј -є -

как для интерполяционного сплайна 3( , ( ) )hS x f , так и для сглаживающе-

го 3( )S x .

7. Графику: одновременная отрисовка графиков функции ( )f x и

двух вариантов сплайн-интерполяции: интерполяционным и сглажи-

вающим кубическими сплайнами; отрисовка узлов сетки 1

n

i ix

=. Пре-

дусмотреть возможность масштабирования графика: а) по исходной ф-

ии ( )f x ; б) по всем функциям: ( )f x , 3( , ( ) )hS x f ,

3( )S x .

Задание для работы с программой. Провести численные расче-

ты варьируя значения параметров e , n и q; использовать все тестовые функции и два варианта интерполяции. Анализируя результаты расче-тов, ответить на следующие вопросы.

28

1. Сходится ли процесс интерполяции со сглаживающим сплай-ном? Интерполяционным сплайном?

2. Сравнить между собой точность двух вариантов интерполяции. Основные критерии сравнения: а) погрешность (13); визуальная бли-зость графиков функции ( )f x и соответствующих интерполянтов.

3. Влияет ли на точность приближения сглаживающим сплайном выбор параметра «q»?

4. Позволяет ли использование сглаживающего сплайна освобо-диться от недостатков, присущих приближениям интерполяционным кубическим сплайном (например, осцилляции…)?

Все выводы необходимо аргументировать результатами числен-ных расчетов и оформить в виде отчета.

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 1.5

Восстановление сеточных функций методом наименьших квадратов

Основная цель. Знакомство с простейшими методами математи-

ческой обработки результатов измерений по методу наименьших квад-ратов: линейной, степенной и показательной регрессиями.

Теория и основные формулы. На вещественной прямой рас-

смотрим конечное множество точек 1

n

i ix

= (сетку), удовлетворяющих

условиям:

1 2... ...

i nx x x x< < < < < . (1.5.1)

Пусть 1

nh h

i if f

=є – сеточная функция, заданная в узлах сетки

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

Для приближенного восполнения сеточной функции 1

nh h

i if f

рассмотрим линейную непрерывную функцию:

Page 15: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

29

( ) .f x a x b= Ч +l

(1.5.2)

Наша задача заключается в оценке параметров «a» и «b» по ре-зультатам измерений:

( ) ( ) ( )1 1 2 2, , , , ..., , .h h h

n nx f x f x f (1.5.3)

Применяя метод наименьших квадратов, мы должны в качестве «a» и «b» взять те их значения, которые доставляют минимум функции двух переменных:

( )2

2

1 1

( , ) ( ) .n n

h hi i i i

i i

a b f x f a x b f= =

й щD = - = Ч + -к ъл ые еl (1.5.4)

Известно, что параметры «a» и «b» тогда могут быть найдены, по-сле дифференцирования функции (1.5.4), из системы уравнений:

2

1 1 1

1 1

10,

21

0.2

n n nh

i i i ii i in n

hi i

i i

a x b x x fa

a x b n fb

= = =

= =

мп ¶Dп Ч = Ч + Ч - Ч =пп ¶пнп ¶ Dп Ч = Ч + Ч - =пп ¶по

е е е

е е (1.5.5)

Удобно ввести следующие обозначения для средних величин:

1 1

1 1, .

n nh h

i ii i

x x f fn n= =

є Ч є Че е

Теперь, решая систему (1.5.5), получим формулы для последова-тельного вычисления величин «a» и «b»:

( )

( )1

2

1

, .

nh

i ihi

n

ii

f x x

a b f a x

x x

=

=

Ч -

= = - Ч

-

е

е (1.5.6)

Рассмотрим варианты нелинейной регрессии. Предположим, что результаты измерений заданы сеточной функцией:

( ) ( ) ( ), , ,1 1 2 2, , , , ..., , ,h p h p h p

n nx f x f x f (1.5.7)

значения которой мы предполагаем положительными: , 0, 1,2,..., ;h p

if i n> =

заметим, что этого можно добиться, «сдвинув» значения произвольной сеточной функции вверх вдоль оси Oy, добавив к ним достаточно боль-шую положительную константу. Сеточную функцию (1.5.7) мы предпо-лагаем восстанавливать при помощи показательной функции:

30

( ) exp( )p

f x a x b= Ч + . (1.5.8)

Задачу можно свести к задаче линейного восполнения, если про-лагорифмировать соотношение (1.5.8):

ln ( ) .p

f x a x b= Ч +

Обозначив: ,ln , 1,2, ..., ,h h p

i if f i n= =

мы можем найти параметры «a» и «b», пользуясь формулами (1.5.6), и затем найти восполняющую функцию в соответствии с (1.5.8).

Рассмотрим еще один вариант нелинейной регрессии. Предполо-жим, что задана сеточная функция:

( ) ( ) ( )( ) , ( ) , ( ) ,1 1 2 2

, , , , ..., , .s h s s h s s h sn n

x f x f x f (1.5.9)

Будем считать выполненными условия: ( ) ,0, 0, 1,2, ..., ,s h si i

x f i n> > =

чего можно добиться, «сдвинув» график (1.5.9) функции ,h sf верх вдоль оси Oy, и вправо вдоль оси Ox, добавив к значениям узлов сетки и к зна-чениям сеточной функции достаточно большие положительные кон-станты. Будем восстанавливать функцию (1.5.9), используя степенную зависимость:

( ) exp( ).asf x x b= Ч (1.5.10)

Лагорифмируя соотношение (1.5.10), получим:

ln ( ) ln .sf x a x b= Ч +

В силу последнего соотношения, нашу задачу можно снова свести к задаче линейного восполнения для массива данных, определяемых по формулам:

( ) ,ln , ln , 1,2, ..., .s h h si i i i

x x f f i n= = =

Теперь параметры «a» и «b» находим по формулам (1.5.6), а вос-полняющую функцию, в соответствии с (1.5.10).

Тестовые функции. Тестовые функции лабораторной работы 1.1.

Соответствующие сеточные функции, в случае необходимости, преобра-зуются при помощи сдвигов, в соответствии с требованиями к массивам данных (1.5.7) и (1.5.9).

Требования к программе. Программа должна включать: 1. Три вида регрессии: линейную (1.5.2), показательную (1.5.8) и

степенную (1.5.10).

Page 16: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

31

2. Тестовые функции из Лабораторной работы 1.1 (по заданию преподавателя) с возможностью выбора параметра «ε». Может быть реа-лизован дискретный выбор ε по формуле: ε=2-к, к=0,1,2,…

3. Возможность выбора числа узлов равномерной сетки «n», до-пустим дискретный вариант: n=1+2к, к=2,3,4,…

4. Вывод погрешности восстановления по формуле: 1

2 2

1

1[ ] ( )

nh

i ii

Err f f x fn =

ж цчз чй щз чє -з чк ъз л ыччзи ше , (1.5.11)

где функция f(x) определяется одним из соотношений: (1.5.2), (1.5.8) или (1.5.10); а пары ( )h

i ix ,f , i 1,2,...,n= являются элементами соответствую-

щих массивов (1.5.3), (1.5.7), или (1.5.9). 5. Графику: отрисовка точек массивов (1.5.3), (1.5.7) или (1.5.9) с

одновременной отрисовкой графиков соответствующих функций вос-полнения: (1.5.2), (1.5.8) или (1.5.10).

Задание для работы с программой. Провести численные расче-

ты с различными тестовыми функциями, используя различные варианты восполнений.

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

Все выводы необходимо аргументировать результатами числен-ных расчетов и оформить в виде отчета.

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 1.6

Сглаживание сеточных функций Основная цель. Освоить алгоритм сглаживания сеточных функ-

ций, изучить его свойства. Теория и основные формулы. При работе с данными измерений

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

32

тотный шум». Дальнейшее использование таких сеточных функций, без их предварительного сглаживания, может повлечь сбои в работе вычис-лительных алгоритмов, выражающиеся в их неустойчивости, плохой ап-проксимации и т. д. С другой стороны, мы знаем, что данные измерений всегда содержат ошибки, величины которых определяются точностью используемых приборов и методов измерений. Так что «исправление» этих данных в пределах вышеупомянутой точности представляется до-пустимой процедурой. Здесь остановимся на простейшем алгоритме сглаживания, использующем оператор Лапласа, его описание можно найти также в [2].

На отрезке [0,1] рассмотрим равномерную сетку:

1( 1) , , 1,2, ..., .

1ix i h h i n

n= - Ч = =

- (1.6.1)

Пусть 1

nh h

i if f

== – сеточная функция, заданная в узлах сетки

(1.6.1). Алгоритм сглаживания сеточной функции hf состоит в замене

ее функцией 1

nh h

i ig g

== , построенной по правилу:

1 1

1 1

1 1, 2, 3, ..., 1;

2 2 2

, ,

h hh h i ii i

h h h hn n

f fg f i n

g f g f

q q - +м ж цп + ч+ -п з чп з= Ч + Ч = -чзпп чз ччзн и шппп = =ппо

(1.6.2)

где q – является параметром и удовлетворяет условиям:

1 1;q- Ј Ј (1.6.3) от выбора параметра q зависят как степень сглаживания, так и близость

исходной функции hf к ее сглаженному варианту – hg . Разберемся в механизме действия процедуры (1.6.2). С этой це-

лью приведем несколько известных фактов, доказательство которых можно найти в [2]. Рассмотрим сеточный оператор Лапласа, который действует по следующим правилам:

1 1

1 1

2

,

2, 2, 3, ..., 1;

.

h h h

h h hh h i i i

i

h h h

n n

f f

f f ff i n

hf f

+ -

мп D =пппп - +пD = - = -нпппп D =ппо

(1.6.4)

Page 17: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

33

Пусть: 0

hU – пространство сеточных функций, удовлетворяющих усло-виям:

10.h h

nf f= =

В силу (1.6.4), оператор hD переводит пространство 0

hU в это же про-странство.

О п р е д е л е н и е 1.6.1. Число l называется собственным чис-

лом оператора hD , если для некоторой функции 0

hhu UО выполнено со-

отношение:

, ( , 2, 3, ..., 1).h h h h h hi i

u u u u i nl lD = Ч D = Ч = - (1.6.5)

Функция hu в этом случае называется собственной функцией

оператора hD , отвечающей собственному числу l

В пространстве 0

hU рассмотрим скалярное произведение: 1

2,2

( , ) ,n

h h h hh i i

i

f g h f g-

=

є Ч Че (1.6.6)

и отвечающую ему норму: 11

2 22,

2

|| | | ( | | ) .n

h hh i

i

f h f-

=

є Че (1.6.7)

Т е о р е м а 1.6.1. Оператор ∆h обладает набором из (n-2)-х раз-личных собственных чисел:

2

2

4sin , 1,2, ..., 2,

2k

hkk n

h

pl

ж цчз ч= Ч = -з чз чзи ш (1.6.8)

которым отвечает ортонормированный базис пространства 0

hU из соб-ственных функций вида:

1

2 sin( ) , 1,2, ..., 2.n

h

k ii

u kx k np=

є = - (1.6.9)

Последнее означает, что

2,

0, ,( , )

1, ,h h

k m h

k mu u

k m

мп пп= нп =ппо (1.6.10)

и для любой функции 0

hhf U∈ найдётся единственный набор чисел

21

nk k

c -=

такой, что

34

2

1

.n

h hk k

k

f c u-

=

= е (1.6.11)

Предположим, что 0

hhf UО , тогда, в силу определения (1.6.4)

оператора ∆h, соотношения (1.6.2) можно переписать в следующем виде:

2

( 1) .4

h h h hhg f fq= + - ЧD (1.6.12)

Пусть hf представима в виде (1.6.11), что возможно в силу Теоремы 1.6.1. Тогда из (1.6.11), (1.6.12) и свойства (1.6.5) собственных функций имеем:

т 2

1

,h hk k k

k

g c t u-

=

= е (1.6.13)

где 2

21 ( 1) 1 ( 1) sin .4 2k k

h hkt

pq l q

ж цчз ч= + - Ч Ч = + - Ч з чз чзи ш

В «покоординатной» форме (1.6.13) запишется так:

2

1

2 sin( ), 1,2, ..., .n

hi k k i

k

g c t kx i np-

=

= Ч =е

Сравнивая разложение (1.6.11) и (1.6.13), приходим к выводу: амплиту-

ды низкочастотных гармоник (когда 1

khk

n=

- – достаточно малы, по-

этому а значит2sin 0, 12 k

hkt

pж цчз ч» »з чз чзи ш) практически не меняются при

использовании процедуры сглаживания (1.6.2); амплитуды высокочас-тотных гармоник умножаются на θ (действительно, при

поэтому а значит21, sin 1,1 2 k

k hkhk t

n

pq

ж цчз ч= » » »з чз чз- и ш) и, если пара-

метр θ удовлетворяет условиям (1.6.3), тем самым подавляются. В этом и заключается механизм сглаживания: в «фильтрации» высокочастот-ных колебаний.

Оценим близость функций hf и hg , с этой целью воспользуемся

гильбертовой нормой (1.6.7). Считаем, что справедливо представление

Page 18: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

35

(1.6.11), используя свойство (1.6.5) и ортогональность (1.6.10) собствен-ных функций, в результате получим:

( )

2 222,

1 1 2,2 2 222 2 2 2

max 2,1 21 1

|| || ,

( max ) .

n nh h h h

h k k k k k kk k h

n nh

k k k k hk nk k

f c u c u

c c f

l l

l l l

- -

= =

- -

Ј Ј -= =

ж цчз чD = =з чз чзи ш

= Ч Ј Ч = Ч

е е

е е (1.6.14)

Из (1.6.8) следует:

2 2max 2 2 2

( 2)4 4 4sin cos .

2 2

h n h

h h h

p pl

й щ ж ц- чзк ъ ч= Ч = Ч Јз чзк ъ чзи шл ы (1.6.15)

Собирая вместе формулу (1.6.12), оценки (1.6.14) и (1.6.15), получим: 2

2, 2, 2,|| || (1 ) | | | | (1 ) || | | .

4h h h h h

h h h

hf g f fq q- = - Ч D Ј -

Окончательная оценка относительной погрешности:

2,

2,

| | | |1 .

| | | |

h h

h

h

h

f g

fq

-Ј - (1.6.16)

Тестовые функции. 1. «Сеточный разрыв»:

при

при

1 1, 1 ;

2 21 3

, .2 2

h

i

ni

fn

i n

e

e

мп +п Ј Јппп= нп +п- Ј Јпппо

2. «Сеточный выброс»:

при

при

при

10, 1 ;

21 1 3

, , ;2 2

50, .

2

hi

ni

n nf i

ni n

e

мп -п Ј Јппппп + +п= =нппп +пп Ј Јпппо

36

3. «Сеточная осцилляция»:

при

при

при

при

при

30, 1 ;

21 1

, ;2 2

1 1, ;

2 21 3

, ;2 2

50, .

2

h

i

ni

ni

nf i

ni

ni n

e

e

e

мп -п Ј Јппппп -п- =пппп +пп= =нппп +пп- =пппп +пп Ј Јпппо

4. «Высокочастотный шум»:

sin(2 ) sin[(2 1) ], 1,2, ..., ; 1;hi i if x k x i n kp e p= + Ч + = і

увеличение параметра «k» увеличивает частоту шума. 5. Индивидуально разработанный пример.

Требования к программе. Программа должна включать: 1. Алгоритм сглаживания (1.6.2) с возможностью выбора пара-

метра θ. 2. Тестовые функции 1–5 с возможностью выбора параметра

«e » по формуле: 2 , 0,1,2,...k ke -= =

3. Выбор числа узлов сетки «n» по формуле:

1 2 , 2, 3,...kn k= + =

4. Вычисление относительной погрешности по формуле:

2,

2,

|| | |( ) 100

|| | |

h h

hh

h

h

f gErr f

f

-є Ч , (в % к исходной функции hf ) (1.6.17)

5. Графику: одновременная отрисовка графиков функций hf и hg , проинтеполированных кусочно-линейным сплайном; отрисовка уз-

лов сетки 1

ni i

x=

и опорных точек графиков: 1

( , )h ni i i

x f=

, 1

( , )h ni i i

x g=

.

Page 19: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

37

Задание для работы с программой. Провести численные расче-ты, изменяя значения параметров θ, n, ε и k; использовать все тестовые функции.

1. Проиллюстрировать численными экспериментами приведен-ный теоретический анализ.

2. Какие значения параметра θ приводят к минимальному сглажи-ванию? К максимальному сглаживанию?

3. В задачах 1–5 провести максимально-допустимое сглаживание, оставаясь в пределах 5%-ной погрешности, 10%-ной погрешности, 30%-ной погрешности. Проконтролировать процесс выводом относительной погрешности (1.6.17).

Все выводы необходимо аргументировать результатами числен-ных расчетов и оформить в виде отчета.

39

Глава 2. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ Простейшие способы приближенного вычисления определенных

интегралов

( )b

a

I f x dx= т ,

основаны на замене интеграла конечной суммой

1

( )n

i ii

c f x=е ,

в которой i

c – числовые коэффициенты, а i

x – точки отрезка [a,b]

(i=1,2,…n). Предполагаем в дальнейшем, что, по крайней мере, [ , ].f C a bО Приближенное равенство

1

( )n

i ii

I c f x=

» е

называется квадратурной формулой, точки i

x – узлами квадратурной

формулы, а числа i

c – коэффициентами квадратурной формулы.

Величину

1

[ ] ( ) ( )b n

i iia

f f x dx c f xd=

= - ет

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

Обсуждаемые ниже методы вычисления интегралов не относятся к числу элементарных и расширяют материал, обычно предлагаемый в традиционных курсах численных методов.

Page 20: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

40

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 2.1

Экстраполяция Ричардсона и метод Ромберга для вычисления интегралов

Основная цель. Познакомиться с методом экстраполяции Ричард-

сона – одним из эффективных методов уточнения вычислительных алго-ритмов. Освоить метод Ромберга для вычисления интегралов, основанный на экстраполяции Ричардсона и квадратурной формуле трапеций.

Теория и основные формулы. Обсудим в общей форме один из методов повышения точности вычислительных алгоритмов. Этот метод обычно называют методом экстраполяции Ричардсона. Предположим, что вычисляется некая величина «M», причем базовый вычислительный алгоритм в качестве приближенного значения M дает величину «M(h)», зависящую от некоторого достаточно малого и положительного пара-метра «h» (обычно это шаг вычислительной сетки). Для реализации ме-тода Ричардсона важно знать структуру погрешности базового вычис-лительного алгоритма: мы будем предполагать, что имеет место сле-дующее представление:

1

( ) im

ii

M M h C hҐ

=

= + Че , (2.1.1)

в котором «mi» – некоторые известные величины, удовлетворяющие ус-ловиям:

1 20 ... ...

im m m< < < < < ,

а константы Ci, вообще говоря, не известны. Ряд (2.1.1) мы будем ис-пользовать формально, предполагая возможность осуществления ариф-метических операций с его членами. При этом мы не касаемся вопросов, связанных с исследованием его сходимости.

В дополнение к M(h) вычислим величину M на сетке с более

мелким шагом, равным 2

h , в силу (2.1.1) получим представление:

1

( ) 22

i im m

ii

hM M C hҐ

-

=

= + Че . (2.1.2)

41

Умножим представление (2.1.1) на некое число a , а (2.1.2) на число b и сложим результаты. Подчинив числа a и b условиям:

1

1,

2 0,m

a b

a b -

мп + =ппнп + Ч =ппо

в итоге получим:

( )11

1 12

2 ( ) 2 12

2 1 2 1

i

i

mm m

m

im mi

hM M hM C h

=

Ч - -= + Ч Ч

- -е . (2.1.3)

Формула (2.1.3) говорит о том, что первое слагаемое в (2.1.3) ап-

проксимирует величину M c порядком 2mh , что точнее, чем исходный ва-риант (2.1.1). Процесс уточнения аппроксимации для величины M можно продолжить, сделаем это, рассуждая по индукции. Переобозначим:

1( )M h M(h)є и предположим, что построено k-е уточняющее прибли-

жение Mk(h) для величины M, которое удовлетворяет соотношению:

( )( ) im kk i i

i k

M M h C h aҐ

=

= + Ч Че . (2.1.4)

Заметим, что при k=1 и (1) 1i

a = соотношение (2.1.4) превращает-

ся в (2.1.1). Поступим так же, как и при выводе формулы (2.1.3): запи-шем соотношение (2.1.4) на сетке с половинным шагом:

( )( ) 22

i im mkk i i

i k

hM M C h aҐ

-

=

= + Ч Ч Че , (2.1.5)

рассмотрим линейную комбинацию формул (2.1.4) и (2.1.5) с весами, удовлетворяющими системе:

1,

2 0,km

a b

a b -

мп + =ппнп + Ч =ппо

в результате приходим к соотношению:

( )( )

1

2 ( ) 2 12

2 1 2 1

kk i

i

k k

mm m

k k m k

i im mi k

hM M hM C h a

= +

Ч - -= + Ч Ч Ч

- -е . (2.1.6)

Page 21: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

42

Теперь, в силу (2.1.6), определим последовательность уточняющих аппроксимаций величины M при помощи рекурентного соотношения

( )1 1

2 ( )2( ) , 1,2, ..., ( ) ( )

2 1

k

k

m

k k

k m

hM M hM h k M h M h

+

Ч -= = =

-, (2.1.7)

причем, для величин Mk(h) справедливо представление (2.1.4), в котором

коэффициенты ( )ki

a погрешности (см. (2.1.6)) удовлетворяют рекурент-

ным соотношениям:

( 1) ( ) (1)2 1, 1,2, ...; 1, 2, ...; 1( 1).

2 1

k i

k

m mk k

i i imk i k k ia a a

-+ -

= Ч = = + + = і-

Процесс вычисления величин ( )k

M h с использованием формулы

(2.1.7) удобно представить в виде следующей нижне-треугольной мат-рицы:

( ) ( ) ( ) ( )1 2 3 4 ...m m m mO h O h O h O h

1

1 2

1 2 3

1 2 3 4

( ) ...........

( ) ( ) ........2

( ) ( ) ( ) .........4 2

( ) ( ) ( ) ( )....8 4 2

.............................................................

M h

hM M h

h hM M M h

h h hM M M M h

(2.1.8)

в которой расчет проводится с использованием двух вложенных циклов: внешний – по строкам, а внутренний – по столбцам внутри каждой стро-

ки, причем, величины 1( )

2jhM (j = 0, 1, 2, …), стоящие в первом столб-

це, должны быть предварительно вычислены. Все вышесказанное можно формализовать, используя дополнительные обозначения:

,

( ), 12i ji j j

hR M j i-= Ј Ј , (2.1.9)

которые трансформируют матрицу (2.1.8) к следующему виду:

43

1,1

2,1 2,2

3,1 3,2 3,3

,1 ,2 ,3 ,k k k k k

R

R R

R R R

R R R R

Ч Ч Ч Ч

Ч Ч Ч

Ч Ч

Ч Ч Ч Ч Ч

Ч

(2.1.10)

Здесь: k – число уточняющих шагов в методе Ричардсона, после выполнения всей процедуры, в силу формулы (2.1.4), мы сможем гаран-

тировать аппроксимацию порядка O( kmh ). Используя формулы (2.1.7), (2.1.9) и процесс (2.1.10), запишем псевдокод для метода экстраполяции Ричардсона.

Алгоритм 2.1.1. Позволяет уточнять вычислительный метод в случае известной структуры его погрешности (см. (2.1.1)).

INPUT(k; , 1,2, ...i

m i k= ; входная информация для базового

метода M(h));

for i = 1 to k do 1,1( )

2iihR M -= ;

for i = 2 to k do

for j = 2 to i do 1

1

, 1 1, 1

,

2

2 1

j

j

m

i j i j

i j m

R RR

-

-

- - -Ч -

=-

;

k,k( ) R

kM h = ;

OUTPUT( ( )k

M h )

Обсудим процедуру вычисления интеграла методом Ромберга.

Этот метод основан на применении описанной выше экстраполяции Ри-чардсона для вычисления определенного интеграла:

( )b

a

I f x dx= т , (2.1.11)

причем в качестве базового вычислительного алгоритма используется составная квадратурная формула трапеций (описание формулы трапеций можно найти в любом из учебников [1–5]):

1

2

( ) ( ) 2 ( ) ( )2

n

mm

hM h f a f x f b

-

=

й щк ъє + +к ъл ы

е . (2.1.12)

Page 22: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

44

Исследуя структуру погрешности квадратурной формулы трапе-ций, можно показать, что она имеет вид (2.1.1), где

2 ( 1,2,...).i

m i i= = Поэтому мы можем воспользоваться Алгоритмом

2.1.1 лишь уточнив процедуру вычисления элементов первого столбца в матрице (2.1.10). Эта процедура определяется формулой:

( ) ( )

( )

2( 1)

2

1 1

2 1

1

1

( ) ( ) 2 ( 1) ( )2 4 2

( ) 2 ( 1) ( ) 2 ( 0, 5)4

1( ) ( 0, 5) ,

2

n

m

n n

m m

n

m

h hhM f a f a m f b

hf a f a h m f b f a h m

M h h f a h m

-

=

- -

= =

-

=

й щж цчзк ъч= + + - + =з чк ъз чзи шк ъл ый щк ъ= + + - + + + - =к ъл ый щк ъ= + + -к ъл ы

е

е е

е

(2.1.13)

которая позволяет не вычислять многократно одни и те же значения функции. Используя теперь (2.1.12), (2.1.13) и Алгоритм 1.1.1, получим базовый алгоритм метода Ромберга.

Алгоритм 2.1.2. Позволяет вычислять интеграл (2.1.11) с по-

грешностью порядка O( 2kh ), где h – шаг сетки базовой формулы (2.1.12),

а k – число уточняющих шагов. Благодаря убыванию коэффициентов ki

a

в формуле (2.1.4), процесс может стартовать с h=b-a. INPUT(a,b; n -число узлов базовой формулы (2.1.12); k – число

уточняющих шагов экстраполяции Ричардсона ( 1k і ));

h= ;1

b a

n

-

-

if n=2 then 1,1

( ) ( )2

hR f a f b elseй щ= +к ъл ы

1

1,12

( ) 2 ( ( 1)) ( )2

n

m

hR f a f a h m f b

-

=

й щк ъ= + + - +к ъл ы

е ;

for i = 1 to k-1 do

begin 1

1,1 ,11

1( ( 0, 5)) ;

2

n

i im

R R h f a h m-

+=

й щк ъ= + + -к ъл ы

е

; 2 12

hh n n= = - ;

end; for i = 2 to k do

45

for j = 2 to i do 1

, 1 1, 1

, 1

4

4 1

j

i j i j

i j j

R RR

-- - -

-

Ч -=

-;

k,k

RI = ;

OUTPUT(I) Этот алгоритм легко модифицировать следующим образом. Алгоритм 2.1.3. Позволяет вычислять интеграл (2.1.11) с по-

грешностью порядка O( 2kh ), но в отличие от предыдущего алгоритма

использует лишь два одномерных массива и1, 2,j j

R R .

INPUT(a,b; n – число узлов базовой формулы (2.1.12); k – число уточняющих шагов экстраполяции Ричардсона ( 1k і ));

h= ;1

b a

n

-

-

if n=2 then 1,1

( ) ( )2

hR f a f b elseй щ= +к ъл ы

1

1,12

( ) 2 ( ( 1)) ( )2

n

m

hR f a f a h m f b

-

=

й щк ъ= + + - +к ъл ы

е ;

for i = 2 to k do

begin 1

2,1 1,11

1( ( 0, 5)) ;

2

n

m

R R h f a h m-

=

й щк ъ= + + -к ъл ы

е

for j=2 to i do 1

2, 1 1, 1

2, 1

4

4 1

j

j j

j j

R RR

-- -

-

Ч -=

-;

for j=1 to i do 1, 2,j j

R R= ;

; 2 12

hh n n= = - ;

end;

1,k

RI = ;

OUTPUT(I) Недостатком алгоритмов 2.1.2 и 2.1.3 является то, что они требу-

ют задания числа уточняющих шагов «к». Можно преобразовать эти ал-горитмы, встроив в них процедуру определения величины «к» согласно стандартному условию, основанному на Критерии Коши сходимости последовательности [9].

Page 23: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

46

Алгоритм 2.1.4. В отличие от предыдущих алгоритмов, не тре-бует задания числа уточняющих шагов экстраполяции Ричардсона, а предполагает введение параметра «e », определяющего погрешность вычисления интеграла.

INPUT(a,b; n – число узлов базовой формулы (2.1.12); e – по-грешность вычисления интеграла ( e >0));

h= ;1

b a

n

-

-

if n=2 then 1,1

( ) ( )2

hR f a f b elseй щ= +к ъл ы

1

1,12

( ) 2 ( ( 1)) ( )2

n

m

hR f a f a h m f b

-

=

й щк ъ= + + - +к ъл ы

е ;

i = 2; repeat

1

2,1 1,11

1( ( 0, 5)) ;

2

n

m

R R h f a h m-

=

й щк ъ= + + -к ъл ы

е

for j=2 to i do 1

2, 1 1, 1

2, 1

4

4 1

j

j j

j j

R RR

-- -

-

Ч -=

-;

R=Abs(2, 1, 1i i

R R-

- ); 2,i

RI = ;

for j=1 to i do 1, 2,j j

R R= ;

; 2 12

hh n n= = - ; i=i+1;

until R<e ; OUTPUT(I)

Тестовые задачи. В данной лабораторной работе предполагается вычисление определенных интегралов одного из следующих видов:

( , ) ( )b

a

I a b f x dxє т или ( , ) ( )x

a

I a x f s dsє т .

Интегралы второго вида рассматриваются как функции перемен-

ного «x», в задачах будет указано множество x на котором эти инте-

гралы требуется вычислить. Интегралы 1-6 являются «табличными», их можно найти в [10]:

47

1. 2 1

0

2( , 0,1, ...)

1

nnx dx n

n

+

= =+т ;

2. 1

0

cos(2 ) ( 0);x dxp =т

3. 1

0

sin(2 ) ( 0)x dxp =т ;

4. 1

( ln ; [1; 2]);x

dsx x

s= От

5. 2

0

( ; [ 1;1])1

xds

arctg x xs

= О -+т ;

6. 2

0

( arcsin ; [ 0.99;0.99])1

xds

x xs

= О --

т .

Далее следуют интегралы, которые могут быть вычислены с ис-пользованием специальных технических приемов, таких как замена пе-ременной, интегрирование по частям, интегрирование рациональных выражений и т.д. (см. [10]):

7. 2 2

0

4 ( 4 2arcsin ; [ 2;2])2 2

xx x

s ds x xж цчз ч- = Ч - + О -з чз чзи шт ;

8. 2

20

( 2 4 ; [ 1.99,1.99]);4

xs

ds x xs

= - - О --

т

9. 2

20

( 2( 2 1));4

xdx

x= -

10. 4

0

1( ln 2);

2tg x dx

p

= Чт

11. 1

ln ( x(ln x -1)+ 1; x [1;3]);x

s ds = От

12. 1

20

1cos(2 ) ( );

1 4x e

e x dxpp

-Ч =

Page 24: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

48

13. 1

20

2 (1 )sin (2 ) ( );

1 4x e

e x dxp

pp

-Ч =

14. 2

1

2 3( 0);

( 2)(5 )

xdx

x x

-=

+ -т

15. 1

1sin(ln ) ( sin(ln ) cos(ln ) 1 ; [1;3]);

2

x

s ds x x x x xй щ= - + Ок ъл ыт

16. 1

1cos(ln ) ( sin(ln ) cos(ln ) 1 ; [1;3]);

2

x

s ds x x x x xй щ= + - Ок ъл ыт

17. 2

2

0

cos ( 4 );x x dxp

p=т

18. параметр

23

1

sin ( 0 );a a

dx ax x

ж ц ж цч чз зч чЧ > -з зч чз зч чз зи ш и шт

19. 2

0.01

1sin ;dx

x

ж цчз чз чз чзи шт

20. 2

0.01

1cos . ;dx

x

ж цчз чз чз чзи шт

Несколько интегралов, которые не вычисляются в элементарных функциях (см.[10]):

21. интеграл ошибок2

0

( ) exp( ) (" ", x [-3;3]);x

erf x s dsє - От

22. интегральный логарифм0

( ) (" ", x [0;0,99]);ln

xds

li xs

є От

23. интегральный синус0

sin( ) (" ", x [-3;3]);

x ssi x ds

sє От

24. интегральный косинус0.01

cos( )( ) (" ", x [0.01;3]). ;

x sci x ds

sє От

Требования к программе. Программа должна включать: 7) набор тестовых задач (по заданию преподавателя);

49

8) вычисление интегралов должно производиться методом Ром-берга (используйте один из алгоритмов 2.1.2–2.1.4, по вашему усмотре-нию, либо по выбору преподавателя);

9) вывод погрешности интегрирования Err(I): a. для интегралов первого вида – это величина

Err(I)=Abs(I(a,b)- ( , )I a b% ),

где ( , )I a b% – вычисленное значение интеграла;

b. для интегралов второго вида – это величина

Err(I)=

max ( ( , ) ( , ))i

i i

x

Abs I a x I a x- % ,

где ix – множество узлов сетки из x , на которой производится вы-

числение интеграла; 10) графику:

a. при вычислении интегралов первого вида должны отрисо-вываться узлы (последней) квадратурной сетки и две криволинейные трапеции: «точная» – построенная по аналитически-заданной подинте-гральной функции и «приближенная» – кусочно-линейный интерполянт, построенный на вышеуказанной сетке;

b. при вычислении интегралов второго вида необходима отрисовка двух вариантов графика:

1. Одновременная отрисовка графиков функций I(a,x) и ( , )I a x% на

множестве x , где они определены (это множество задается вместе с

заданием функции), причем ( , )I a x% рисуется как кусочно-линейный ин-

терполянт на сетке ix , на которой он вычислялся.

2. График a) на отрезке [a; maxx]. Задание для работы с программой. Провести численные расче-

ты, используя все задействованные в программе тестовые задачи и ме-тоды. Попытаться произвести анализ метода Ромберга. Критерии каче-ства методов выбрать самостоятельно (это могут быть: число узлов ис-пользуемой сетки, необходимое для достижения заданной точности, число необходимых уточнений в алгоритме, время расчета и т.д.). Отме-тить, есть ли различия между задаваемой и достигнутой методом по-грешностями.

Все выводы необходимо аргументировать результатами числен-ных расчетов и оформить в виде отчета.

Page 25: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

50

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 2.2

Адаптивный метод вычисления интегралов

Основная цель. Познакомиться с адаптивным методом вычисле-ния интегралов, научиться его использовать при проведении практиче-ских расчетов.

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

В простейшем случае (два узла: 1 2

,x a x b= = ) формула трапе-

ций (см. [1, 2]) имеет следующий вид:

( ) ( )

( ) ( ) ( , ).2

b

a

f a f bf x dx b a S a b

+» - Ч єт

Считая, что 2[ , ]f C a bО , получим следующее представление:

1( ) ( , ) ( )( ) ( )

2i

b b

x

a a

f x dx S a b x a x b f dxxўў= + - - Чт т . (2.1.1)

Теорема о среднем для интегралов (см. [10]; функция

( )( )x a x b- - – знакопостоянна на [a, b], [ , ]x

a bx О ) позволяет погреш-

ность квадратурной формулы трапеций переписать следующим образом:

3

1( )( ) ( )

2

( )1( ) ( )( ) ( ).

2 12

b

x

ab

a

x a x b f dx

b af x a x b dx f

x

m m

ўў- - Ч =

-ўў ўў= Ч - - = - Ч

т

т (2.2.2)

51

В силу (2.2.2), формула (2.2.1) перепишется следующим образом: 3( )

( ) ( , ) ( )12

b

a

b af x dx S a b f m

-ўў= - Чт , (2.2.3)

где m – некоторая точка отрезка [a,b]. По аналогии с (2.2.2) легко по-

лучим:

2 3

1 1

( )( ) ( , ) ( ), [ , ]

2 96 2

a b

a

b aa b a bf x dx S a f am m

+

-+ +ўў= - Ч От ; (2.2.4)

3

2 2

2

( )( ) ( , ) ( ), [ , ]

2 96 2

b

a b

b aa b a bf x dx S b f bm m

+

-+ +ўў= - Ч От . (2.2.5)

Складывая (2.2.4) и (2.2.5) приходим к соотношению:

31 2

( ) ( )( )( ) ( , ) ( , )

2 2 48 2

b

a

f fb aa b a bf x dx S a S b

m mўў ўў+-+ += + - Чт . (2.2.6)

Теперь, используя очевидные неравенства:

1 2( ) ( )

min ( ) max ( )2a x b a x b

f fm f x f x M

m mЈ Ј Ј Ј

ўў ўў+ўў ўўє Ј Ј є

и свойство непрерывности функции ( )f xўў (принимает все значения на

отрезке [m,M], см. [9]), доказываем существование некоторой точки [ , ]a bmО% , для которой

1 2( ) ( )

( )2

f ff

m mm

ўў ўў+ўў= % . (2.2.7)

Представление (2.2.7) позволяет переписать (2.2.6) в следующем виде:

3( )( ) ( , ) ( , ) ( )

2 2 48

b

a

b aa b a bf x dx S a S b f m

-+ +ўў= + - Чт % . (2.2.8)

Сравним представления (2.2.7) и (2.2.8), считая, что m m» % – это

единственное допущение, которое может повлиять на точность метода адаптации, заметим, что погрешность этого допущения тем меньше, чем меньше длина отрезка [a, b]. В результате такого сравнения и неслож-ных вычислений находим:

Page 26: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

52

3( ) 4( ) ( , ) ( , ) ( , )

12 3 2 2

( ) ( )4 4( , ).

3 2 2 2 3

b a a b a bf S a S b S a b

f a f bb a a bf a b

m

d

й щ- + +к ъўў- Ч » + - =к ъл ы

й щж ц +- + чзк ъч= Ч Ч - єз чк ъз чзи шк ъл ы

(2.2.9)

В силу (2.2.9) формулу (2.2.3) перепишем в виде:

4( ) ( , ) ( , )

3

b

a

f x dx S a b a bd» +т . (2.2.10)

Формулу Ошибка! Источник ссылки не найден. отличает от Ошибка! Источник ссылки не найден. то, что в ней величина ( , )a bd

легко вычисляется. Следующий ниже алгоритм основан на использовании формул

(2.2.9), (2.2.10), а также, очевидным образом получающейся из (2.2.9), формулы:

( , ) ( , ) ( , ) ( , )2 2

a b a bS a S b S a b a bd

+ ++ = + ;

все они используются на элементарных сеточных ячейках 1

[ , ]i i

x x+

.

Алгоритм II.2.1. Позволяет вычислить интеграл с заданной по-грешностью «e », используя составную квадратурную формулу трапе-ций на неравномерной сетке; автоматически расставляет узлы со-ставной квадратурной формулы, основываясь на величине её «локаль-

ной» погрешности 1

( , )i i

x xd+

.

INPUT(a,b; e – погрешность вычисления интеграла ( e >0));

1 2 1; ; ; 1; 2;x a x b i ne e= = = = =

1 22 1

( ) ( )( ) ;

2

f x f xS x x

+= - Ч

while i<n do begin

1 1 1( ) ( )

2 2 2i i i i i i

x x x x f x f xfd + + +й щж ц- + +чзк ъчз= Ч -чк ъз чз чзк ъи шл ы

;

if Abs(d )<3

4 ieЧ then i=i+1

else

53

begin S=S+d ; n=n+1;

for k = n downto i+2 do 1k k

x x-

= ;

11 2

i ii

x xx +

+

+= ;

for k = n-1 downto i+2 do 1k k

e e-

= ;

1 1

;2i

i i i

ee e e

+ += = ;

end; end; I=S;

OUTPUT(I; n; 1

n

i ix

=)

Тестовые задачи. В данной лабораторной работе используются

тестовые задачи лабораторной работы 2.2.1. Требования к программе. Программа должна включать: 11) набор тестовых задач (по заданию преподавателя); 12) вычисление интегралов должно производиться адаптивным

методом (используйте алгоритм 2.2.1, либо предложите свой); 13) вывод погрешности интегрирования Err(I):

a. для интегралов первого вида – это величина

Err(I)=Abs(I(a,b)- ( , )I a b% ),

где ( , )I a b% – вычисленное значение интеграла;

b. для интегралов второго вида – это величина

Err(I)=

max ( ( , ) ( , ))i

i i

x

Abs I a x I a x- % ,

где ix – множество узлов сетки из x , на которой производится вы-

числение интеграла; 14) графику:

a. при вычислении интегралов первого вида должны отрисо-вываться узлы (последней) квадратурной сетки и две криволинейные трапеции: «точная» – построенная по аналитически-заданной подинте-гральной функции и «приближенная» – кусочно-линейный интерполянт, построенный на указанной выше сетке.

Page 27: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

54

b. при вычислении интегралов второго вида необходима от-рисовка двух вариантов графика:

1. Одновременная отрисовка графиков функций I(a,x) и ( , )I a x% на

множестве x – где они определены (это множество задается вместе с

заданием функции), причем ( , )I a x% рисуется как кусочно-линейный ин-

терполянт на сетке ix , на которой он вычислялся.

2. График a) на отрезке [a; maxx]. Задание для работы с программой. Провести численные расче-

ты, используя все задействованные в программе тестовые задачи. Попы-таться произвести анализ адаптивного метода. Критерии качества вы-брать самостоятельно (это могут быть: число узлов используемой сетки, необходимое для достижения заданной точности, время расчета и т.д.). Отметить: есть ли различия между задаваемой и достигнутой методом погрешностями.

Все выводы необходимо аргументировать результатами числен-ных расчетов и оформить в виде отчета.

55

Глава 3. ЧИСЛЕННОЕ РЕШЕНИЕ НАЧАЛЬНОЙ ЗАДАЧИ

ДЛЯ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ И СИСТЕМ ПЕРВОГО ПОРЯДКА

Рассмотрим следующее обыкновенное дифференциальное урав-нение:

( )du t

dt= f ( )( ),t u t , ( )0,t О T . (3.1)

Под задачей Коши для уравнения (3.1) будем понимать следую-

щую задачу: найти функцию ( )10, 0,u C Cй щО T З Tк ъл ы , удовлетворяющую

уравнению (3.1) и начальному условию:

( )0u j= . (3.2)

Функция f( ),t u – двух вещественных переменных (t, u) и вещест-

венное число j в (3.1), (3.2) считаются заданными. Теорему о разреши-

мости задачи Коши (3.1), (3.2) можно отыскать в различных учебниках (см., например, [11–13]), ниже приведем без доказательства один из ва-риантов этой теоремы.

О п р е д е л е н и е 3 .1. Пусть функция f( ),t u определена

на некотором множестве W в плоскости ( ),t u . Говорят, что ( , )f t u удов-

летворяет условию Липшица по“u” в области W, если найдется посто-янная К, такая, что:

1 2 1 2( , ) ( , )f t u f t u K u u- Ј -

для любых ( ) ( )1 2, , ,t u t u ОW. Постоянная К в этом случае называется

константой Липшица (для f на W) Т е о р е м а 3.1. [13] Пусть функция f(t,u) непрерывна в об-

ласти:

( ) , 0, , , ,t u t a u b bj jй щ й щW= О О - +к ъ к ъл ы л ы

Page 28: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

56

(для некоторых а>0, b>0) и удовлетворяет условию Липшица по “u” в этой области. Пусть:

M max ( , )f t uW

= .

Тогда задача Коши (3.1), (3.2) имеет единственное решение для

bT min(a, )

M=

При обсуждении численных методов решения задачи (3.1), (3.2) будем заранее предполагать, что ее решение существует, единственно и обладает необходимыми свойствами гладкости. В настоящем разделе мы рассмотрим две группы методов: методы Рунге-Кутта и методы с итера-ционным разрешением нелинейности.

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 3.1

Методы Рунге-Кутта Основная цель. Знакомство с эффективным методом решения

нелинейных дифференциальных уравнений и систем, каким является метод Рунге-Кутта.

Теория и основные формулы метода. Рассмотрим задачу Коши

(3.1), (3.2) для обыкновенного дифференциального уравнения. Будем считать, что на отрезке [0,T] задана равномерная сетка: tk=k tЧ

(k=0,1,…m) с шагом Tm

t = . Приближенное значение величины u(tk)

будем обозначать символом .hk

u Рассмотрим три различных метода Рун-

ге-Кутта (их описание можно найти также в [1, 2]). Одностадийный метод (метод Эйлера):

0

1

,

( , ), 0,1, ... 1.

h

h h hk k k k

u

u u f t u k m

f

t+

мп =ппнп = + = -ппо

(3.1.1)

Порядок сходимости этого метода – первый: для него имеет место оценка:

( ) , ( 0,1, ... )hk k

u t u C k mt- Ј Ч =

с константой «С» не зависящей от t .

57

Семейство двухстадийных методов:

( )

( ) ( )

0

1

,

, ,

1 11 , , ,

2 20,1,... 1.

h

h h hk k k

h h h hk k k k k

u

y u f t u

u u f t u f t y

k m

f

t l

t t ll l+

мп =пппп = +ппп й щж цн чзк ъп ч= + - + +зп чк ъзп чзи шк ъп л ыпп = -ппо

(3.1.2)

Для методов (3.1.2) рассматриваем следующие значения парамет-ра l :

0 1l< Ј , сходимость двухстадийных методов определяется оценкой:

2( ) , ( 0,1, ... ).hk k

u t u C k mt- Ј Ч =

Семейство трехстадийных методов:

( )

( )

( )

0

1

2 1

1 1 2

,

2, ,

32 3 3 2

1 , , ,3 8 8 3

1 3 2 2, , , ,

4 4 3 30,1,

h

h h h

k k k

h h h h

k k k k

h h h h h

k k k k k k

u

y u f t u

y u f t u f t y

u u f t u f t y f t y

k

f

t

t t

s s

t tt s s

+

=

= +

й щж ц ж цч чз зк ъч ч= + - + +з зч чк ъз зч чз зи ш и шк ъл ый щж ц ж ц ж цч ч чз з зк ъч ч ч= + + - + + +з з зч ч чк ъз з зч ч чз з зи ш и ш и шк ъл ы

= ... 1; 0.m s

мпппппппппппппнппппппппппп - ппо

(3.1.3)

Методы семейства (3.1.3) обладают третьим порядком сходимо-сти:

3( ) , ( 0,1, ... ).hk k

u t u C k mt- Ј Ч =

Тестовые задачи. Параметр e , если не оговорено противное, считается достаточно малым и лежащим в пределах: 0 1.e< Ј

1. 2u(t )

( ) 0, (0,1];t 1

u(0) 2.

u t teмпп ў + = Оппн +пп =ппо

Решение: 2

3

2( ) .

(1 )u t

t=

+

Page 29: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

58

2. ( )2(t ) 2 ( ) exp , (0,1];

u(0) 2.

tu tu t t tee

мп ўп + = - Опнп =ппо

Решение: ( )2

2( ) 2 exp .

2

t tu tee

ж цчз чз= + -чз ччзи ш

3. ( ) ( ) , (0,1];

u(0) .

u t u t t te

f

м ўп + = Оппнп =ппо

Решение: ( ) ( ) exp( ) .tu t tj e ee

= + - + -

4. 2( ) cos ( ) ( ) 1, (0,1];

u(0) .

u t t u t te p

f

мп ў Ч + = Оппнп =ппо

Решение: ( )

( ) 1 ( 1) exp .tg t

u tp

jep

ж цчз ч= + - Ч -з чз чзи ш

5. 2 2(2 ) ( ) 2 1 [ ( )] , (0,1];

u(0) 0.

t u t u t teмп ў- = - Оппнп =ппо

Решение: ( ) sin .(2 )

tu t

te

ж цчз ч= з чз чз -и ш

6.

2 2(1 ) ( ) 1 ( ), (0,1];

1u(0) 0. .

t u t u t te

ep

мп ў+ = + Оппнп = >ппо

Решение: 1

( ) , .(1 )

tu t tg

te

e p

ж цчз ч= >з чз чз +и ш

7. 43 ( 1) ( ) ( ) ( ), (0,1];

u(0) 1.

t u t u t u t teмп ў- = + Оппнп =ппо

Решение:

3 1

1( ) .

21

(1 )

u t

t e

=

--

59

8.

3( ) ( ) ( ), (0,1];

1u(0) .2

u t tu t tu t teмп ў + = Оппнп =ппо

Решение: 2

1( ) .

1 3 exp( )u t

te

=+

9. 2( 1) ( ) ( ) ( ), (0,1];

u(0) 0.

t u t u t u t te

f

мп ў- = + Оппнп = >ппо

Решение:

1

11

(1 )( ) .

1 (1 )

tu t

t

e

ej -

-=

+ - -

10. 2 1( ) [ ( )] 0, (0,1];

u(0) , 0.

nu t u t t

n

e

f

+мп ў + = Оппнп = >ппо

Решение:

1

2

2( ) .

2 nt

n

nu t

ej

e j

ж цчз ч= Чз чз чз +и ш

11. ( ) ( ) 0, (0,1];

u(0) , 1.

t u t u t tae

f a

мп ў + = Оппнп = <ппо

Решение: 1

( ) exp .(1 )

tu t

a

je a

-ж цчз чз= Ч - чз ччз -и ш

12. 2( ) ( ) [ ( )] , (0,1];

u(0) .

u t au t bt u t te

f

мп ў - = Оппнп =ппо

Решение:

2

1( ) .

1exp

u tb b at

ta a a

e e

j e

=ж ц ж ц ж цч ч чз з зч ч чЧ - + - -з з зч ч чз з зч ч чз з зи ш и ш и ш

12.1 2( ) ( ) [ ( )] , (0,1];

u(0) 1.

u t u t t u t teмп ў = - Оппнп =ппо

Page 30: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

60

Решение: 1

( ) .

(1 ) exp

u xx

x e ee

=ж цчз ч- + + -з чз чзи ш

12.2 2( ) ( ) [ ( )] , (0,1];

u(0) 0.1.

u t u t t u t teмп ў = + Оппнп = -ппо

Решение: 1

( ) .

(10 ) exp

u tt

te ee

=ж цчз ч- - + -з чз чзи ш

12.3 2( ) ( ) 2 [ ( )] , (0,1];

u(0) 0.1.

u t u t t u t teмп ў = - Оппнп =ппо

Решение: 1 1

( ) .2

(5 ) exp

u tt

t e ee

= Чж цчз ч- + + -з чз чзи ш

13. Обобщенное логистическое уравнение (эволюция биомассы в усло-виях ограниченных ресурсов):

( ) c( )( ), (0,1];

u(0) .

u t u a b u te

f

м ўп = - - Оппнп =ппо

Решение:

( )( ) ( ) exp

( ) .( )

( ) ( ) exp

c b a ta b b a

u tc b a t

b a

j je

j je

ж ц- чз ч- + - з чз чзи ш=

ж ц- чз ч- + - з чз чзи ш

13.1 ( ) ( 1)( 2), (0,1];

u(0) 1.

u t u u teм ўп = + - Оппнп =ппо

Решение:

31 4 exp

( ) .3

1 2 exp

t

u tt

e

e

ж цчз ч- + -з чз чзи ш=

ж цчз ч+ -з чз чзи ш

13.2 ( ) ( 3), (0,1];

u(0) 2.

u t u u teм ўп = - + Оппнп = -ппо

61

Решение: 6

( ) .3

2 exp

u tt

e

= -ж цчз ч+ з чз чзи ш

13.3 4 ( ) ( 3)(1 ), (0,1];

u(0) 2.

u t u u teм ўп = + - Оппнп = -ппо

Решение:

9 exp

( ) .

3 exp

t

u tt

e

e

ж цчз ч- + з чз чзи ш=

ж цчз ч+ з чз чзи ш

13.4 Уравнение Риккати:

2

( ) , (0,1];

u(0) .

uu t a t

ae

f

мпп ў = - Оппнпп =ппо

Решение: ( ) .

ta th

u t at

a th

je

je

ж цчз ч+ Ч з чз чзи ш= Ч

ж цчз ч+ Ч з чз чзи ш

14. Уравнение Абеля 2-го рода:

1( ) cos(2 t), t (0,1];

u(0) , e-1.

u t uu

p p

f f

м ж цп чп зў ч= - Оп з чп з чзн и шпп = >ппо

Решение: 2( ) ( 1) exp[sin(2 )] 1u t tj p= - Ч + .

15. Система уравнений Лотки–Вольтерра (модель хищник-жертва):

0 0

(t ) [a-bv(t )] u(t ),

v (t ) [cu(t )-d] v(t ), t 0,

u(0) u , (0) .

0, 0, 0, 0.

u

v v

a b c d

м ўп = Чппп ў = Ч >ппнп = =ппп > > > >ппо

Page 31: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

62

16. Однородная «b-e » модель турбулентности:

С

С

2

2

1 2

0 0

0 0 1 2

[ ( )]( ) ( ),

( )[ ( )]

( ) ( ) , 0,( )

(0) , (0) ,

0, 0, , (1,2].

u tu t v t

v tv t

v t C u t tu t

u u v v

u v C

a

a

мпп ў = Ч -ппппппп ў = Ч - Ч >нпппп = =ппп > > Оппо

Решения задачи 16:

С С1 1 1

1 11 1( ) ( ) ( ) , ( ) ( ) ( )Cu t t f t v t t f tq q- -й щ й щ= Ч = Чк ъ к ъл ыл ы

,

где: a) при 0 :a >

С2 1

2

1 12 2

0 2

1 12 2

0 2

1 1 1 12 2 2

0 2 0 2

[t (C 1) ]( ) ,

1 [t (C 1) ]

( ) [t (C 1) ] [t (C 1) ;

C

C

f a th af t

f a th a

t ch a f a sh aq q

-

-

--

мпп + Ч -пп =пппп + Ч -нппп й щпп к ъ= - + Ч -п к ъп л ыпо

( ) 1

01 00 0

2 0 0

1, , .

1

CuC v

a fC u v

a q-

є є є-

b) при 0 :a =

С2 1

2

0

0 2

10 0 2

( ) ,1 t (C 1)

( ) 1 t (C 1) .C

C

ff t

f

t fq q-

-

мпп =ппп + Ч -нппп й щ= + Ч -п к ъл ыпо

с) при 0 :a <

С2 1

2

1 12 2

0 2

1 12 2

0 2

1 1 1 12 2 2

0 2 0 2

[t (C 1) ]( ) ,

1 [t (C 1) ]

( ) cos[t (C 1) ] sin[t (C 1) ] .

C

C

f a tg af t

f a tg a

t a f a aq q

-

-

--

мпп - Ч -пп =пппп + Ч -нппп й щпп к ъ= - + Ч -п к ъп л ыпо

63

В задаче 16 целесообразно рассмотреть следующие варианты вы-бора констант:

С С

С1 2

1 2

1 2

1 2

1.5;

1.5, 2;

1.5, 1.52;

1.52, 1.5.

C

C C

C C

= =

= =

= =

= =

17. Линейная динамическая система:

0 0

( ) ( ),

v (t ) bu(t ) v(t ), t 0,

u(0) u , (0) .

u t v t

a

v v

мп ў =ппп ў = + >нппп = =по

Эта задача эквивалентна задаче Коши для уравнения (см. [11]):

0 0

( ) ( ) ( ) 0,

x(0) u , (0) .

x t ax t bx t

x v

м ўў ўп - - =ппн ўп = =ппо

Решения задачи 17: характеристическое уравнение:

2 b 0,al l- - = (3.1.4) его решения:

2

1,2 2 2

a abl

ж цчз ч= ± +з чз чзи ш.

a) Комплексные корни уравнения (3.1.4) («фокус», «центр»):

2

0,2

aDis b

≡ + <

1

21,2

Re Im2

ai Dis il l l= ± Ч є ± Ч .

0 00

2

0 0

0

Re( ) exp( Re ) cos( Im ) sin( Im ) ,

Im

Re( ) exp( Re ) cos( Im ) sin( Im ) .

Im

v uu t t u t t

v uv t t v t t

ll l l

l

l ll l l

l

м й щп -п к ъп = Ч Ч + Ч Чп к ъп к ъп л ып й щн -п к ъп к ъп = Ч Ч + Ч Чп к ъпп к ъп л ыо

Page 32: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

64

a.1) Re 0l < Ю устойчивый фокус (можно выбрать: a=b=-2),

a.2) Re 0l = Юцентр (можно выбрать: a=0, b= 2, Rw w- О ),

a.3) Re 0l > Ю неустойчивый фокус (можно выбрать: a=2, b=-2),

0 0

0u v= = Юточка покоя.

b) Вещественные и различные корни уравнения (3.1.4) («узел», «седло»):

2

02

aDis b

ж цчз чє + >з чз чзи ш,

1

21,2 2

aDisl = ± .

0 2 0 1 0 1 0 2

1 2

1 0 2 0 1 2 0 1 0 2

1 2

1( ) ( ) exp( ) ( ) exp( ) ,

1( ) ( ) exp( ) ( ) exp( ) .

u t v u t v u t

v t v u t v u t

l l l ll l

l l l l l ll l

мпп й щ= - - -п к ъл ып -ппнпп й щ= Ч - Ч - Ч - Чп к ъл ып -ппо

b.1) 1 2

0, 0l l< < Ю устойчивый узел (можно выбрать: a=-0.2,

b=- 34

),

b.2) 1 2

0, 0l l> > Юнеустойчивый узел (можно выбрать: a=2,

b=- 34

),

b.3) 1 2

0, 0l l> < Ю седло (можно выбрать: a=2, b=3).

c) Кратный корень 2

al = уравнения (3.1.4) («вырожденый

узел»): 2

02

aDis b

ж цчз чє + =з чз чзи ш,

0 0 0

0 0 0

( ) exp( ) ( ) ,

( ) exp( ) ( ) .

u t t u v u t

v t t v v u t

l l

l l l

м й щп = Ч + - Чп к ъп л ын й щп = Ч + Ч - Чп к ъл ыпо

Требования к программе. Программа должна включать: 1. Методы Рунге-Кутта с возможностью выбора параметров или

при их фиксированных значениях (по усмотрению преподавателя).

65

2. Тестовые задачи (по выбору преподавателя). 3. Вывод относительных погрешностей по формуле:

Err 0

0

max ( )100(%)

max ( )

h

k kk m

kk m

u t u

u t

Ј Ј

Ј Ј

-є Ч .

4. Возможность выбора числа узлов сетки «m», или шага сетки

« t », а также параметра «e » (если он есть по условию тестовой задачи). 5. Графика: одновременная отрисовка точного и приближенных

решений (проинтерполированных кусочно-линейным сплайном). 6. При решении систем уравнений 15–17 желательна отрисовка

и траектории (u(t), v(t)) при t>0 в координатной системе (u, v). Задание для работы с программой. 1. Провести расчеты с использованием предложенных тестовых

задач, варьируя шаг сетки и различные методы Рунге-Кутта. 2. Сравнить методы между собой, ориентируясь на величину по-

грешности «Err» и визуальное восприятие. Указать наиболее точный метод.

3. Уменьшая шаг сетки проверить сходимость методов Рунге-Кутта.

Все выводы необходимо аргументировать результатами числен-ных расчетов и оформить в виде отчета.

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 3.2

Итерационные методы решения нелинейных дифференциальных уравнений

Основная цель. Знакомство с методами решения нелинейных

дифференциальных уравнений и систем, основанными на итерационных процессах Ньютона и Пикара.

Теория и основные формулы метода. Рассмотрим следующую

задачу Коши для обыкновенного дифференциального уравнения:

Page 33: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

66

( , ( )), (0, ), (0,1];

(0) .

duf t u t t T

dtu

e e

j

мпп = О Оппнпп =ппо

(3.2.1)

Мы несколько изменили уравнение (3.1), добавив в него параметр ε , который будем считать достаточно малым. Нас будут интересовать решения задачи (3.2.1), которые ограничены вне зависимости от ε . Справедливо следующее утверждение, доказательство которого мы не приводим.

Т е о р е м а 3.2.1. Предположим, что для задачи (3.2.1) выпол-

нены все условия Теоремы 3.1 и, кроме того, 1( , ) ( )f t u CО W , причем

( , ) 0uf t u aЈ - < для любых (t,u)∈Ω . (3.2.2)

Тогда решение задачи (3.2.1) существует, единственно и для него справедливы оценки:

1

0( ) max ( , ) ;

S Tu t f sj a j-

Ј ЈЈ + Ч (3.2.3)

1( ) (1 ), (0, );t

u t C e t Ta

ee-

-ў Ј + О (3.2.4)

константа С в (3.2.4) не зависит от ε Поведение решения, регламентируемое оценками (3.2.3), (3.2.4),

говорит о том, что в окрестности точки t=0 это решение формирует «пограничный слой» при 0ε → . Более подробно о таком поведении ре-шения можно узнать из монографий [16, 29].

Предлагаемый метод решения задачи (3.2.1) состоит из двух, по существу, самостоятельных процедур: итерационного процесса, позво-ляющего сводить задачу к линейной, и решения этой линейной задачи методами, рассматриваемыми в лабораторной работе 3.3. Рассмотрим подробно первую из этих процедур. Общий итерационный процесс для решения задачи (3.2.1) представим в виде:

kk 1 k k 1

k 0

dva(t,v )v F(t,v ), t (0,T);

dtv (0) ; k 1,2,...; v (t) задано.

− −ε + = ∈ = ϕ = −

(3.2.5)

Функцию k 1v (t)− читаем известной и находим функцию

kv (t) на

к-ом шаге итерационного процесса как решение задачи (3.2.5). Итерационный метод Ньютона. В (3.2.1) положим:

( ) ( )u

u

a(t,v) f (t, v);

F(t, v) f t,v f t, v v.

= −= − ⋅

(3.2.6)

67

Следующее утверждение позволяет судить о сходимости после-довательности функций k k 0v (t)∞

= к решению u(t) задачи (3.2.1).

Т е о р е м а 3.2.2. Предположим, что для задачи (3.2.1) выполне-ны условия Теоремы 3.2.1 и, дополнительно, 2f C ( )∈ Ω . Тогда задача

(3.2.5), (3.2.6) однозначно разрешима для любого k 1≥ ; для ее решения

kv (t) и решения u(t) задачи (3.2.1) справедлива оценка: k2 1

k 0u v q u v ,−∞ ∞

− ≤ ⋅ − (3.2.7)

в которой:

( ) ( ) 0 0

0 uu

q C u v

1C max f t,u : t,u .

2

∞ ≡ −

≡ ∈Ω α

(3.2.8)

Если начальное приближение

0v (t) в (3.2.5) выбрано так, что

q 1< (см. (3.2.8)), то в силу (3.2.7), итерационный процесс (3.2.5), (3.2.6)

сходится Итерационный метод Пикара. В (3.2.5) положим:

( )a(t,v) const a;

F(t,v) f t,v a v.

≡ == + ⋅

(3.2.9)

Следующее утверждение позволяет судить о сходимости после-довательности k k 0v (t)∞

= метода Пикара к решению u(t) задачи (3.2.1).

Т е о р е м а 3.2.3. Предположим, что для задачи (3.2.1) выполне-ны условия Теоремы 3.2.1. Тогда задача (3.2.5), (3.2.9) однозначно раз-решима для любого k 1≥ ; для ее решения

kv (t) и решения u(t) задачи

(3.2.1) справедлива оценка:

0( ) ,

k

ku v a u vb

Ґ Ґй щ- Ј Ч -к ъл ы (3.2.10)

где:

( ) max 1z A

za

aab

Ј Ј= - , max ( , )

uA f t u

W

й щ= -к ъл ы.

Если параметр «a» выбран так, что ( ) 1ab < , то, как следует из

оценки (3.2.10), итерационный процесс (3.2.5), (3.2.9) сходится при лю-бом начальном приближении

0v (t)

Page 34: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

68

Можно показать, что оптимальным (дающим наименьшее значе-ние величине ( )ab ) будет выбор:

2

Aa

a += ,

в этом случае оценка (3.2.10) превращается в неравенство:

0.

k

k

Au v u v

A

a

aҐ Ґ

ж ц- чз ч- Ј Ч -з чз чз +и ш

Для решения линейной задачи (3.2.5) на каждом итерационном шаге можно воспользоваться одной из схем лабораторной работы 3.3.

Контроль сходимости итерационного процесса осуществляется проверкой неравенства:

1k kv v d

- Ґ- < , (3.2.11)

с достаточно малым наперед заданным числом d . Неравенство (3.2.5) проверяется для численных решений задачи (3.2.5), найденных при по-мощи разностной схемы лабораторной работы 3.3.

В качестве начального приближения 0( )v t итерационного процес-

са (3.2.5) можно брать произвольную функцию, удовлетворяющую на-

чальному условию 0(0)v j= , в частности, наиболее простым представ-

ляется вариант 0( )v t jє .

Тестовые задачи. Тестовые задачи для нелинейных уравнений из

лабораторной работы 3.1 (задачи 5–10, 12–14). Требования к программе. Программа должна включать: 1. Методы Ньютона (3.2.5), (3.2.6) и Пикара (3.2.5), (3.2.9),

последний – с возможностью выбора параметра «a». 2. Тестовые задачи (номера, перечисленные выше, по выбору

преподавателя). 3. Вывод относительных погрешностей на расчетной сетке

0

M

m mt

=по формуле:

Err

,

0

0

max ( )100(%)

max ( )

k h

m mm M

mm M

u t v

u t

Ј Ј

Ј Ј

-є Ч ,

где ,k hm

v – численное решение линейной задачи (3.2.5).

69

4. Возможность выбора числа узлов сетки «M», или шага сетки « t », а также параметра «e » (если он есть по условию тестовой задачи).

5. Графика: одновременная отрисовка точного и приближенных решений (проинтерполированных кусочно-линейным сплайном), жела-тельно, в двух режимах: а) пошагово, в процессе реализации итерацион-ного процесса; б) после реализации итерационного процесса и выполне-ния условия сходимости (3.2.11).

Задание для работы с программой. Провести расчеты с использованием предложенных тестовых

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

грешности «Err» и визуальное восприятие. Указать наиболее точный и быстро сходящийся метод.

Варьировать начальные приближения и попытаться сравнить «области сходимости» методов Ньютона и Пикара.

Все выводы необходимо аргументировать результатами числен-

ных расчетов и оформить в виде отчета.

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 3.3

Разностные схемы для решения линейной задачи Коши Основная цель. Знакомство с разностными схемами для решения

линейных уравнений первого порядка. Теория и основные формулы. Рассмотрим линейную задачу

Коши:

( ) ( ) ( ) ( ), (0, ], (0,1];

(0) .

u t a t u t f t t T

u

e e

j

м ўп + = О Оппнп =ппо (3.3.1)

Легко показать, что в случае непрерывных функций a(t) и f(t) реше-ние задачи (3.3.1) существует, более того, его можно выписать в явном ви-де. Однако здесь мы будем интересоваться численными методами решения задачи (3.3.1), предполагая существующим и достаточно гладким ее анали-тическое решение. С этой целью рассмотрим равномерную сетку:

0 10 ... ...

m Mt t t t T= < < < < < =

Page 35: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

70

с шагом T Mt = и семейство разностных схем:

11 1

1

0

( ) (1 ) ( )

( ) (1 ) ( ), 0,1, ..., 1;

, [0,1].

h hh hm m

m m m m

m mh

u ua t u a t u

f t f t m M

u

e q qt

q q

j q

++ +

+

мп -пп + Ч + - Ч =пппн= Ч + - Ч = -пппп = Оппо

(3.3.2)

Свойства разностной схемы (3.3.2) представлены следующим ут-верждением.

Т е о р е м а 3.3.1. Предположим, что функция a(t) в задаче (3.3.1) удовлетворяет условиям:

0 ( ) , [0, ],a t A t Ta< Ј Ј О

а параметр q – следующим ограничениям:

1 2max 0, 1 1

2 A

eq

t

м ьж цп пчп пз ч- Ј Јзн эчз чп пзи шп по ю. (3.3.2)

Тогда для решения ( )u t дифференциальной задачи (3.3.1) и ре-

шения hm

u разностной задачи (3.3.2) справедлива оценка:

21( ) ,

2h

m m

T Cu t u e q t t

e aq

ж цЧ чз чз- Ј Ч - Ч + чз ччз+ и ш (3.3.3)

с константой Ce, не зависящей от и,m t q , но, возможно, зависящей от

e Наряду с семейством (3.3.2) для решения задачи (3.3.1) рассмот-

рим еще одну разностную схему:

1 2 1 2 1 2 1 2

1 2

0

,

, 0,1, ..., 1.

h h

t m m t m m t

m

h

fD u a S u a S

a

u m M

m me

j

+ + + +

+

м ж цп чп з ч+ Ч = Чп з чзпп чзи шнппп = = -ппо

(3.3.5)

Здесь:

( )

1 2 1 2

1 2 1

1 2

1 2

1 11 2 1 2

1 ( ) 1 ( ),

2 21

, ( ) ,2

( ) ( ), .

2

m mh h h

t m m m

m

m

h hhm m m m

m t m

R RS u u u

aR R cth R

Ra t a t u u

a D u

mm m

tm

e

t

+ +

+ +

+

+

+ ++ +

+ -= Ч + Ч

Ч= = -

+ -= =

71

Можно доказать, что для решения ( )u t дифференциальной задачи

(3.3.1) и решения hm

u разностной задачи (3.3.5) справедлива следующая

оценка сходимости:

2

( ) .h mm m

m

Ktu t u

t

et

e a e a t- Ј Ч

+ + (3.3.6)

В неравенстве (3.3.6) константа K не зависит от параметра e , что,

в соответствии с терминологией монографии [16], гарантирует «равно-мерную по e » сходимость приближенного решения к точному. Напом-ним, что в оценке сходимости (3.3.4) для семейства схем (3.3.2) констан-

та Ce может зависеть от e . Схемы, обладающие свойством равномер-

ной по e сходимости, считаются более эффективными для решения сингулярно возмущенных задач вида (3.3.1).

Тестовые задачи. Тестовые задачи для линейных уравнений из лабораторной работы 3.1 (задачи 1–4, 11), а также следующие:

1. (t ) ( ) , (0, ];

u(0) ; , , .

u a u t f t T

a f R

e

j j

м ўп + Ч = Оппнп = Оппо

Решение: ( ) exp .f at f

u ta a

je

ж ц ж цч чз зч ч= - Ч - +з зч чз зч чз зи ш и ш

2. (t ) ( ) sin( ), (0, ];

u(0) ; , , , .

u a u t b ct t T

a b c R

e

j j

м ўп + Ч = Ч Оппнп = Оппо

Решение:

2 2

1( ) exp

1 1

sin( ) cos( ) , .

b at bu t

a ac

ct cta

gj

eg ge

g g

ж ц ж цч чз зч ч= + Ч Ч - + Ч Чз зч чз зч чзз + +и ши ш

й щЧ - =к ъл ы

Page 36: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

72

3. (t ) ( ) cos( ), (0, ];

u(0) ; , , , .

u a u t b ct t T

a b c R

e

j j

м ўп + Ч = Ч Оппнп = Оппо

Решение:

2 2

1 1( ) exp

1 1

sin( ) cos( ) , .

b at bu t

a ac

ct cta

jeg g

eg g

ж ц ж цч чз зч ч= - Ч Ч - + Ч Чз зч чз зч чзз + +и ши ш

й щЧ + =к ъл ы

4. (t ) cos( ) ( ) exp( sin ), (0, ];

u(0) ; .

u t u t t t T

Rj j

м ўп + Ч = - Оппнп = Оппо

Решение: ( ) ( ) exp( sin )u t t tj= + Ч - .

5. 1

(t ) cos( ) ( ) sin(2 ), (0, ];2

u(0) ; .

u t u t t t T

Rj j

мпп ў + Ч = Оппнпп = Оппо

Решение: ( ) sin 1 (1 ) exp( sin )u t t tj= - + + Ч - .

6. (t ) ( ) ( ) sin(2 ), (0, ];

u(0) ; .

u tg t u t t t T

Rj j

м ўп + Ч = Оппнп = Оппо

Решение: 2( ) 2 cos ( ) (2 ) cos( )u t t tj= - + + Ч .

7. 2 2( 1) (t ) 2 ( ) 2 , (0, ];

u(0) ; .

t u t u t t t T

Rj j

мп ў+ Ч + Ч = Оппнп = Оппо

Решение: 3

2

1 2 3( )

3 1

tu t

t

j+= Ч

+.

Требования к программе. Программа должна включать: 1) Разностные схемы (3.3.2) и (3.3.5), первая – с возможностью

выбора параметра «q ». 2) Тестовые задачи (номера, перечисленные выше, по выбору

преподавателя).

73

3) Вывод относительных погрешностей на расчетной сетке

0

M

m mt

=по формуле:

Err 0

0

max ( )100(%)

max ( )

h

m mm M

mm M

u t u

u t

Ј Ј

Ј Ј

-є Ч ,

где hm

u – решение задачи (3.3.2), или (3.3.5), а ( )m

u t – решение задачи

(3.3.1), точнее, значения этих решений в узле m

t .

4) Возможность выбора числа узлов сетки «M», или шага сетки « t », а также параметра «e » (если он есть по условию тестовой задачи).

5) Графика: одновременная отрисовка точного и двух прибли-женных решений (найденных при помощи схем (3.3.2), (3.3.5)), проин-терполированных кусочно-линейным сплайном.

Задание для работы с программой. 1. Провести расчеты с использованием предложенных тестовых

задач, варьируя шаг сетки и используя две разностные схемы. 2. Сравнить схемы между собой (в том числе и различные вари-

анты схемы (3.3.2), изменяя параметр q ), ориентируясь при этом на ве-личину погрешности «Err» и визуальное восприятие графиков. Указать наиболее точный метод.

Все выводы необходимо аргументировать результатами числен-ных расчетов и оформить в виде отчета.

Page 37: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

Глава IV. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ КРАЕВЫХ ЗАДАЧ ДЛЯ ОБЫКНОВЕННЫХ

ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ВТОРОГО ПОРЯДКА Численные методы решения краевых задач для обыкновенных

дифференциальных уравнений рассматриваются на примере следующей задачи для линейного уравнения с малым параметром при старшей производной:

0 0 0

1 1 1

( ) ( ) ( ) ( ) ( ) ( ), (0,1);

(0) (0) ,

(1) (1) .

u x a x u x b x u x f x x

u u

u u

e

z h e j

z h e j

мп ўў ўЧ + Ч - Ч = Оппп ўЧ - Ч Ч =нпп ўп Ч + Ч Ч =по

(4.1)

В (4.1): 0e > – малый параметр; a(x), b(x), f(x) – непрерывные

функции на отрезке [0,1], причем b(x)і 0 для [0,1]x О ; для парамет-

ров, входящих в краевые условия предположим выполненными нера-венства:

0 1 0 10, 0, 0, 0;m m n nі і і і

0 0 1 10, 0.m n m n+ > + >

Если к перечисленным выше условиям добавить еще одно:

1

0 1

0

( ) 0,b x dx z z+ + >т

то можно гарантировать существование и единственность классическо-го решения задачи (4.1) (см. [14]).

Задачи вида (4.1) являются простейшими математическими моде-лями диффузионно-конвективных процессов и родственных физиче-ских явлений [15]. Наличие относительно малых подобластей с больши-ми градиентами решения, которые возникают при малых значениях па-раметра e , делают такие задачи сложными для численной реализации и требует использования разностных схем, учитывающих их специфи-ку [16].

75

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 4.1

Монотонные разностные схемы для линейных уравнений

Основная цель. Познакомиться с монотонными разностными

схемами для решения простейших краевых задач с краевыми условиями общего вида. В том числе, рассмотреть задачи, решения которых фор-мируют пограничные слои.

Теория и основные формулы. На отрезк [0,1] рассмотрим сетку

1 20 ... 1

Nx x x= < < < =

с равноотстоящими друг от друга узлами:

1

1i

ix

n

-=

-, i = 1,2,...,n;

и шагом 1

1h

n=

-. Примем также следующие обозначения:

( )i i

a a xє , ( )i i

b b xє , ( )i if f xє ,

2i

i

a hR

e

Чє

Ч, (i=1,2,…,n);

1 , 1,2, ..., 1;h h

h i ii

u uD u i n

h+

+

-є = - 1 , 2, 3, ...,

h hh i ii

u uD u i n

h-

-

-є = .

Для аппроксимации задачи (4.1.1) рассматривается следующее

семейство разностных схем, полученное с использованием простейшего метода дискретизации – метода конечных разностей:

2i i i i

i i i i i

D V D V D V D Va b V f

he g + - + -

- +Ч Ч + Ч - Ч = (4.1.1)

10 1 1 0 1 1 1

10 0 1

1( ) ( )

21

.2

m b h V n R D V

g n f h

me g

m

+

++ Ч Ч Ч - Ч Ч + Ч =

+= - Ч Ч Ч

(4.1.2)

В (4.1) i (i 1,2,...,n)γ = – параметры аппроксимационной вязкости,

их выбор и определяет разностную схему в семействе (4.1.1); неизвест-

Page 38: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

76

ными в (4.1.1), (4.1.2) являются величины , 1,2, ..., ,hi

u i n= аппроксими-

рующие значения u(xi), (i = 1, 2,…, n) точного решения задачи (4.1). Раз-ностные краевые условия (4.1.2) могут быть заменены на более точные:

10 1 1 0 1 1 1

10 0 1

1( ) ( )

21

.2

m b h V n R D V

g n f h

me g

m

+

++ Ч Ч Ч - Ч Ч + Ч =

+= - Ч Ч Ч

(4.1.3)

Здесь:

1i

i

iR

gm

-= , i = 1, 2, ..., n.

Для выбора параметров ( 1,2, ..., )i

i ng = можно предложить сле-

дующие известные из литературы варианты:

1) 1i

g = , (i = 1, 2, ..., n) – схема с центральной разностью [15];

2) ( (1i i

Rg = + , (i = 1, 2, ..., n) – схема с направленной разностью [15];

3) ( (

2

11

ii

i

R

Rg = +

+, (i = 1, 2, ..., n) – схема Самарского А.А. [17];

4) ( (( (

3

21

1

i

i

i i

R

R Rg = +

+ +, (i = 1,2,...,n) – схема Булеева Н.И. и Тимухи-

на Т.И. [18];

5) ( (

( (2

2

1 21

3 3 2

i

i i

i i

RR

R Rg

+ Ч= + Ч

+ Ч + Ч, (i = 1, 2, ..., n) – схема Булеева Н.И. [19];

6) i i i

R cthRg = Ч , (i = 1,2,...,n) – схема Ильина А.М. [16,20].

Следующая схема (El-Mistikawy & Werle [21]) не содержится в

семействе (4.1.1), для ее записи примем обозначения:

1112

( ) ( )

2i i

a x a xa +

+

+є , 1

112

( ) ( )

2i i

b x b xb +

+

+є , 1

112

( ) ( )

2i i

f x f xf +

+

+є ;

77

12

12 2

i

i

a hR

e

+

+

Чє

Ч, 1 1

2 21

2

1i i

i

cthRR

m+ +

+

є - .

В этих обозначениях разностные уравнения имеют вид:

1 12 2

1 12 2

1 12 2

1 12 2

1 12 2

(1 ) (1 )

1 1( )

2 21 1

, 2, 3, ..., 1;2 2

h hi i i i

i i hi i i

i i

i i

R R D u R R D uh h

b b u

f f i n

e em m

m m

m m

+ + - -

+ -

+ -

+ -

+ -

Ч + Ч + Ч - Ч + Ч - -

+ -- Ч + Ч Ч =

+ -= Ч + Ч = -

(4.1.4)

12

1 12 2

12

12

12

1 12 2

12

12

0 1 0 1

0 0

1 1

1 1

1( ) (1 )

21

;2

1( ) (1 )

21

.2

h h

n h hn n n n

n

n

b h u R R D u

f h

b h u R R D u

f h

mz h e m

mf h

mz h e m

mf h

+

-

- - -

-

-

++ Ч Ч Ч - Ч Ч + Ч + Ч =

+= - Ч Ч Ч

-+ Ч Ч Ч + Ч Ч + Ч - Ч =

-= - Ч Ч Ч

(4.1.5)

Разностные задачи (4.1.1), (4.1.2); (4.1.1), (4.1.3) и (4.1.4), (4.1.5) могут быть записаны в виде:

1 1 1 2 1

1 1

1

,

, 2, 3, ..., 1;

.

h h

h h hi i i i i i i

h hn n n n n

B u C u F

A u B u C u F i n

A u B u F- +

-

Ч - Ч =

- Ч + Ч - Ч = = -

- Ч + Ч =

(4.1.6)

и решены при помощи метода прогонки [17] . «Внутренние» свойства дискретной задачи (4.1.6) определяются понятием монотонная разно-стная схема.

О п р е д е л е н и е 4.1.1 (см. [17]). Дискретная задача (4.1.6) на-зывается монотонной, если для нее выполнены условия:

1) 1

0B , 1

0C і , 0N

B , 0N

A і ;

2) 0i

A > , 0i

C > , i =2,3,...,n-1;

3) 1 1

B Cі , i i i

B A Cі + , (i = 2,3,...,n-1), N N

B Aі .

и хотя бы одно из этих неравенств – строгое.

Page 39: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

78

Разностные схемы (4.1.1), (4.1.2); (4.1.1), (4.1.3) и (4.1.4), (4.1.5) называются монотонными, если соответствующие им разностные зада-чи (4.1.6) монотонны для любых положительных значений параметров h и e

Известно, что монотонность разностной схемы гарантирует одно-значную разрешимость соответствующей задачи (4.1.6) (это доказано, например, в [17]), кроме того, для такой разностной схемы обеспечено выполнение достаточных условий корректности и устойчивости моно-тонной прогонки.

Предположим, что ( )U xe

– решение дифференциальной задачи

(4.1), в обозначения включена зависимость от параметра 0

(0, ]e eО ,

пусть , 1

N

i iV V

e e =є – сеточная функция являющаяся решением некото-

рой разностной задачи, аппроксимирующей задачу (4.1), например зада-чи (4.1.1), (4.1.2); (4.1.1), (4.1.3) или (4.1.4), (4.1.5). Для произвольной се-

точной функции , 1

N

i iV V

e e =є введем «сильную» сеточную норму по

формуле:

1 nmaxh h

iiv v

Ґ Ј Јє ,

напомним также, что ( )hu – проекция непрерывной функции u(x) на сет-

ку.

О п р е д е л е н и е 4.1.2 (см. [16]). Решение hue

разностной (дис-

кретной) задачи сходится к решению ( )U xe

дифференциальной задачи с

порядком p > 0, если найдется такая константа C > 0, возможно зави-сящая от e , но не зависящая от h («классическая» сходимость), что:

С( ) .h h pu u he e

- Ј Ч

Если константа «C» в последней оценке не зависит от h и от e , то говорят о «равномерной по e » сходимости с порядком «p»

Из литературы известно (например, [16]), что разностные схемы (1) – (4) не обладают равномерной по e сходимостью. Тем не менее, порядки классической сходимости для этих схем следующие: для схемы (2) – первый, для схем (1), (3), (4) – второй.

Схемы (5) (Ильина А.М.) и (6) (El_Mistikawy & Werle) обе обла-дают вторым порядком классической сходимости, кроме того, первая из этих схем гарантирует первый порядок равномерной по e сходимости, а вторая схема – второй порядок равномерной по e сходимости.

79

Все схемы, за исключением схемы с центральной разностью 1), являются монотонными в смысле Определения 4.1.1, схема 1) гаранти-рует монотонность только в случае выполнения ограничения на выбор параметров h и e :

( ) 2hh a eҐ

Ч < ,

поэтому эту схему обычно классифицируют как условно-монотонную. Тестовые задачи. Задача 1. «Уравнение с постоянными коэффициентами», считаем,

что коэффициенты уравнения в (4.1) постоянные: ( ) , ( ) 0, ( ) ,a x a b x b f x fє є і є

тогда решение задачи (4.1) можно выписать в явном виде, сделаем это, вводя обозначение для следующей функции:

-xe , 50,E(x)=

0, 50.

x

x

мп <ппнп іппо

(4.1.7)

и рассматривая три различных случая: a) 0;b

2 2

1 2

4 4,

2 2

a a b a a bs s

e e

e e

- + + += = ,

01 0 0 1 02 0 0 2, ,t s t sz eh z eh= + = +

11 1 1 1 12 1 1 2, ,t s t sz eh z eh= - = -

01 12 2 02 11 1( ) ( ),d t t E s t t E s= Ч Ч - Ч Ч

,d

)xs(Et)xs(Et)x(z

,d

)sxs(Et)sxs(Et)x(z

1022011

121121120

⋅⋅−⋅⋅=

+⋅⋅−+⋅⋅=

Точное решение:

0 10 0 1 1

( ) ( ) ( ) .f f f

u x z x z xb b b

z hj jж ц ж цЧ Чч чз зч чз з= + Ч + + Ч -ч чз зч чз зч чи ш и ш

b) 0, 0.b a=

Page 40: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

80

Точное решение:

0 1 10 0 1 1

( )( ) ( ) ( ) .

f f f xu x z x z x

a a a

e h z ehj jж ц ж цЧ Ч Ч + Чч чз зч чз з= + Ч + - Ч +ч чз зч чз зч чи ш и ш

c) 0, 0;b a= =

0 1 0 1 1 0( ),d z z e z h z h= Ч + Ч Ч + Ч

1 1 0 00 1

(1 )( ) , ( ) .

x xz x z x

d d

z e h z e hЧ - + Ч Ч + Ч= =

Точное решение: 2

1 10 0 1 1

( 2 )( ) ( ) ( ) .

2 2

f f xu x z x z x

z ehj j

e e

ж цЧ + Ччз чз= Ч + - Ч +чз чз чи ш

Задача 2. Положим в (IV.1):

2 2

2 2 1 2( ) , ( ) 0, ( ) [1 (1 )] ,

1 (1 ) (1 )

xa x b x f x x

x x x

ee e

Ч - Ч= + = = Ч + Ч + -

+ + +

0 1 0 1 0 11, 0, 1 2, 0.z z h h j j= = = = = - =

Точное решение: 21

(1 )

1

(1 )( )

22(1 )

xx x e eu x

e

ee

e

--Ч +

-

Ч - -= +

-

.

Задача 3. Положим в (4.1):

2

2

3 (1 )2 3( ) 3 (1 ) , ( ) 0, ( ) ,

1 22 (1 )

xa x x b x f x

x x

e e Ч +Ч Ч= Ч + - = = -

+ Ч +

0 1 0 1 0 17

1 1 ln 21, , 0, , 1 .

3 6 21 e e

ez z h h j j

-= = = = = - = -

-

81

Точное решение: 31 (1 )

7

ln(1 )1( ) .

21

x

xeu x

e

e

e

- +

-

+-= -

-

Задача 4. Положим в (4.1):

1

2 3 1 3

2 4 1 2 2( ) , ( ) , ( ) ,

1(1 ) (1 ) (1 )1

x ea x b x f x

xx x xe

e

e

e

-

-

й щ-к ъ

= = = - - Чк ък ъ++ + +-к ъл ы

0 1 0 1 0 11

1

1

12, 2, 1, 4, 1 ,

1

1 .1

e

e

e

e

e

e

z z h h j e j

e

-

-

-

ж цчз чз= = = = = - + + =чз чз чзи ш-

= + +-

Точное решение:

21(1 )

1( ) .

12(1 )

x

xx e eu x

xe

ee

e

Ч--

Ч +

-

-= +

+-

Задача 5. Положим в (IV.1):

2 4

2 2 4( ) , ( ) 0, ( ) ,

1 (1 ) (1 )a x b x f x

x x x

eЧ= + = =

+ + +

0 1 0 1 0 11, 0, 1, 1.z z h h j j= = = = = - =

Точное решение:

21(1 )

1

2( ) .

1(1 )

x

xx e eu x

xe

ee

e

Ч--

Ч +

-

-= +

+-

Page 41: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

82

Задача 6. Положим в (4.1):

2( ) 0, ( ) (1 ) ,a x b x x= = +

0 1 0 1 0 11, 0, 0.z z h h j j= = = = = =

Точное решение:

( ) ( )( )

2(1 )

( ) [cos( )] ,1 1

E x E xu x x

E

e ep

e

+ -= -

+

где функция E(x) определена формулой (4.1.7), а правая часть f(x) в уравнении (4.1) определяется после подстановки решения u(x) в левую часть этого уравнения.

Требования к программе. Программа должна включать: 1. Разностную схему (4.1.1), (4.1.2), или (4.1.1), (4.1.3), с воз-

можностью выбора параметров ( 2, 3...,n-1)i

ig = , или при их фиксиро-

ванных значениях, или схему (4.1.4), (4.1.5) (по усмотрению преподава-теля).

2. Тестовые задачи (по выбору преподавателя). 3. Вывод относительных погрешностей по формуле:

Err 1

1

max ( )100(%)

max ( )

h

i ii n

ii n

u x u

u x

Ј Ј

Ј Ј

-є Ч .

4. Возможность выбора числа узлов сетки «n», а также парамет-ра «e » (если он есть по условию тестовой задачи).

5. Графика: одновременная отрисовка точного и приближенных решений (проинтерполированных кусочно-линейным сплайном).

Задание для работы с программой. В процессе работы с про-

граммой и при написании отчета необходимо ответить на следующие вопросы:

1. Как ведут себя решения дифференциальных задач при e стре-мящемся к нулю?

83

2. Как влияет увеличение параметра n (при фиксированном e ) на точность разностных схем? Сопоставить численные результаты с теоре-тическими оценками сходимости.

3. Влияет ли уменьшение параметра e (при фиксированном n) на точность разностных схем (по каждой схеме отдельно)?

4. Сравнить точность разностных схем между собой и сопоста-вить экспериментально полученные результаты с теорией.

6. Исследовать монотонность используемых разностных схем. Проявляется ли наличие или отсутствие свойства монотонности в работе разностной схемы?

7. Задача 1 предполагает возможность выбора постоянных коэф-фициентов в уравнении и граничных условиях. При работе с этой зада-чей необходимо рассмотреть различные варианты пограничных слоев:

а) пограничный слой у левой границы (a > 0, bі 0), б) пограничный слой у правой границы (a < 0, bі 0), в) пограничные слои у обеих границ (a = 0, b > 0).

Page 42: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

Глава 5. ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ УРАВНЕНИЙ С ЧАСТНЫМИ ПРОИЗВОДНЫМИ

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

Из курса математического анализа известно, что число независи-мых переменных в значительной мере определяет сложность функции. Уже одно это обстоятельство приводит к серьезным осложнениям при решении краевых задач для уравнений с частными производными. Дей-ствительно, если область существования решения обыкновенного диф-ференциального уравнения – интервал, является простым объектом, то уже в двумерном случае область, имеющая криволинейные границы, требует сложного математического аппарата для ее экономичного опи-сания. Еще одна проблема, возникающая при реализации численных ме-тодов решения уравнений с частными производными, – необходимость решения многомерных сеточных уравнений. Эта проблема обсуждается в первой лабораторной работе настоящей главы, в которой на примере разностной схемы для двумерного уравнения Пуассона иллюстрируется работа классических итерационных методов. Вторая лабораторная рабо-та предполагает тестирование однопараметрического семейства разно-стных схем для нестационарной задачи теплопроводности. В третьей лабораторной работе строится семейство разностных схем для гипербо-лического уравнения первого порядка: уравнения конвективного пере-носа.

85

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 5.1

Итерационные методы решения двумерных сеточных уравнений (на примере уравнения Пуассона)

Основная цель. Научиться использовать итерационные методы

при решении двумерных уравнений математической физики. Теория и основные формулы. Пусть

( , ) | 0 1, 0 1x y x yW= Ј Ј Ј Ј

– «единичный» квадрат в плоскости (x,y) с границей

0, 0 1 1, 0 1

0 1, 0 0 1, 1 .

x y x y

x y x y

¶W= = Ј Ј И = Ј Ј И

И Ј Ј = И Ј Ј =

В области Wрассмотрим следующую краевую задачу, которую обычно называют задача Дирихле для уравнения Пуассона:

2 2 0

2 2( , ) ( , ), ( , ) \ ;

u uu x y f x y x y

x y

ж ц¶ ¶ чз чз- D є - + = ОWє W ¶Wчз ччз¶ ¶и ш (5.1.1)

u(x,y) 0, (x,y) .= О ¶W (5.1.2)

Задача (5.1.1), (5.1.2) обычно используется для описания стацио-

нарного теплового поля с источником f(x,y). Оператор D , определен-ный левой частью равенства (5.1.1), называется оператором Лапласа [22]. В области W рассмотрим равномерную сетку:

( , ) | ( 1) , ( 1) , , 1, ..., ; 1 ( 1) .hi j i j

x y x i h y j h i j n h nW є = - = - = = -

Введем обозначения: 0

,0h hW є W З W

– внутренняя часть сеточной области hW , h h¶W є W З ¶W

– граница сеточной области Ωh ,

, , 1

nh h

i j i ju u

– сеточная функция, определенная в области Ωh, и приближающая значения u(xi,yj) – точного решения задачи (5.1.1), (5.1.2) в узлах сетки.

Page 43: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

86

Для функции uh рассмотрим следующую сеточную задачу (разно-стную схему, см. [2]):

1, , 1, , 1 , , 1

, 2 2

,0,

,

2 2

, ( , ) ,

0, ( , ) .

h h h h h h

i j i j i j i j i j i jh hi j

h h

i j i jh hi j i j

u u u u u uu

h h

f x y

u x y

+ - + -м ж цп - + - + чп з чп з- D є - + ч=зп чзп ччзп и шппп = ОWнппп = О ¶Wппппппо

(5.1.3)

Здесь ,

( , )h

i j i jf f x yє . Из результатов [2] следует, что задача

(5.1.3) корректна, т.е. ее решение: а) существует, в) единственно и с) не-прерывно зависит от источника fh. Кроме того, справедлива следующая оценка сходимости приближенного решения uh к точному решению u дифференциальной задачи (5.1.1), (5.1.2):

2,

( , )

( , ) .maxh

i j

hi j i j

x y

u x y u ChОW

- Ј (5.1.4)

Наша цель: научиться решать сеточную задачу (5.1.3) (обозначим

,h

i ju – ее приближенное решение) с точностью не меньшей, чем Ch2, т.е.

с точностью не разрушающей оценку (5.1.4): 2

, ,( , )

, .maxh

i j

h hi j i j

x y

u u Chd dОW

- Ј Ј (V.1.1)

На самом деле, желательно, чтобы точность решения задачи

(5.1.3) была гораздо выше: 2Chd < < . В итоге, для приближенного ре-

шения ,h

i ju задачи (5.1.3) будем (в силу (5.1.4) и (5.1.5)) иметь оценку:

2 2, 0

( , )

( , ) .maxh

i j

hi j i j

x y

u x y u Ch C hdОW

- Ј + Ј

Для решения задачи (5.1.3) рассмотрим двухпараметрическое се-мейство итерационных методов. Введем для этого следующие сеточ-ные операторы:

0 , ,2

4;h h h

i j i ju u

hD є

1 , 1, , 12

1( );h h h h

i j i j i ju u u

h - -D є - +

,02 , 1, , 12

1( ), ( , ) .h h h h h

i j i j i j i ju u u x y

h + +D є - + ОW

87

Очевидно, что

1 0 2.h h h h- D = D + D + D

Предположим, что в процессе решения задачи (5.1.3) обход се-

точной области hW осуществляется в направлении «слева – направо и

снизу – вверх», иными словами, если значения ,h

i ju вычисляются с ис-

пользованием оператора двойного цикла, то внутренний цикл должен быть по i=1, 2, …, n, а внешний – по j=1,2,…,n. Предлагаемое семейство итерационных методов (в операторной форме) выглядит следующим об-разом:

в области

на

задано в

( ) ( 1)( 1) ,0

0 1

( )

(0)

( ) , ;

0, , 1,2, ...;

.

k kh h h k h h

k h

h

u uu f

u k

u

qt

--

мп -п D + D Ч - D = Wппппп = ¶ W =нппп - Wппппо

(5.1.6)

В (5.1.6): «k» – итерационный параметр, а

( ) ( ), , 1

nk k

i j i ju u

– сеточная функция – решение, найденное на «k-ом» итерацион-ном шаге. Перепишем уравнения (5.1.6) в «поточечной» форме:

( ) ( ) ( )

( )( )

( ) ( ) ( ) ( 1) ( 1) ( 1) ( 1), 1, , 1 1, , 1 1, , 1

2( 1) ,0, ,

( ),

4 4 4

1 ; ( , ) ;4

0, , .

k k k k k k ki j i j i j i j i j i j i j

k h h

i j i j

k hi j

u u u u u u u

hu f i j

u i j

q t q t

tt

- - - -- - - - + +

-

мп -п = + + + + + +пппппп+ - + Ч ОWнппп = О ¶Wпппппо

(5.1.7)

О свойствах итерационного алгоритма (5.1.7) (или, что то же са-мое, (5.1.6) можно судить по следующему утверждению. Предваритель-но обозначим:

2 24 sin , 4 cos .2 2

h hp pm n

ж ц ж цч чз зч чє Ч є Чз зч чз зч чз зи ш и ш

Т е о р е м а 5.1.1. Рассмотрим следующие области в параметри-

ческой плоскости ( ), :q t

( ) ( )3

1 2

(2 )2, 0 , 0 min 2 , ;

2(2 )

qq t q t q q

m qmn q

м ьм ьп пп п-п пп п ппP є Ј < < + -н н ээп п пп+ -п п ппо юп по ю

Page 44: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

88

( )3

2 2

(2 ) 2, 0 2; (2 ) .

2(2 )

qq t q q t q q

nqmn q

м ьп п-п пп пP є Ј Ј + Ј < + -н эп п+ -п пп по ю

Если 1 2

( , ) ,q t О P PU то итерационный процесс (5.1.7) (см. также

(5.1.6)) сходится, причем имеет место следующая оценка сходимости: ( ) (0) .h k k hu u q u u

Ґ Ґ- Ј Ч - (5.1.8)

В (5.1.8):

при2

12

( ) 2(2 )1 , ( , ) ;

2 (2 )q

m q t qt m q t

mq q

- + -= - Ч О P

+ - (5.1.9)

в случае2

22

( ) 2(2 )1 , ( , ) .

2 (2 )q

n q t qt n q t

nq q

- + -= - Ч О P

+ - (5.1.10)

Так как при численном решении осуществляется конечное число

итераций, то важно знать, за сколько итерационных шагов начальная по-грешность уменьшается в заданное число раз «m». В силу неравенства (5.1.9) это число шагов «k» удовлетворяет оценке:

ln( ).

1ln( )

mk

q

і

Величина 1lnq

ж цчз чз чзи ш называется скоростью сходимости итераци-

онного процесса; чем больше эта величина (чем меньше q), тем быстрее сходится итерационный процесс.

Рассмотрим известные итерационные методы и исследуем их скорость сходимости (эти методы можно также найти в монографии [2]).

1. Семейство явных методов: θ=0. 1а) Метод Якоби: 0, 1.q t= = В этом случае пара (0,1) лежит в

области П2, и в силу формулы (5.1.10) получим: cos( ).q hp=

Оценим скорость сходимости итераций:

при2 2 2 21 1

1 ln , 0.2 2

h hO h

q q

p pж цж ц чч зз чч з» + Ю = ®з чч зз ччз чзи ш и ш

89

1б) Явный метод с оптимальным набором параметров. (Чебы-

шевский итерационный процесс). Параметры k

t (k =1,2,…,n) подбира-

ются таким образом, чтобы при заданном числе итераций “n” миними-зировать погрешность

( )h nu uҐ

- ,

возникающую на n-ой итерации:

1;

k

kz

t = )(2 1

cos ,2 2 2k

kz

n

pn m n m -+ -= + Ч k=1,2,…,n.

Величины k

z являются нулями полинома Чебышева ( )nxT на

отрезке ,m nй щък ыл. Скорость сходимости в этом случае имеет следующую

оценку (см. [2]):

при1

ln ( ), 0.O h hq

pж цчз ч= ®з чз чзи ш

2. Семейство релаксационных методов: q t= . 2a) Метод Зейделя: 1, 1q t= = . Очевидно, что пара (1,1) лежит

во множестве П1. Из (5.1.9) получим:

( )2

2

1

1 8 sin2

qhp

=+

,

откуда:

)( 2 211O h

qp= + ,

а значит, скорость итерационного процесса определяется соотношением:

)( при2 21ln , 0.O h h

qp

ж цчз ч= ®з чз чзи ш

2б) Оптимальный метод релаксации:

2.

1q t

m= =

+

Page 45: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

90

Из (5.1.9) получим:

( )( )

21 sin

2 .1 sin

2

h

qh

p

p

-=

+

Оценим скорость сходимости в этом случае:

откуда1 1

(1 ), : ln .2 2

h hO O

q q

p pж ц ж цч чз зч ч= + =з зч чз зч чз зи ш и ш

Критерием остановки итерационного процесса обычно служит выполнение неравенства

( ) ( 1) ,k ku u d-

Ґ- Ј

в котором мы будем полагать

3

1.

( 1)O

nd

ж цчз чз= чз ччз -и ш (5.1.11)

Тестовые задачи. 1. Собственные функции сеточного оператора Лапласа hD : Параметры « l » и «m» – целые и выбираются в пределах от 1 до

n-2. Выбор пары ( l ,m) определяет выбор тестовой задачи с известным

точным решением uh . Положим в (5.1.3):

, ,sin( ) sin( ); , 1,2, ..., ;h

i j m i jf x my i j nl p p= Ч Ч =

ll

где

2 2, 2

4sin sin ; , 1,2, ..., 2.

2 2m

h mhm n

h

p pl

й щж ц ж цч чз зк ъч ч= Ч + = -з зч чк ъз зч чз зи ш и шк ъл ыl

ll

Точное решение задачи (5.1.3) (зависит от l и m):

,sin( ) sin( ); , 1,2, ..., ;h

i j i ju x my i j np p= Ч =l (5.1.12)

2. Решение дифференциальной задачи (5.1.1), (5.1.2). Положим в

(5.1.1): 2( , ) 5 sin(2 ) sin( ).f x y x yp p p= Ч Ч

Точное решение задачи (5.1.1), (5.1.2):

( , ) sin(2 ) sin( ).u x y x yp p= Ч (5.1.13)

91

В этом случае функция u(xi,yj) не является точным решением се-точной задачи (5.1.3), а близко к нему при достаточно малых сеточных шагах «h» (см. оценку (5.1.5)).

Требования к программе. Программа должна включать: 1. Итерационный процесс (5.1.7) с возможностью выбора пара-

метров q и t . 2. Тестовые задачи (по выбору преподавателя). 3. Возможность выбора числа узлов сетки “n”. Допустим дис-

кретный вариант: n = 1+2κ , k = 2, 3….

4. Вывод итоговой погрешности:

, ,( , )max

hi j

h hi j i j

x yu u

ОW-

– в случае тестовой задачи 1, и

,( , )max ( , )

hi j

hi j i j

x yu x y u

ОW-

– для второй тестовой задачи. Здесь ,h

i ju – сеточная функция, найденная

после остановки итерационного процесса (5.1.7). 5. Ввод числа σ – из критерия остановки итерационного процес-

са (5.1.11), по умолчанию: σ=(N-1)-3

6. Вывод числа итераций, потребовавшихся для сходимости ме-тода.

7. Графика: Если решается задача 2, то – одновременная от-рисовка графиков функции (5.1.13) и кусочно-линейного интерполянта

решения ,h

i ju , найденного при помощи итерационного процесса (5.1.7).

При решении задачи 1 – одновременная отрисовка графиков функции sin(πlx)*sin(πmy) – проинтерполированного естественным образом ре-шения (5.1.12) задачи (5.1.3) и кусочно-линейного интерполянта реше-

ния ,h

i ju , найденного при помощи итерационного процесса (5.1.7). Дос-

таточна 2-мерная графика срезов:

( , ) | , [0,1]2

nx y x y

м ьй щп пп пк ъ= Он эк ъп пп пл ыо ю и ( , ) | [0,1],

2

nx y x y

м ьй щп пп пк ъО =н эк ъп пп пл ыо ю.

8. Дополнительные возможности программы (относятся к же-

лательным, но не обязательным): a) отрисовка областей и1 2

P P изме-

Page 46: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

92

нения параметров ( , )q t – их конфигурация может изменяться и зависит

от n; b) трехмерные графики точного решения и кусочно-линейного ин-терполянта сеточной функции – итерационного решения.

Задание для работы с программой. Провести численные расче-

ты с использованием четырех описанных выше методов по двум тесто-вым задачам, варьируя значения параметров n, ( , )ml (в рамках полу-

ченного задания). В качестве нулевого приближения всюду использо-

вать функцию (0) 0.u є Анализируя результаты расчетов, ответить на следующие вопросы.

1. Как влияет изменение числа узлов сетки (параметра n) на ско-рость сходимости методов?

2. Влияет ли «сложность решения» (параметры « l » и «m» в зада-че 1) на сходимость методов?

3. Сравнить между собой эффективность вышеописанных четы-рех методов.

Основные критерии качества: a) число итераций необходимое для реализации метода; b) погрешности; c) визуальная близость графиков точного и приближенного решений.

Все выводы необходимо аргументировать (проиллюстрировать) результатами численных расчетов и оформить их в виде отчета.

Дополнение к заданию (желательно, но не обязательно). Иссле-

довать области и1 2

P P из Теоремы 5.1.1, а также величины 2q (из

(5.1.9) и (5.1.10) – это можно сделать как численно, так и аналитически. Цель: найти набор параметров ( , )q t , который задает итерационный ме-

тод (5.1.7), сходящийся быстрее, чем метод 2б) – оптимальный метод релаксации. Существует ли такой метод?

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 5.2

Сxема с весами для уравнения теплопроводности

Основная цель. Знакомство с простейшими численными мето-дами для решения одномерных (по пространственной переменной) задач теплопроводности и диффузии.

93

Теория и основные формулы. Рассмотрим следующую задачу: найти функцию u(x,t), удовлетворяющую дифференциальному уравнению:

2

2( , );

u uf x t

t xe

¶ ¶= +

¶ ¶ 0 < x < 1; t>0; (5.2.1)

а также начальному: ( , 0) ( ),u x xf= 0 1xЈ Ј (5.2.2)

и краевым (или граничным) условиям:

0

(0, ) ( ),u t ty= 1

(1, ) ( ),u t ty= 0t і . (5.2.3)

Здесь функции 0 1

( , ), ( ), ( ), ( )f x t x t tf y y – считаются известными,

параметр (0,1]eО также задан. Задача (5.2.1)–(5.2.3) используется в ка-

честве математической модели различных физических процессов; в ча-стности она может описывать изменение температуры в однородном, теплоизолированном с боков и достаточно тонком стержне, при усло-

вии, что на его концах задан температурный режим 0 1,y y ; известны те-

пловые источники f(x,t) и начальное распределение температуры ( )xf .

Задача (5.2.1)–(5.2.3) при определенных условиях может описывать про-цесс распространения примеси в какой-либо среде под воздействием механизма диффузии. При определенных условиях на данные (функции

f,0 1

, ,f y y ) задача (5.2.1)–(5.2.3) оказывается корректной, т. е. ее реше-

ние: а) существует, б) единственно, в) непрерывно зависит от данных задачи. Эти вопросы обсуждаются, например, в [22]. Мы же, априори предполагая корректность задачи (5.2.1)–(5.2.3), обсудим простейшие методы ее численного решения.

Рассмотрим на отрезке [0, 1] равномерную сетку:

( 1)i

x i hє - Ч , 1 ( 1)h nє - , 1,2,...,i n= .

Будем считать, что по переменной «t» («временная» переменная) также задана равномерная сетка с шагом «t »:

mt m tє Ч , m = 0, 1, … .

Приближенные значения искомой функции ( , )i m

u x t в узлах дву-

мерной сетки

( , ) 1,2, ..., ; 0,1, ...i m

x t i n m= =

Page 47: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

94

обозначим символом mi

u . Для аппроксимации задачи (5.2.1)–(5.2.3) вос-

пользуемся схемой с весами (см. [2, 17]): 1

1 1

2

1 1 111 1

2

21

2

21, 2, 3..., 1; 1,2, ...

2

m m mm mmi i ii i

i

m m mmi i i

i

u u uu uf

h

u u uf i n m

h

qe

t

qe

-+ -

- - --+ -

й щ- +- + к ъ= Ч + +к ък ъл ы

й щ- +- к ъ+ Ч + = - =к ък ъл ы

(5.2.4)

0i iu (x ), i 1, 2,..., n= ϕ = ; (5.2.5)

1 0

( )mm

u ty= , 1( )m

N mu ty= , m = 0, 1, 2, … . (5.2.6)

Здесь: система (5.2.4) аппроксимирует уравнение (5.2.1) во внут-ренних узлах сетки, а уравнения (5.2.5) и (5.2.6) являются дискретными аналогами уравнений (5.2.2) и (5.2.3), соответственно. Параметр q («вес») лежит в пределах:

1 1q- Ј Ј (5.2.7) и выбирается по нашему усмотрению; от этого выбора зависят свойства схемы (5.2.4)–(5.2.6).

Для реализации схемы (5.2.4)–(5.2.6) ее удобно переписать в сле-дующем виде (для простоты считаем, что f(x,t)= 0):

0 1 0 1 0 11 1 1 1

,

2, 3, ..., 1;

m m m m m m

i i i i i iAu Bu Cu A u B u C u

i n

- - -- + - +

- + - = + +

= - (5.2.8)

1 0 1( ), ( ), 1,2, ...;m m

m n mu t u t my y= = = (5.2.9)

0 ( ), 1,2, ..., .i i

u x i nj= = (5.2.10)

задача (5.2.8)–(5.2.10) решается «пошагово» (послойно по t), причем на

каждом временном слое m

t система уравнений (5.2.8), (5.2.9) решается

методом прогонки. В (5.2.8) приняты обозначения:

0 0 0 0 0

2

(1 ), 1 ;

2(1 )

, 1 ;2

.

KA C B A C

KA C B A C

Kh

q

q

et

мп +п = = = + +ппппп -п = = = - -нппппп =пппо

(5.2.11)

Величина “K” называется разностным числом Куранта. Следую-щее утверждение содержит некоторые свойства схемы (5.2.8)–(5.2.11). Его аналогом является Принцип максимума, доказанный в [2, 17].

95

Т е о р е м а 5.2.1. Предположим, что коэффициенты схемы (5.2.8) удовлетворяют следующим условиям:

1. 0, 0, ;A C B A Cі і > +

2. 0 0 0 0 0 00, 0, 0, ( ).A C B B A C A B Cі і і і + + + +

Тогда задача (5.2.8)–(5.2.11) корректна, причем, для ее решения mi

u и для решения u(x,t) задачи (5.2.1)–(5.2.3) справедлива оценка схо-

димости:

( )2 2

1max ( , ) .m

i i m m mi nu u x t C t ht q t e

Ј Ј- Ј + + (5.2.12)

Заметим, что условие 1. Теоремы 5.2.1 гарантирует корректность

метода прогонки для задачи (5.2.8), (5.2.9). О п р е д е л е н и е 5.2.1. Разностная схема (5.2.8)–(5.2.10) назы-

вается монотонной, если для нее выполнены условия 1 и 2 Теоремы 5.2.1

Рассмотрим следующие варианты выбора параметра q . Превые три можно считать классическими: они хорошо известны по литературе (см., например, [2, 17]).

1. 1.q = - Явная схема: она не требует прогонки для решения системы (5.2.8)–(5.2.9)на каждом шаге по времени.

2. 0.q = Схема Кранка-Николсона. 3. 1.q = Схема с опережением или Чисто неявная схема. Анализируя оценку (5.2.12), можно прийти к выводу: сходимость

схемы тем лучше, чем меньше величина q . Идеальной в этом смысле,

можно считать схему Кранка-Николсона, но будет ли она всегда моно-тонна? Попытка создать всегда (для любого K>0) монотонную схему с

минимальным значением q дает следующий вариант:

4. 1max 0,1 .

Kq

ж цчз ч= -з чз чзи ш Схема с минимальной вязкостью.

Будем рассматривать ещё одну схему:

5. 3max 0,1 .

2Kq

ж цчз ч= -з чз чзи ш Схема, сохраняющая монотонность.

Анализируя формулы (5.2.11) и условия Теоремы 5.2.1, можно доказать следующее утверждение.

Т е о р е м а 5.2.2. Если выполнено условие:

Page 48: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

96

1max 1,1 1

Kq

ж цчз ч- - Ј Јз чз чзи ш, (5.2.13)

то схема (5.2.8)–(5.2.11) является монотонной в смысле определения 5.2.1

Тестовые задачи. 1. Трансформация «k»-й гармоники ряда Фурье.

Полагаем в (5.2.1)–(5.2.3):

( , ) 0f x t є ; 1 0

( ) sin( ) (1 )x kx x xj p y y= + + - ;

0 0( )t consty yє = ;

1 1( )t consty yє = ;

1,2, 3, ...k = – параметр задачи. Решение задачи (5.2.1)–(5.2.3) в этом случае будет иметь вид:

21 0

( , ) sin( ) exp( ( ) ) (1 )u x t kx k t x xp p e y y= Ч - + + - .

2. Колебательный (при x=0) температурный режим (Вариант I).

Пусть 1,2, 3, ...k = – параметр задачи. Введём обозначения:

2

kpg

eє ;

1

cos (2 ) cos (2 )( )

2 cos2

x ch x x ch xv x

ch

g g g g

g g

Ч - - - Чє

-;

2

sin (2 ) sin (2 )( )

2 cos2

x sh x x sh xv x

ch

g g g g

g g

Ч - - - Ч=

-.

В этом случае в (5.2.1)–(5.2.3) полагаем:

1

0 1

( , ) 0;

( ) ( );

( ) cos( ), ( ) 0.

f x t

x v x

t kt t

j

y p y

є

є

є є

Решение задачи (5.2.1)–(5.2.3) имеет вид:

1 2( , ) ( ) cos( ) ( ) sin( ).u x t v x kt v x ktp p= +

3. Колебательный (при x=0) температурный режим (Вариант II). Используя обозначения задачи 2, положим в (5.2.1)–(5.2.3):

2

0 1

( , ) 0;

( ) ( );

( ) sin( ), ( ) 0.

f x t

x v x

t kt t

j

y p y

є

є -

є є

Для этих данных решение задачи (5.2.1)–(5.2.3) таково:

1 2( , ) ( ) sin( ) ( ) cos( ).u x t v x kt v x ktp p= -

97

4. Разрывный (в начальный момент времени) профиль температуры. Рассмотрим вспомогательную задачу Коши:

2

2,

v v

t xe

¶ ¶=

¶ ¶ x- Ґ < < + Ґ ,t>0; (5.2.14)

1

1 2

2

, 1 / 2;

( , 0) , 1 / 2;2

, 1 / 2.

T x

T Tv x x

T x

мп <ппп +пп= =нппп >пппо

(5.2.15)

Решение этой задачи имеет вид:

2 1 2 1 2 1( , )

2 2 4

T T T T xv x t erf

te

ж ц+ - - чз чз= + Ч чз ччзи ш, (5.2.16)

где функция erf(z) известна в статистике как интеграл ошибок и опреде-ляется формулой:

2

0

2( )

zserf z e ds

p

-є Чт (5.2.17)

Перейдем от задачи (5.2.14), (5.2.15) к задаче (5.2.1)–(5.2.3) на от-

резке [0,1], спроецировав на него функцию (5.2.16). Положим в (5.2.1)–(5.2.3):

при

при

при

1

1 2

2

0 1

( , ) 0;

, 0 1 / 2;

( ) , 1 / 2;2

, 1 / 2 1.

( ) (0, ), ( ) (1, ).

f x t

T x

T Tx x

T x

t v t t v t

j

y y

є

мп Ј <ппп +пп= =нппп < Јпппо

= =

Решение задачи (5.2.1)–(5.2.3), очевидно, определяется формулой (5.2.16). Для вычисления функции (5.2.17) воспользуемся следующим рациональным представлением (см. [23]): положим для 0z і

erf(z)=1- (a1 s + a2 s

2 + a3 s3 + a4 s

4 + a5 s5) exp(-z2) + δ ,

Page 49: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

98

где:

1

1s

p z=

+ Ч

P = 0.3275911, a1= 0.254829592, a2=-0.284496736, a3 = 1.421413741, a4 =-1.453152027, a5 = 1.061405429.

При z<0 воспользуемся нечетностью функции erf(z):

erf(z)=-erf(-z).

Известно (см. [23]), что погрешность “δ” удовлетворяет оценке:

-7< 1,5 10 .d Ч

Параметрами этой задачи, помимо ε, являются величины Т1 и Т2.

Требования к программе. Программа должна включать: 1. Разностную схему (семейство схем) (5.2.8)–(5.2.11) с возмож-

ностью выбора параметра «q ». Необходимо предусмотреть возмож-ность реализации схем 1–5. Решение задачи осуществлять пошагово: m = 1, 2,…

2. Одну из тестовых задач 1–4 (по усмотрению преподавателя) с возможностью выбора соответствующих параметров.

3. Выбор числа узлов сетки «n» по формуле: 1 2kn = + , k = 2, 3, 4, …

4. Выбор числа куранта «К»: достаточен дискретный набор К = 0.1, 0.5, 0.8, 1, 5, 10, 20, 50. Шаг по времени «t » затем определяется по

формуле (см. (5.2.11)): 2K ht e= Ч . Вывод «t ».

5. Выбор параметра «e » по формуле: 2 ke -= , k =-2,-1,0,1,2,… 6. Вывод относительной погрешности по формуле (m =1,2,…):

в1

1

max ( , )( ) 100 ( %)

max ( , )

m

i m ii nm

i mi n

u x t uErr u

u x t

Ј Ј

Ј Ј

-є Ч (5.2.18)

7. Графику: на каждом шаге по времени должны отрисовываться графики точного решения тестовой задачи и численного решения, про-интерполированного кусочно-линейным сплайном; отрисовка узлов сет-

ки 1.

n

i ix

=.

8. Должна быть предусмотрена возможность возврата в началь-

ное состояние (t = 0) с любого временного шага m

t .

99

Задание для работы с программой. 1. Пользуясь условиями (5.2.13) найти условия на число Куран-

та «К», гарантирующие монотонность схем 1–5. Провести численные расчеты, варьируя значения всех параметров. Анализируя результаты расчетов, ответить на следующие вопросы. 2. Гарантирует ли выполнение условий, найденных в п.1.

а) качественное соответствие решений (точного и приближенного), б) «количественное» их совпадение (ошибка (5.2.18)). Влечет ли нару-шение этих условий ухудшение (разрушение) численного решения?

3. Сравнить между собой схемы 1–5, используя в качестве кри-териев: а) величину погрешности (5.2.18), б) визуальное соответствие графиков точного и приближенного решений.

4. Для каждой схемы 1–5 найти, если это возможно, значения параметров h и К, гарантирующее близость точного и приближенного решений с погрешностью (5.2.18)≤ 5%.

Ответы аргументировать результатами численных экспериментов и оформить в виде отчета.

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 5.3

Разностные схемы для уравнения конвективного переноса

Основная цель. Знакомство с численными методами для реше-ния одномерных (по пространственной переменной) гиперболических задач на примере простейшего уравнения конвективного переноса.

Теория и основные формулы. Рассмотрим двухслойную разно-

стную схему общего вида и обсудим некоторые ее свойства:

0 1 0 11 2 1 2 1

0 1 0 1 0 11 1 1 1

0 1 0 11 1

,

, 2,3,..., 1;

.

m m m m

m m m m m mi i i i i i i

m m m mn n n n n

Bu Cu B u C u F

Au Bu Cu A u B u C u F i n

Au Bu A u B u F

- -

- - -- + - +

- -- -

мп - = + +пппп- + - = + + + = -нппп - + = + +ппо

(5.3.1)

0 , 1,2, ..., ; 1,2, ...i i

u i n mj= = = (5.3.2)

Page 50: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

100

Т е о р е м а 5.3.1. Предположим, что коэффициенты системы (5.3.1) удовлетворяют следующим условиям:

1) 0, 0, ;A C B A Cі і > +

2) ( )0 0 0 0 0 00, 0, 0, .A C B B A C A B Cі і і і + + + +

Тогда задача (5.3.1), (5.3.2) корректна.

Более того, если функция 1mu - монотонна (например, 1 1 1

1 2...m m m

nu u u- - -Ј Ј Ј ), то решение mu задачи (5.3.1), (5.3.2) также

монотонная функция того же типа (1 2

...m m mn

u u uЈ Ј Ј )

О п р е д е л е н и е 5.3.1. Разностная схема (5.3.1), (5.3.2) назы-

вается монотонной, если для нее выполнены условия (1), (2) Теоремы 5.3.1

Заметим, что рассмотренная в лабораторной работе V.2 разност-ная схема 5.2.8–5.2.11 является частным случаем представленной здесь более общей схемы (5.3.1), (5.3.2),.

Диффузионный и антидиффузионный механизмы. В лабора-

торной работе 1.6 рассмотрено следующее преобразование сеточных функций:

( )

1 1

2

1 1 1

1 1

2 2 2

1 , 2, 3,..., 1;4, .

h hh h h i ii i i

h h hi i

h h h h h hn n n

f fg D f f

hf f i n

g D f f g D f f

q

q q

q q

q

- +ж ц+ ч+ - з чзє = + Ч =чз чз ччзи ш

= + - ЧD = -

є = є =

(V.3.1)

Кроме того, показано, что если 0

hhf UО и

2

1

nh h

k kk

f c u-

=

= е , (5.3.4)

где 2

1

nhk k

u-

= – базис пространства

0

hU из собственных функций опера-

тора hD , то

2

1

,n

h h hk k k

k

g D f t c uq

-

=

є = е ( ) 21 1 sin2k

hkt

pq

ж цчз чє + - з чз чзи ш. (5.3.5)

101

Cравнивая разложения (5.3.4) и (5.3.5) приходим к выводу: ам-

плитуды низкочастотных гармоник (когда 1

khk

n=

- достаточно мало,

то а значит2sin 0, 12 k

hkt

pж цчз ч» »з чз чзи ш) практически не меняются под воз-

действием оператора Dq (преобразования (5.3.3)); амплитуды высоко-

частотных гармоник (при 11

khk

n= »

-, очевидно:

а значит2sin 1,2 k

hkt

pq

ж цчз ч» »з чз чзи ш) умножаются на величину близкую к

“ q ”. Таким образом, при 1 1,q- Ј Ј (5.3.6)

оператор Dq подавляет амплитуды высокочастотных гармоник в раз-

ложении (5.3.4) функции hf , тем самым сглаживая ее. Такие операторы (механизмы, алгоритмы) будем называть диффузионными.

Если выполнено условие дополнительное к (5.3.6):

1q > , (5.3.7)

то оператор Dq усиливает влияние высокочастотных гармоник. В этом

случае оператор Dq будем называть антидиффузионным. Механизмы,

как диффузионный, так и антидиффузионный, определяемые формула-ми (5.3.3), будем называть явными, т.к. они не требуют дополнительных

процедур для отыскания функции hg .

Отметим, что если оператор Dq при условии (5.3.6) фильтрует

высокочастотные колебания, т.е. является диффузионным, то обратный

к нему оператор 1Dq- (когда он существует) восстанавливает их и явля-

ется антидиффузионным. То же самое можно сказать относительно ан-

тидиффузионного оператора Dq при условии (5.3.7): оператор 1D

q- в

этом случае является диффузионным. Причем, операторы 1Dq- форму-

лами (5.3.3) определяются неявно, т.к. для отыскания функции hf тре-буется дополнительно воспользоваться, например, методом прогонки.

Page 51: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

102

Найдем условия на параметр q гарантирующие обращение урав-

нений (5.3.3) или, что то же самое, существование оператора 1Dq- . Для

этого перепишем (5.3.3) в следующем виде:

1 1

1 1

1 1 1, 2, 3, ..., 1;

4 2 4, .

h h h hi i i i

h h h hn n

f f f g i n

f g f g

q q q- +

мп - + -п + + = = -ппнпп = =ппо

(5.3.8)

Воспользуемся достаточными условиями корректности метода прогонки (см. [17]), которые также гарантируют корректность задачи (5.3.8). Эти условия приводят нас к неравенству:

1 1 ,q q+ і -

которое дает: 0q і . (5.3.9)

Уравнение переноса и разностные схемы для его решения.

Рассмотрим самую простую задачу для уравнения конвективного пере-носа: задачу с начальным условием или задачу Коши:

0, 0, ;

( , 0) ( ), .

u ua t x

t x

u x x xj

мп¶ ¶п + Ч = > - Ґ < < + Ґпп¶ ¶нпп = - Ґ < < + Ґппо

(5.3.10)

Предполагается, что задана функция ( )xj , ограниченная на всей

числовой оси ( )x- Ґ < < + Ґ и ищется также ограниченная функция

u(x,t). Для простоты положим: 0a constє > (5.3.11)

и будем считать это число параметром задачи. Если функция ( )xj дос-

таточно гладкая, то решение задачи (5.3.10), (5.3.11) легко выписать:

( , ) ( )u x t x a tj= - Ч (5.3.12)

оно носит название бегущая волна. Действительно, график функции ( )xj движется слева-направо без изменения формы со скоростью, рав-

ной “a”. Об этой и других задачах для уравнения конвективного перено-са можно прочесть, например, в [24]. Численное решение задачи (5.3.10) будем искать не на всей числовой оси, а на ограниченном множестве. С этой целью рассмотрим отрезок [0,1] и равномерную сетку на нем:

1( 1) , , 1,2, ..., .

1ix i h h i n

n= - = =

-

103

Будем считать, что по переменной «t» (переменная – время) также задана равномерная сетка с шагом «τ »:

, 0,1,2, ...m

t m mt= Ч =

Приближенные значения искомой функции ( , )i m

u x t в узлах дву-

мерной сетки

( , ) 1,2, ..., ; 0,1, ...i m

x t i n m= =

обозначим символом mi

u . Не вдаваясь в тонкости, связанные с аппрок-

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

ции на границах 0 0x t= ґ і и 1 0x t= ґ і области

[0,1] [0, )ґ + Ґ определяются формулами:

1( ), (1 ), 0,1,2, ...m m

m n mu a t u a t mj j= - Ч = - Ч = , (5.3.13)

а при помощи разностной схемы вычисляются значения mi

u для внут-

ренних узлов сетки, т.е. при I = 2, 3,…, n–1 и m>0. Будем рассматривать два класса разностных схем: явные и неявные.

Явные разностные схемы. Простейший вариант метода конеч-

ных разностей в применении к задаче (5.3.10) дает, так называемую, яв-ную схему с центральной разностью:

1 111 1 0, 2, 3, ..., 1.

2

m mm mi ii i

u uu ua i n

ht

- --+ -

--+ Ч = = - (5.3.14)

Переписав уравнения (5.3.14) в виде (5.3.1), легко убедиться, что условия теоремы 5.3.1 для явной схемы с центральной разностью не вы-полняются ни при каких , 0ht > , т.е. она не является монотонной. По-

этому, отталкиваясь от схемы (5.3.14) построим класс монотонных схем, используя процедуру сглаживания сеточной функции (5.3.3). Заменим

значения 1mi

u - их сглаженным вариантом по формуле:

1 1 12

1 1 1 1 1

2

2(1 ) ,

4

m m mm m m i i ii i i

u u uhu D u u

hqq

- - -- - - + -

- +» = + - Ч (5.3.15)

считая, что q удовлетворяет условиям (5.3.6). В итоге, полагая

aK

h

t= ,

Page 52: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

104

получим следующее семейство явных разностных схем:

( )

( )

1 11

11

0

1 11 2

4 21

1 2 , 2, 3, ..., 1; 1,2, ...;4

( ), 1,2, ..., .

m m m

i i i

mi

i i

u K u u

K u i n m

u x i n

qq

q

j

- --

-+

мп -п = + - Ч + Ч +пппппн + - - Ч = - =ппппп = =ппо

(5.3.16)

И, как было условлено, к этим формулам необходимо добавить уравнения (5.3.13). Нас будет интересовать множество монотонных (в смысле определения (5.3.1) схем в семействе (5.3.16), которое, в силу теоремы 5.3.1, выделяется следующими условиями:

1 1 2 .Kq- Ј Ј - (5.3.17) Рассмотрим следующие классически-известные варианты схем из

семейства (5.3.16) (см., например, [24]): Рассмотрим следующие классически-известные варианты схем из

семейства (5.3.16) (см., например, [15]): 1. 1q = – схема с центральной разностью (5.3.14), не является

монотонной; 2. 1 2Kq = - – схема с направленной разностью; монотонная

при K 1≤ (условие на число Куранта «К»); 3. 1q = - – схема Лакса; монотонная при K 1≤ . Построим еще одну схему, которая известна как схема Лакса –

Вендроффа [15]. Для этого рассмотрим формулу Тейлора: 2 2

31 1 12

( , ) ( , ) ( , ) ( , ) ( );2i m i m i m i m

u uu x t u x t x t x t O

t t

tt t

- - -

¶ ¶= + Ч + Ч +

¶ ¶

и заменим в ней производные, в силу уравнения (5.3.10): 2 2

2

2 2, ,

u u u ua a

t x t x

¶ ¶ ¶ ¶= - Ч = Ч

¶ ¶ ¶ ¶ (5.3.18)

затем, производные аппроксимируем стандартными центральными раз-ностями:

1 121 1

1

1 1 1221 1

12 2

( , ) ( );2

2( , ) ( ).

m mi i

i m

m m mi i i

i m

u uux t O h

x hu u uu

x t O hx h

- -+ -

-

- - -+ -

-

-¶= +

¶- +¶

= +¶

(5.3.19)

В итоге получим разностную схему:

m 1 m 1 2 2 m 1 m 1 m 1m m 1 i 1 i 1 i 1 i i 1i i 2

u u a u 2u uu u a ,

2h 2 h

− − − − −− + − + −− τ − += − τ ⋅ + ⋅

105

которая содержится в семействе (5.3.16):

4. 21 2Kq = - – схема Лакса-Вендроффа, не является монотонной (см. условие (5.3.17)).

При построении семейства схем (5.3.16) мы ввели в уравнения (5.3.14) дополнительную «схемную» диффузию по формуле (5.3.15) Это было нужно для того, чтобы сделать схему (5.3.14) монотонной. Заметим, что и сама схема (5.3.14) обладает дополнительной антидиффузией, свя-

занной с аппроксимацией производной t

u , действительно (см. (5.3.19)):

m m 1 2

2i ii m 12

2 22

i m 1 i m 12

u u u u(x , t ) O( )

t 2 t

u a u(x , t ) (x , t ) O( ).

t 2 x

− −

− ∂ τ ∂= + ⋅ + τ = τ ∂ ∂

∂ τ ∂= + ⋅ + τ∂ ∂

(5.3.20)

Теперь, учитывая формулы (5.3.19) и (5.3.20), можно показать,

что разностная схема (5.3.16) эквивалентна дифференциальному урав-нению:

2 2 22 2

2(1 ) ( )

4 2

u u h a ua O h

t x x

tq t

t

й щ¶ ¶ ¶к ъ+ = - - Ч + +к ъ¶ ¶ ¶к ъл ы, (5.3.21)

которое называется первым дифференциальным приближением (п.д.п.) схемы (5.3.16) (см. [25]). Уравнение (5.3.21) отличается от (5.3.10) нали-

чием диффузионного слагаемого xx

uq

e Ч , где

2 2 22(1 ) (1 2 ),

4 2 4

h a hK

q

tq q

t te = - - = - -

которое может оказаться достаточно большим, если велик коэффициент

диффузии q

e . Присутствие в п.д.п. диффузионного слагаемого с коэф-

фициентом q

e >0 может привести к излишнему сглаживанию численного

решения. Можно попытаться компенсировать этот дефект схемы, добав-ляя к ней какой-либо антидиффузионный механизм. Например, неявный антидиффиционный алгоритм, соответствующий формулам (5.3.8), (5.3.6), для схемы (5.3.16) выглядит следующим образом:

1 1 11 1

1 1

1 1 1, 2, 3,..., 1;

4 2 4, .

m m m mi i i i

m m m m

n n

u u u u i n

u u u u

q q q- +

мп - + -п Ч + Ч + Ч = = -ппнпп = =ппо

(5.3.22)

Page 53: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

106

Где, в соответствии с (5.3.21):

21

2Kq q= + . (5.3.23)

Заметим, что для схемы с направленной разностью: 2 2

1(1 )K Kq = - + ,

а значит 1

0 1q< Ј при К≤1, и условие (5.3.9) корректности задачи

(5.3.22) выполнены. Явный антидиффузионный алгоритм, отвечающий формулам

(5.3.3) (5.3.6) для схемы (5.3.16) имеет следующий вид: 2

1 12 2

1 1

2(1 ) , 2, 3, ..., 1;

4, ,

m m mm m i i ii i

m m m mn n

u u uhu u i n

hu u u u

q + -мп - +пп = + - Ч = -пнпп = =ппо

(5.3.24)

где в соответствии с (5.3.21):

22

2(1 )Kq q= - - (5.3.25)

Для схемы с направленной разностью, в частности:

2

1 2 (1 )K Kq = + - , (5.3.26)

а значит 2

1q і при 1K Ј , и условие (5.3.9) действительно выполнено.

Как в (5.3.22), так и в (5.3.24) сеточную функцию 1

m ni i

u=

прини-

маем за окончательное решение задачи на слое m

t . Заметим, что для

схемы Лакса–Вендроффа 0q

e = , и антидиффузионный механизм для

неё не нужен. Неявные разностные схемы. В качестве отправного пункта рас-

смотрим чисто неявную схему с центральной разностью для уравнения (5.3.10):

11 1 0, 2, 3, ..., 1.2

m mm mi ii i

u uu ua i n

ht

-+ -

--+ Ч = = - (5.3.27)

Так же как и в случае явной схемы, легко убедиться в том, что (5.3.27) не является монотонной. Построим класс монотонных схем вво-дя механизм неявного диффузионного сглаживания в соответствии с (5.3.3), (5.3.9):

21 1

2

2(1 ) .

4

m m mm m m i i ii i i

u u uhu D u u

hqq + -

- +» = + - Ч

107

Получим семейство неявных схем для задачи (5.3.10):

( ) ( ) 11 1

0

1 1 11 2 1 2 ,

4 2 42, 3,..., 1; 1,2, ...

( ), 1,2, ..., .

m m m mi i i i

i i

K u u K u u

i n m

u x i n

qq q

j

-- +

мп +п- - + Ч + Ч - - - Ч =пппп = - =нппп = =пппо

(5.3.28)

К уравнениям (5.3.28) добавляются, как было оговорено, форму-лы (5.3.13).

В силу теоремы 5.3.1, монотонные схемы в семействе (5.3.28) вы-деляются неравенством:

1 2 .Kq і + (5.3.29) Причем в отличие от явных схем (5.3.16), условия монотонности

(5.3.29) не накладывает ограничений на величину числа Куранта «К». Мы будем рассматривать лишь одну неявную монотонную схему

из семейство (5.3.28): неявную схему с направленной разностью:

1 2Kq = + . (V.3.2)

Переписав (5.3.28) с учетом (5.3.30) получим:

( )11

0

1, 2, 3,..., 1; 1,2, ...;

1( ), 1,2, ..., .

m m mi i i

i i

u Ku u i n mK

u x i nj

--

мпп = + = - =ппн +пп = =ппо

(5.3.31)

Как и раньше, добавляем (там, где необходимо) к (5.3.31) уравне-ния (5.3.13). Если использовать уравнения (5.3.31) последовательно при i=2,3,…,n-1, то схема (5.3.31) оказывается, по-существу, явной и не тре-бует привлечения прогонки.

Запишем первое дифференциальнное приближение для схемы (5.3.28). По аналогии с (5.3.20), используя формулу Тейлора, получим:

1 2 22

2( , ) ( , ) ( ).

2

m mi i

i m i m

u u u a ux t x t O

t x

tt

t

-- ¶ ¶= - Ч +

¶ ¶

Используя эту формулу, а также (5.3.19), можно показать, что схема (5.3.28) эквивалентна уравнению:

2 2 22 2

2( 1) ( ).

4 2

u u h a ua O h

t x x

tq t

t

й щ¶ ¶ ¶к ъ+ = - + Ч + +к ъ¶ ¶ ¶к ъл ы (V.3.3)

Таким образом, схемная диффузия присуща и неявным схемам (5.3.28), причём она, вообще говоря, большая, чем в явных схемах (5.3.16). Убедиться в этом можно, сравнивая п.д.п. (5.3.21) и (5.3.32). Избежать излишнего сглаживания решения схемой (5.3.28) можно, как и

Page 54: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

108

в случае явных схем, применив дополнительно антидиффузионный ме-ханизм. Явный антидиффузионный алгоритм, соответствующий фор-мулам (5.3.3), (5.3.9), для схемы (5.3.28) имеет следующий вид:

2

1 12 2

1 1

2(1 ) , 2, 3, ..., 1;

4

, ,

m m mm m i i ii i

m m m mn n

u u uhu u i n

h

u u u u

q + -м ж цп - + чп з чп з= + - Ч = -чзпп чз ччзн и шппп = =ппо

(5.3.33)

где, в соответствии с (5.3.32):

22

2 .kq q= + (5.3.34)

Для схемы с направленной разностью (5.3.31):

а значит условие (5.3.7), действительно, выполнено. Заметим, что анти-диффузионные механизмы для явных (см. (5.3.24), (5.3.25)) и неявных

(см. (5.3.33), (5.3.34)) схем отличается только заданием параметра 2

q .

Монотонизация явного антидиффузионного алгоритма

Перепишем формулы (5.3.24), (5.3.33) в следующем виде (индекс

“m” опущен):

2 2 21 1

1 1 1.

4 2 4i i i iu u u u

q q q- +

- + -= + + (5.3.35)

Так как 2

1,q і то в силу Теоремы 5.3.1, схема (5.3.35) антидиф-

фузионного алгоритма не является монотонной. То же самое можно ска-зать и о неявном антидиффузионном алгоритме (5.3.22). Это означает, что использование процедур (5.3.22), (5.3.23); (5.3.24), (5.3.25); (5.3.33), (5.3.34) может, вообще говоря, привести к качественному искажению решения: изменить его монотонность, изменить структуру локальных экстремумов и т.д.

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

2 22

(1 ) 1,k kq = + + і

109

Монотонизатор Бориса-Бука [26]. Введём обозначения:

21 1 1 12 2 2

1; ; , 1,2, ..., .

4 i ii i iu u p i n

qe e

++ + +

-= D = - = D =

Используя их перепишем антидиффузионный алгоритм (5.3.35) в виде:

1 1 1 12 2 2 2

1 1

, 2, 3,..., 1;

, .

i i ii i i i

n n

u u u p p i n

u u u u

e e+ - + -

мп = - D + D = - + = -ппнп = =ппо

(5.3.36)

Величины 12

ip

+ называются «потоками», поэтому метод предло-

женный Борисом и Буком называют «методом коррекции потоков». Рассматриваются величины:

1 12 2

1 1 1 3 12 2 2 2 2

0, , , ;

1,2, ... 1.

c

i i

i i i i i

p sign

max min sign sign

i n

e

+ +

- + + + +

ж цчз= D Ччз чзи шм ьм ьж ц ж цп пп пп п ппч чз зЧ D Ч D D D Ч Dч чн н ээз зч чз зп п ппи ш и шп по юп по ю

= -

Величины 1 1 0

2

u uD = - и 1 12

n nnu u

++D = - определяем, при-

влекая точное решение:

( ) ( )12

;m m

at h atj jD = - - - - ( ) ( )12

1 1m mn

h at atj j+

D = + - - - (5.3.37)

Теперь, вместо потоков 12

ip

+, используем откорректированные

значения 12

c

ip

+:

1 12 2

1 1

, 2, 3, ... 1;

, .

c c

i i i i

n n

u u p p i n

u u u u+ -

мп = - + = -ппнп = =ппо

(5.3.38)

Монотонизация путём введения искусственной вязкости. Уравнение (5.3.36) антидиффузионного алгоритма изменяются следую-щим образом:

1 1 1 12 2 2 2

1 1

, 2, 3, ..., 1;

, .

i i i i i i

n n

u u i n

u u u u

ea ea+ + - -

мп = - ЧD + ЧD = -ппнп = =ппо

(5.3.39)

Page 55: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

110

Величины 12

ia

+ называются коэффициентами искусственной

вязкости (диффузии) и определяются следующим образом. Введём сна-чала функции:

при

при

при

11, ;

11 1

( ) , 1;1

0, 1 .

z

zz z

zz

e

ae e

мпп Јпп +ппп -п= < <нп +пп Јпппппо

1 2 1 2

1 2

1 2 1 2 1 2 3 2

.i i

i

i i i i

a a a+ +

+

- + + +

ж ц ж цD Dч чз зч чз зч ч= Чз зч чз зч чD + D D + Dз зч чч чз зи ш и ш

Алгоритмически удобно считать, что если

1/ 2 1/ 20

i iz

- += D + D = ,

то

и1 2 1 2

1 1i i

z z

+ -D D

= = ,

1/ 2D и

/ 2nD определяем по формулам (5.3.37).

Тестовые задачи. Положим в (5.3.37): 1. «Ступенька».

при

при

1, 0;( )

0, 0.

xx

xj

мп Јпп= нп >ппо

2. «Обратная ступенька».

при

при

0, 0;( )

1, 0.

xx

xj

мп Јпп= нп >ппо

3. «Уступ».

при

при

при

0, 1 4;

( ) 1, 1 4 0;

0, 0.

x

x x

x

j

мп < -ппп= - Ј Јнппп >по

111

4. «Гладкая периодическая функция».

5. Индивидуально разработанный пример. Во всех случаях точное решение задачи (5.3.10) определяется

формулой (5.3.12). Требования к программе. Программа должна включать. 1. Вариант 1: Семейство явных схем (5.3.16) с возможностью вы-

бора параметра «q ». Предусматривается возможность использования явных схем 1–4.

Вариант 2: Семейство неявных схем (5.3.28). Достаточно преду-смотреть возможность реализации схемы с направленной разностью (5.3.31). Выбор параметра «a»: можно ограничиться случаем: a=1/2; 1; 2. Решение задачи осуществлять пошагово: m=1, 2,…

2. Вариант 1: а) неявный антидиффузионный алгоритм (5.3.22) для схемы 2; б) явные антидиффузионные алгоритмы с монотонизацией (5.3.38), (5.3.39) для этой же схемы.

Вариант 2: а) явный антидиффузионный алгоритм (5.3.24) для схемы (5.3.31); б) явные антидиффузионные алгоритмы с монотонизаци-ей (5.3.38), (5.3.39) для этой же схемы.

3. Тестовые задачи 1–5. 4. Выбор числа узлов сетки «n» по формуле:

1 2kn = + , где k=2, 3, 4… 5. Выбор числа Куранта «K». Достаточен дискретный набор:

K=0.1; 0.5; 0.8; 1; 5; 10; 20; 50. Шаг по времени «t » затем определяется по формуле:

Kh

at = .

Вывод «t ». 6. Вывод относительной погрешности по формуле (m = 1, 2, …):

1

1

max ( , )( ) 100%

max ( , )

m

i m ii nm

i mi n

u x t uErr u

u x t

Ј Ј

Ј Ј

-= Ч (5.3.40)

как для решения найденного только по схеме, так и после применения антидиффузионного механизма.

7. Графику: на каждом шаге по времени должны отрисовываться графики: a) точного решения тестовой задачи; б) решение, найденное по выбранной схеме; в) решение, найденное по схеме плюс выбранный ан-

( ) sin(4 ).x xj p=

Page 56: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

112

тидиффузионный алгоритм, если это схема с направленной разностью. Численные решения интерполируются кусочно-линейным сплайном.

Отрисовка узлов сетки xi 1ni =

.

8. Должна быть предусмотрена возможность возврата в начальное состояние (t=0) с любого временного шага.

Задание для работы с программой. 1. Проиллюстрировать изложенные теоретические положения

численными расчетами. Отметить выявленные отклонения от теории, если такие будут замечены.

2. Сравнить между собой используемые схемы а также метод = схема + антидиффузия; сравнить между собой различные антидиффузи-онные алгоритмы. В качестве критериев использовать: а) величины по-грешностей (5.3.40), б) визуальное соответствие графиков точных и при-ближенных решений.

Все выводы необходимо аргументировать результатами числен-ных расчетов и оформить в виде отчета.

Глава 6. МЕТОДЫ ПОСТРОЕНИЯ АДАПТИВНЫХ СЕТОК

Методы адаптации вычислительной сетки широко применяются при математическом моделировании физических процессов различной природы. Хороший эффект адаптация сетки дает в ситуациях, когда в решениях соответствующих дифференциальных задач появляются такие особенности поведения как пограничные и внутренние переходные слои. Примером подобной задачи является простейшая сингулярно воз-мущенная задача (6.1), численные методы решения которой обсуждают-ся в лабораторной работе 6.1. В указанной выше лабораторной работе задача решается на равномерной сетке, однако, использование алгорит-ма адаптации сетки с встроенной в него разностной схемой для задачи (6.1) может существенно повысить эффективность численного решения. Достаточно сказать, что при удачном выборе сетки намного уменьшает-ся объем затрачиваемых машинной памяти и машинного времени, а также возрастают точность определения и информативность найденного решения.

В предлагаемых лабораторных работах рассмотрены два подхода к построению вычислительной сетки. В рамках первого мы рассматри-ваем сетку как конечное множество точек, и при построении основыва-емся на некоторых геометрических оптимизационных принципах. Вто-рой – воспринимает неравномерную сетку как образ равномерной в ре-зультате использования специального преобразования, он основан на принципе эквидистантного распределения некоторой «весовой» функ-ции, определяемой интересующим нас решением.

Page 57: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

114

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 6.1

Адаптация сетки на основе оптимизации кусочно-постоянного интерполянта

Основная цель. Научиться строить вычислительную сетку, ин-

формативно описывающую профиль функции, на основе оптимизации ее кусочно-постоянного приближения.

Теория и основные формулы. На отрезке [0,1] рассмотрим сет-

ку 1

n

i ix

=, удовлетворяющую условиям:

1 2 1

0 ... 1,n n

x x x x-

= < < < < = (6.1.1)

а в остальном – пока произвольную. Пусть ( )f x – достаточно гладкая

функция, определенная на отрезке [0,1]. Будем считать, что кусочно-

постоянная функция

1

1

( ) (1 ) ( ) ( ),( , )

, , 1,2, ..., 1i i i

i i

f f x f xf x

x x x i n

q q qq +

+

мп є - +ппє н й щп О = -к ъп л ыпо

используется для приближенного описания функции ( )f x на сетке

(6.1.1); здесь [0,1]q О – произвольный параметр, который мы можем

выбирать. Легко проверить соотношение: 1

1( ) ( ) (1 ) ( ) ( ) , [ , ].

i

i

xx

i i i

x x

f x f f s ds f s ds x x xq q q+

+ў ў- = - - От т (6.1.2)

Используя (6.1.2) и свойства абсолютной величины, получим сле-дующую оценку:

1

1

1

1

1

1

1 01

( , ) ( ) ( )

( ) (1 ) ( ) ( ) ( , ).

i

i

i

i

xn

iLi x

xN

i ii x

f f f x f dx

s x x s f s ds J x

q q

q q q

+

+

-

=

-

+=

- Ч = - Ј

й щ ўЈ Ч - + - Ч - Ч єк ъл ы

е т

е тr

(6.1.3)

Для функционала 0( , )J x qr

, определенного правой частью оценки

(6.1.3) поставим следующую задачу: найти сетку

1 2( , , ..., )

Nx x x xєr

,

115

удовлетворяющую условиям (6.1.1) и доставляющую минимум функ-

ционалу 0( , )J x qr

:

( )фиксирован0( , ) min, 0,1 .

xJ x q q й щ® О -к ъл ыr

r (6.1.4)

Понятно, что решение задачи (6.1.4) позволит минимизировать и норму, стоящую в левой части оценки (6.1.3). Известно, что решение за-дачи (6.1.4), если оно существует, удовлетворяет системе уравнений:

0( , )

0, 2, 3, ..., 1.i

J xi n

x

q¶= = -

r (6.1.5)

Можно проверить, что

1

1

01 1

( , )( ) ( ) (1 )( ) ( )

(1 ) ( ) ( ) ( ), 2, 3, ..., 1.ii

i i

i i i i i i

ixx

i

x x

J xx x f x x x f x

x

f s ds f s ds F x i n

qq q

q q+

-

- +

¶ў ў= - - - - +

ў ў+ - - є = -т т

r

r (6.1.6)

Таким образом, интересующая нас сетка является решением сле-дующей системы нелинейных уравнений:

1 1( ) 0,

( ) 0, 2, 3, ..., 1;

( ) 1 0.i

n n

F x x

F x i n

F x x

мп є =ппп = = -нппп є - =по

r

r

r (6.1.7)

Система уравнений (6.1.7) решается итерационным методом Ньютона [2]:

( ) ( )

задано

( 1) ( ) ( 1) ( 1)

(0)

( ) , 1,2, ....;

.

k k k kF x x x F x k

x

- - -мп ў - = - =ппнп -ппо

r r r r

r (6.1.8)

В (6.1.8) приняты следующие обозначения:

( )1 2( ) ( ), ( ), ..., ( ) ,

nF x F x F x F xє

r r r r

( )( ) ( ) ( ) ( )1 2

, , ..., ,k k k kn

x x x xєr r r r

матрица Якоби

, 1

( )( ) .

n

i

j i j

F xF x

x=

ж ц¶ чз чзў є -чз чз ч¶ чзи ш

rr

Дифференцируя (6.1.6), получим ( 2, 3,..., 1i n= - ):

Page 58: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

116

1

1

( )(1 ) ( ) ( ) ,i

i i

i

F xf x f x

xq q

-

-

¶ й щў ў= - - +к ъл ы¶

r

1

1

( )(1 ) ( ) ( ) ,i

i i

i

F xf x f x

xq q

+

+

¶ й щў ў= - - +к ъл ы¶

r

1 1

( ) ( )( )2 ( ) ( ) (1 )( ) .i ii

i i i i i

i i i

f x f xF xf x x x x x

x x xq q

- +

ў ў¶ ¶¶ў= + - - - -

¶ ¶ ¶

r

Для величин, входящих в приведенные выше формулы, принима-ем следующие приближения:

1 1

( )( ) ( ) ( ) ,i

i i i i

i

f xx x f x f x

x- -

ў¶ў ў- » -

1 1

( )( ) ( ) ( ) , 2, 3, ..., 1;i

i i i i

i

f xx x f x f x i n

x+ +

ў¶ў ў- » - = -

1 11 1

1 1 1 1 1 1

( ) ( ) ( ) ( )( ) ,i i i ii i i i

i i

i i i i i i i i

f x f x x xx x f x f xf x abs w

x x x x x x x x+ +- -

+ - + + - -

й щж ц ж ц- -- -ч чз зк ъч чз зў » Ч + Ч єч чк ъз зч чз зч ч- - - -з зк ъи ш и шл ы где 2, 3,..., 1,i n= -

3 1 2 1 2 1 3 11 1

3 2 2 1 3 2 3 1

( ) ( ) ( ) ( )( ) ,

x x f x f x x x f x f xf x abs w

x x x x x x x x

й щж ц ж ц- - - -ч чз зк ъч чў з з» Ч - Ч єч чк ъз зч чз зч ч- - - -и ш и шк ъл ы

2 1 1 2

1 2 1 1 2 2

( ) ( ) ( ) ( )( )

.

n n n n n n n nn

n n n n n n n n

n

x x f x f x x x f x f xf x abs

x x x x x x x x

w

- - - -

- - - - - -

й щж ц ж ц- - - -ч чз зк ъч чў з з» Ч - Ч єч чк ъз зч чз зч ч- - - -и ш и шк ъл ыє

Тогда, 1

11

( ) ( ) , 1,2, ..., 1.2

i

i

x

i ii i

x

w wf s ds x x i n

+

++

+ў » - = -т

В итоге, для определения величин ( ) ( 1), 1,2, ..., 1k k

i i iv x x i n-є - = - ,

на «k»-ом итерационном шаге необходимо решать систему линейных алгебраических уравнений следующего вида:

117

1 1 1 2 1

1 1

1

,

, 2, 3, ..., 1;

.i i i i i i i

n n n n n

B v C v g

A v B v C v g i n

A v B v g- +

-

мп - =ппп- + - = = -нппп- + =по

(6.1.9)

Системы вида (6.1.9) обычно решаются методом прогонки (см. [2, 8]). Итак, в системе (6.1.9) все коэффициенты и правые части опре-делены на «k-1»-ом итерационном шаге и задаются по формулам:

1 1 1

1 1

1 1

1, 0, 0; 0, 1, 0;

(1 ) , (1 ) ,

2 ( ) (1 )( );

n n n

i i i i i i

i i i i i i

B C g A B g

A w w C w w

B w w w w w

q q q q

q q- +

- +

= = = = = =

= - + = - +

= + - - - -

1 12 ( ); 1,2, ..., ;

i i i i i i iS B A C w w w i n

- +є - - = - + =

1 1 1 1

1 1

( 2 ) ( )( )2

1( )( ).

2

i i i i i i i i i

i i i i

g x x x w x x w w

x x w w

q

q

+ - + +

- -

= - + + - - +

-+ - -

В качестве начального приближения выбирается равномерная сетка:

(0) 1, 1,2,..., .

1i

ix i n

n

-= =

-

Для регуляризации стандартной прогонки можно положить

1 1( , 2 ( ) (1 )( )),

i i i i i i i iB max A C w w w w we q q

- += + + + - - - -

а для регуляризации прогонки Дорра: 3

1 1( , 2 ( )); 2, 3, ..., 1; (( 1) ),

i i i iS max w w w i n O ne e -

- += - + = - = -

где e – достаточно малое положительное число. Критерием остановки итерационного (6.1.8) процесса служит вы-

полнение неравенства:

, 1max ,

ih i nv v d

Ґ Ј Јє <

с наперед заданным достаточно малым параметром ( )3

1O nd-ж цчз= - чз чзи ш

.

Page 59: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

118

Тестовые функции. Тестовые функции лабораторной работы 1.1. Требования к программе. Программа должна включать: 1. Вышеописанный метод адаптации сетки с возможностью выбо-

ра параметра [0,1]q О .

2. Тестовые функции, как указано, из лабораторной работы 1.1 по усмотрению преподавателя. Они используются в качестве функции f(x), фигурирующей в методе, под которую адаптируется сетка. Необходимо предусмотреть возможность выбора параметра «жесткости» e в тех функциях, где он предусмотрен: возможен дискретный набор

2 , 0,1,..., 8.k ke -= =

3. Возможность выбора числа узлов сетки «n». Допустим дис-

кретный вариант: 1 2 , 2, 3,..., 8.kn k= + =

4. Вывод погрешности интерполяции по формуле: 1

1 1 21

( ) ( ) ( )n

i i i ii

x x f x f q-

+ +=

- -е .

Показательным будет сравнение этой погрешности с погрешно-стью, вычисленной по этой же формуле, но на равномерной сетке

1

n

i ix

=.

5. Вывод числа итераций, потребовавшихся для сходимости ме-тода Ньютона и адаптации сетки.

6. Графику: отрисовка узлов адаптированной сетки, а также одно-временная отрисовка графиков функции f(x) и интерполянта f(x, q ).

7. Режим работы «без адаптации сетки»: вывод графиков и по-грешностей интерполяции для случая равномерной сетки.

Задание для работы с программой. Провести все численные

расчеты, варьируя значения параметров и ne ; использовать все тесто-

вые функции (в соответствии с заданием) и метод адаптации сетки. Ана-лизируя результаты расчетов, ответить на следующие вопросы.

1. Изменяя свойства функций (параметр e ) и число узлов сетки «n» выяснить: в каких случаях адаптация сетки эффективна, а когда не дает результата. С этой целью сравнить погрешности в двух режимах: «с адаптацией» и «без адаптации».

2. Выяснить, для каких значений параметра q метод адаптации наиболее эффективен. Основные критерии качества: а) погрешность ин-

119

терполяции; б) визуальная близость графиков функции и соответствую-щего интерполянта.

Все выводы необходимо аргументировать результатами числен-ных расчетов и оформить в виде Отчета.

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 6.2

Адаптация сетки на основе оптимизации кусочно-линейного приближения

Основная цель. Научиться строить вычислительную сетку, ин-

формативно описывающую профиль функции, на основе оптимизации ее кусочно-линейного приближения.

Теория и основные формулы. На отрезке [0,1] рассмотрим сет-

ку 1

n

i ix

=, удовлетворяющую условиям:

1 2 10 1,

n nx x x x

-= < < < < =K (6.2.1)

а в остальном – пока произвольную. Пусть ( )f x – достаточно гладкая

функция, определенная на отрезке 0, 1й щк ъл ы. Для приближенного описания

функции ( )f x на сетке (6.2.1) используется кусочно-линейная функция:

( ) ( ) ( ) ( )11

1 1

1, , 1,2, ..., 1.

iii i i

i i i i

i i

x xx xf x f x f x

f x x x x x

x x x i n

++

+ +

+

мп --пп є +пє - -нпп й щО = -п к ъп л ыо

%%

Используя для 1i i

x x x+

й щО к ъл ы соотношение:

( ) ( ) ( ) ( ) ( ) ( )1

11

1 1

,i

i

x xii

i i i

i i i ix x

x xx xf x f x x s f s ds s x f s ds

x x x x

+

++

+ +

--ўў ўў- = - + -

- -т т%

Page 60: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

120

можно доказать следующую оценку:

( ) ( ) ( )( ) ( ) ( )1 1

1

1 1

1 01 1

1.

2

i i

i i

x xn n

i i iLi ix x

f f f x f x dx x s s x f s ds J x+ +- -

+= =

ўў- = - Ј - - єе ет тr% %

Добавим к функционалу ( )0J x

r дополнительное слагаемое вида

( )1 2

2

1 , 0n

ii

x h ia a-

=

й щ- - >к ъл ые ,

где ( )1 1h n= - . В итоге получим функционал вида:

( ) ( ) ( )1 2

02

1n

ii

J x J x x h ia-

=

й щ= + - -к ъл ыеr r

или

( ) ( )( ) ( ) ( )11 1 2

11 2

11 .

2

i

i

xn n

i i ii ix

J x x s s x f s ds x h ia+- -

+= =

й щўў= - - + - -к ъл ые етr

Для определения сетки ( )1 2, , ,

nx x x x=r

K , удовлетворяющей ус-

ловиям (6.2.1), ставим задачу на поиск экстремума:

( ) minx

J x ® r

r.

Следствием этой задачи является система уравнений:

( )0, 2, 3,..., 1.

i

J xi n

x

¶= = -

r

(6.2.2)

Легко проверить следующие соотношения ( 2, 3, ..., 1)i n= - :

( )( ) ( ) ( ) ( )

( )

1

1

1 1

1 1

2 2

1 12 .

1 2

ii

i i

xx

i i

i x x

i i

J xs x f s ds x s f s ds

x

ix F x

na

+

-

- +

¶ўў ўў= - - - +

ж ц- чз ч+ - єз чз чз -и ш

т тr

r

Умножив обе части на 2, получим:

( ) ( ) ( ) ( )

( )

1

1

1 1

14

1

ii

i i

xx

i i

x x

i i

s x f s ds x s f s ds

ix F x

na

+

-

- +ўў ўў- - - +

ж ц- чз ч+ - єз чз чз -и ш

т т

r (6.2.3)

121

Таким образом, в силу (6.2.1), (6.2.2) И (6.2.3), искомая сетка яв-ляется решением системы уравнений:

( )( )( )

1 10,

0, 2, 3, ..., 1;

1 0.i

n n

F x x

F x i n

F x x

мп є =пппп = = -нппп є - =ппо

r

r

r (6.2.4)

В системе (6.2.4) компоненты вектор-функции ( )F xr

определены

по формулам (6.2.3). Для решения системы (6.2.4) воспользуемся мето-дом Ньютона:

( )( ) ( ) ( )( ) ( )( )( ) задано

1 1 1

0

, 1,2, ;

.

k k k kF x x x F x k

x

- - -мп ў - = - =ппнпп -по

r r r rK

r (6.2.4)

Дифференцируя (6.2.3), получим:

( )( )

( )( )

( )( ) ( )

1

1

1

1

1 1

,

,

4

i

i

i

i

x

i

i x

x

i

i x

i

i i i

i

F xf s ds

x

F xf s ds

x

F xx x f x

xa

-

+

-

+

+ -

мп¶пп ўў= -пп ¶пппп¶пп ўў= -нп ¶пппп¶пп ўў= - +пп ¶ппо

т

т

r

r

r

(6.2.6)

Аппроксимируем интегралы в (6.2.3) и (6.2.6), используя квадра-

турную формулу трапеций, кроме того, для аппроксимации ( )f sўў в уз-

лах сетки примем следующие формулы:

( )( ) ( ) ( ) ( )1 1

1 1 1 1

2,

2, 3, ..., 1;

i i i i

i i

i i i i i i

f x f x f x f xf x w

x x x x x x

i n

+ -

+ - + -

- -ўў » - є

- - -

= -

%

( )( ) ( ) ( ) ( )3 1 2 1

1 1

3 2 3 1 2 1

2 f x f x f x f xf x w

x x x x x x

- -ўў » - є

- - -% ;

( )( ) ( ) ( ) ( )1 2

1 2 1 2

2 n n n n

n n

n n n n n n

f x f x f x f xf x w

x x x x x x- -

- - - -

- -ўў » - є

- - -% .

Page 61: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

122

В итоге приходим к системе вида

1 1 1 2 1

1 1

1

,

, 2, 3, ..., 1;

,i i i i i i i

n n n n n

B v C v g

A v B v C v g i n

A v B v g- +

-

мп - =ппп- + - = = -нппп- + =по

(6.2.7)

для определения величин ( ) ( 1), 1,2, ..., 1k k

i i iv x x i n-є - = -

на каждом шаге итерационного процесса (6.2.5) (см. также лаборатор-ную работу 6.1). Коэффициенты и правые части в (6.2.7) определены на (k-1)-м итерационном шаге по следующим формулам:

1 1 11, 0, 0B C g= = = ; 0, 1, 0

n n nA B g= = = ;

( )( )1 1

1

2i i i i iA x x w w

- -= - +% % ; ( )( )1 1

1

2i i i i iC x x w w

+ += - +% % ;

( )1 14 , 2, 3,..., 1;

i i i iB x x w i na

+ -= - + = -%

1 1 11S B Cє - = ; 1

n n nS B Aє - = ;

( )( ) ( )( )1 1 1 1

1 14

2 2i i i i i i i i i i i iS B A C x x w w x x w w a

- - + += - - = - - - - - +% % % %

;

( ) ( ) ( ) ( )2 2

1 1 1 1

1 1 14 ,

4 4 12, 3,..., 1.

i i i i i i i i i i

ig x x w w x x w w x

ni n

a+ + - -

ж ц- чз ч= - + - - + + -з чз чз -и ш= -

% % % %

Систему уравнений (6.2.7) обычно решают методом прогонки (см. [2,8]). В случае стандартной прогонки подойдет регуляризатор:

( )( )1 1, 4 .

i i i i i iB max A C x x we a

+ -= + + - +%

Для регуляризации прогонки Дорра можно положить:

( )( ) ( )( )

( )

1 1 1 1

4

1 1, 4 ,2 2

1 .

i i i i i i i i iS max x x w w x x w w

O N

e a

e

- - + +

-

ж цчз ч= - - - - - +з чз чзи шж цчз= - чз чзи ш

% % % %

Отметим, что при достаточно большом значении параметра a , можно не применять специального регуляризатора, так как наличие до-полнительного слагаемого 4a в диагональной части матрицы системы (6.2.7) служит естественным регуляризатором и обеспечивает устойчи-вость метода прогонки. Кроме того, при помощи параметра a можно

123

регулировать степень адаптации сетки, удерживая ее вблизи равномер-ной. Критерием остановки итерационного процесса (6.2.5) служит выполнение неравенства:

, 1max ,

ih i nv v d

Ґ Ј Јє <

с наперед заданным достаточно малым параметром ( )3

1O nd-ж цчз= - чз чзи ш

.

Тестовые функции. Тестовые функции лабораторной работы 1.1. Требования к программе. Программа должна включать: 1. Вышеописанный метод адаптации сетки с возможностью выбо-

ра параметра 0a > . 2. Тестовые функции, как указано, из Лабораторной работы 1.1 по

усмотрению преподавателя. Они используются в качестве функции f(x), фигурирующей в методе, под которую адаптируется сетка. Необходимо предусмотреть возможность выбора параметра «жесткости» e в тех функциях, где он предусмотрен: возможен дискретный набор

2 , 0,1,..., 8.k ke -= =

3. Возможность выбора числа узлов сетки “n”. Допустим дис-

кретный вариант: 1 2 , 2, 3,..., 8.kn k= + =

4. Вывод погрешности интерполяции по формуле: 1

1 1 21

( ) ( ) ( )n

i i i ii

x x f x f x-

+ +=

- -е % .

Показательным будет сравнение этой погрешности с погрешно-стью, вычисленной по этой же формуле, но на равномерной сетке

1

n

i ix

=.

5. Вывод числа итераций, потребовавшихся для сходимости ме-тода Ньютона и адаптации сетки.

6. Графику: отрисовка узлов адаптированной сетки, а также одно-

временная отрисовка графиков функции f(x) и интерполянта ( )f x% .

7. Режим работы «без адаптации сетки»: вывод графиков и по-грешностей интерполяции для случая равномерной сетки.

Задание для работы с программой. Провести все численные

расчеты, варьируя значения параметров и ne ; использовать все тесто-

Page 62: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

124

вые функции (в соответствии с заданием) и метод адаптации сетки. Ана-лизируя результаты расчетов, ответить на следующие вопросы.

1. Изменяя свойства функций (параметр e ) и число узлов сетки «n» выяснить: в каких случаях адаптация сетки эффективна, а когда не дает результата. С этой целью сравнить погрешности в двух режимах: «с адаптацией» и «без адаптации».

2. Выяснить, для каких значений параметра a метод адаптации наиболее эффективен. Основные критерии качества: а) погрешность ин-терполяции; б) визуальная близость графиков функции и соответствую-щего интерполянта.

Все выводы необходимо аргументировать результатами числен-ных расчетов и оформить в виде отчета.

Л А Б О Р А Т О Р Н А Я Р А Б О Т А 6.3

Адаптация сетки на основе эквидистанктного распределения весовой функции

Основная цель. Научиться строить вычислительную сетку, ин-

формативно описывающую профиль функции на основе эквидистанкт-ного распределения веса, определяемого свойствами этой функции.

Теория и основные формулы. Нижеописанный метод адаптации вычислительной сетки впервые был предложен, по-видимому, в моно-графии [27], а затем получил развитие в работах многих авторов. Состо-

ит он в следующем. Пусть на отрезке ,a bй щк ъл ы задана некоторая функция

f(x), свойства которой и призвана информативно описывать искомая сетка:

1 2... ...

i na x x x x b= < < < < < = . (6.3.1)

Добьемся такого распределения узлов , 1,2,i

x i n= K сетки

(6.3.1), при котором некоторая положительная весовая функция ( ),W x f

эквидистантно распределяется вдоль всей области определения функции f(x), что означает выполнение следующих соотношений:

125

( )1

, , 1,2, , 1i

i

x

x

W x f dx const i n+

= = -т K . (6.3.2)

Здесь ( ),W x f характеризует поведение функции f(x) на отрезке

,a bй щк ъл ы, мы будем использовать для этой функции следующее представ-

ление: 1 12 2( , ) ( ) ( )W x f f x f xa b gў ўў= + + . (6.3.3)

Величины , ,a b g в (6.3.3) считаем постоянными и неотрицатель-

ными, их мы будем варьировать в процессе расчетов. Легко понять смысл эквидистантного распределения узлов по правилам (6.3.2), (6.3.3): распределение узлов сетки будет таким, что на участках, где достаточно велики значения производных будет больше узлов, чем на участках, где значения этих производных не значительны.

Соотношения (6.3.2) можно переписать в виде

( ) ( )1

1

, , , 2, , 1ii

i i

xx

x x

W x f dx W x f dx i n+

-

= = -т т K , (6.3.4)

доопределив их граничными условиями:

1

, .n

x a x b= = (6.3.5)

Задача (6.3.4), (6.3.5) служит для определения узлов 1

n

i ix

= адаптивной

сетки. Необходимо отметить, что данную задачу (6.3.4), (6.3.5) можно

сформулировать как задачу построения взаимнооднозначного отобра-

жения ( )x x вычислительного пространства x в физическое простран-

ство x , причем, искомая неравномерная сетка 1

n

i ix

= будет образом

равномерной сетки 1

n

i ix

= на отрезке [a,b] при отображении ( )x x :

( ), 1,2, ...,i i

x x i nx= = . Действительно, отображение ( )xx , обратное к

( )x x , определяется соотношением:

Page 63: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

126

( ) ( )( )

( )

,

.

,

x

a

b

a

W t f dt

x b a a

W t f dt

x = - Ч +т

т (6.3.6)

Продифференцируем обе части (6.3.6) по x , в результате полу-чим:

( ),

( ( ), ) ( ) .

b

a

W s f ds

W x f xb a

x xўЧ =-

т (6.3.7)

Соотношение (6.3.7) подтверждает высказанные нами ранее сооб-ражения о смысле эквидистанктного распределения: если вспомнить,

что ( )x

x xx

Dў »D

при достаточно малом xD , то из (6.3.7) следует: при

увеличении ( ),W x f , величина xD будет уменьшаться в силу постоян-

ства xD и правой части уравнения (6.3.7), т.е. происходит сгущение уз-

лов сетки в местах возрастания ( ),W x f .

Следует отметить, что обычно, когда речь идет о поиске отобра-

жения ( )x x , решают краевую задачу для нелинейного эллиптического

уравнения, полученного после дифференцирования (6.3.7) по x :

( )( ( ), ) ( ) 0, ( , );

( ) , ( ) .

W x f x a b

x a a x b bx

x x xмп ўп ўЧ = Опнп = =ппо

(6.3.8)

Дифференциальное уравнение в (6.3.8) является уравнением Эй-лера для задачи минимизации функционала [28]:

( )( )2

B

A

I W x x dx

x= т .

Таким образом, для поиска вычислительной сетки можно решать одну из двух эквивалентных задач: задачу (6.3.4), (6.3.5), или задачу (6.3.8). Ограничимся решением первой задачи, предварительно перепи-сав ее в виде системы нелинейных алгебраических уравнений:

127

( ) ( )1

1

1 1( ) 0,

( ) , , 0, 2, , 1;

0.

i i

i i

x x

i

x x

n n

F x x a

F x W x f dx W x f dx i n

F x b

+

-

мп є - =пппппп є - = = -нппппп є - =ппо

т т

r

rK (6.3.9)

Для решения системы уравнений (6.3.9) применим метод Ньютона: ( )( ) ( ) ( )( ) ( )( )

( ) задано

1 1 1

0

, 1,2, ;

.

k k k kF x x x F x k

x

- - -мп ў - = - =ппнпп -по

r r r rK

r (6.3.10)

В нашем случае матрица Якоби ( )( )1kF x

-ў r имеет трехдиагональ-

ный вид, причем

( )

( )

( )

( 1)1

1

( 1)

( 1)1

1

, ,

2 , ,

, , 2, , 1.

kii

i

kii

i

kii

i

FW x f

xF

W x fxF

W x f i nx

--

-

-

-+

+

¶=

¶¶

= -¶¶

= = -¶

K

С учетом сказанного выше систему уравнений (6.3.10) метода Ньютона можно переписать в виде:

1 1 1 2 1

1 1

1

,

, 2, 3, ..., 1;

,i i i i i i i

n n n n n

B v C v g

A v B v C v g i n

A v B v g- +

-

мп - =ппп- + - = = -нппп- + =по

(6.3.11)

Где

( ) ( 1), 1,2, ..., 1k ki i i

v x x i n-є - = - ;

1 1 11, 0, 0B C g= = = ; 0, 1, 0

n n nA B g= = = ;

( )( 1)1

,ki i

A W x f--

= ; ( )( 1)1

,ki i

C W x f-+

= ;

( )( 1)2 , , 2, 3, ..., 1;ki i

B W x f i n-= = -

Page 64: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

128

( )

( )

( 1) ( 1) ( 1) ( 1)1 1

( 1) ( 1) ( 1) ( 1)1 1

1( , ) ( , )

21

( , ) ( , ) , 2, 3, ..., 1.2

k k k ki i i i i

k k k ki i i i

g x x W x f W x f

x x W x f W x f i n

- - - -+ +

- - - -- -

й щ= - + -к ъл ы

й щ- - + = -к ъл ы

Для решения системы (6.3.11) будем применять метод прогонки (см. [2, 8]). С целью обеспечения устойчивости прогонки к диагональ-

ным элементам матрицы i

B добавим величины:

( ) ( ) ( )( 1) ( 1) ( 1)1 1

2 , , , , 2, , 1k k k

i i i iW x f W x f W x f i ne - - -

- += - - = -K .

Такие добавки позволяют эффективно обращать матрицу и полу-чать хорошую точность в определении решения. Для аппроксимации значений производных в (6.3.3) воспользуемся формулами:

( )( ) ( ) ( ) ( )1 111

1 1 1 1 1 1

,

2, 3, ..., 1;

i i i ii ii ii

i i i i i i i i

f x f x f x f xx xx xf x

x x x x x x x x

i n

+ -+-

+ - + + - -

- ---ў » Ч + Ч

- - - -

= -

( )( ) ( ) ( ) ( )2 1 3 13 1 2 1

1

3 2 2 1 3 2 3 1

,f x f x f x f xx x x x

f xx x x x x x x x

- -- -ў » Ч - Ч

- - - -

( )( ) ( ) ( ) ( )1 22 1

1 2 1 1 2 2

;n n n nn n n nn

n n n n n n n n

f x f x f x f xx x x xf x

x x x x x x x x- -- -

- - - - - -

- -- -ў » Ч - Ч

- - - -

( )( ) ( ) ( ) ( )1 1

1 1 1 1

2,

2, 3, ..., 1;

i i i i

i

i i i i i i

f x f x f x f xf x

x x x x x x

i n

+ -

+ - + -

- -ўў » -

- - -

= -

( )( ) ( ) ( ) ( )3 1 2 1

1

3 2 3 1 2 1

2;

f x f x f x f xf x

x x x x x x

- -ўў » -

- - -

( )( ) ( ) ( ) ( )1 2

1 2 1 2

2.n n n n

n

n n n n n n

f x f x f x f xf x

x x x x x x- -

- - - -

- -ўў » -

- - -

Критерием остановки итерационного (6.3.10) процесса служит выполнение неравенства:

, 1max ,

ih i nv v d

Ґ Ј Јє <

129

с наперед заданным достаточно малым параметром ( )3

1O nd-ж цчз= - чз чзи ш

.

Тестовые функции. Тестовые функции лабораторной работы 1.1. Требования к программе. Программа должна включать: 1. Вышеописанный метод адаптации сетки с возможностью выбо-

ра параметров , ,a b g в (6.3.3).

2. Тестовые функции, как указано, из лабораторной работы 1.1 по усмотрению преподавателя. Они используются в качестве функции f(x), фигурирующей в методе, под которую адаптируется сетка. Необходимо предусмотреть возможность выбора параметра «жесткости» e в тех функциях, где он предусмотрен: возможен дискретный набор

2 , 0,1,..., 8.k ke -= =

3. Возможность выбора числа узлов сетки “n”. Допустим дис-

кретный вариант: 1 2 , 2, 3,..., 8.kn k= + =

4. Вывод погрешности интерполяции по формуле: 1

1 1 21

( ) ( ) ( )n

i i i ii

x x f x f x-

+ +=

- -е .

Здесь ( )if x – линейный интерполянт для

1[ , ]

i ix x x

+О из лабора-

торной работы 6.2. Показательным будет сравнение этой погрешности с погрешностью, вычисленной по этой же формуле, но на равномерной

сетке 1

n

i ix

=.

5. Вывод числа итераций, потребовавшихся для сходимости ме-тода Ньютона и адаптации сетки.

6. Графику: отрисовка узлов адаптированной сетки, а также одно-временная отрисовка графиков функции f(x) и кусочно-линейного ин-

терполянта ( )f x% (см. лабораторную работу 6.2).

7. Режим работы «без адаптации сетки»: вывод графиков и по-грешностей интерполяции для случая равномерной сетки.

Задание для работы с программой. Провести все численные

расчеты, варьируя значения параметров и ne ; использовать все тесто-

вые функции (в соответствии с заданием) и метод адаптации сетки. Ана-лизируя результаты расчетов, ответить на следующие вопросы.

Page 65: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

130

1. Изменяя свойства функций (параметр e ) и число узлов сетки «n» выяснить: в каких случаях адаптация сетки эффективна, а когда не дает результата. С этой целью сравнить погрешности в двух режимах: «с адаптацией» и «без адаптации».

2. Выяснить, для каких значений параметров , ,a b g метод адап-

тации наиболее эффективен. Основные критерии качества: а) погреш-ность интерполяции; б) визуальная близость графиков функции и соот-ветствующего интерполянта.

Все выводы необходимо аргументировать результатами числен-ных расчетов и оформить в виде отчета.

131

П Р И Л О Ж Е Н И Е

РЕШЕНИЕ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ СРЕДСТВАМИ СИСТЕМЫ MATLAB

1. Поиск корней нелинейных уравнений

1.1. Корни полиномов

Нули полинома n-го порядка Pn(x)=p1xn+p2x

n-1+...+pnx+pn+1 вычисляются с помощью функции roots, обращение которой имеет вид

z=roots(p)

где p – вектор коэффициентов полинома в порядке убывания степеней, z – вектор-столбец корней.

Пример 1. Найти корни полинома x5-5x+1.

Решение. p=[1,0,0,0,-5,1]; z=roots(p) % Выделяем вещественные корни и строим график x=[]; for k=1:length(z) if isreal(z(k)) x=[x,z(k)]; end; end ezplot('x^5-5*x+1',[-2,2]); grid on hold on; plot(x,0*x,'o') Результат. z = -1.5417 -0.0495 + 1.4994i -0.0495 – 1.4994i 1.4405 0.2001

Page 66: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

132

-2 -1 0 1 2-10

-5

0

5

10

x

x5-5 x+1

Рис. 1. График полинома 5 5 1x x- + и его корни.

Пример 2. Найти корни полинома порядка 100, коэффициен-

ты которого положительные числа, не большие единицы. Результат представить графически. Решение. n=100; p=rand(1,n+1); z=roots(p); x=real(z); y=imag(z); % Строим окружность радиуса 1 и выводим корни полинома t=linspace(0,2*pi,180); xc=cos(t); yc=sin(t); plot(xc,yc,x,y,'ok'); axis equal

-1 -0.5 0 0.5 1-1

-0.5

0

0.5

1

Рис. 2. Корни полинома со случайными коэффициентами.

Как видно, корни полинома группируются вблизи окружности

единичного радиуса.

133

1.2. Корни уравнения с одним неизвестным Поиск нулей функции f(x) в MatLab выполняется путем обраще-

ния к функции fzero, имеющей следующие варианты вызова x=fzero(fun,x0), [х,f]=fzero(fun,x0), [х,f]=fzero(fun,x0,options), [x,f,flag,inform]=fzero(fun,x0) Параметр fun задается одним из трех способов:

• строка, содержащая запись уравнения; • указатель на подфункцию с определением уравнения: • строка, содержащая имя m-файла без расширения.

Параметр x0 может быть скаляром, задающим начальное при-ближение корня или вектором, определяющим границы поиска.

Настройки параметров поиска решения выполняются путем об-ращения к функции optimset следующим образом:

options=optimset('PARAM1',VALUE1,...), где 'PARAM' – имена параметров ,VALUE – их значения. В качестве 'PARAM' можно задавать следующие характеристики:

• TolFun – точность по значению функции, • TolХ – точность по значению корня, • MaxIter – максимальное число итераций.

Пример: options = optimset(TolFun',1e-8). Выходные параметры: x – значение корня, f – значение функции

в точке корня. Параметр flag=1, если найден интервал, на концах кото-рого функция fun меняет знак, -1 в противном случае. Структура inform содержит информацию о числе итераций, выполненных при поиске кор-ня (поле iterations), количестве обращений к fun (поле funcCount) и на-именовании алгоритма поиска корня (algorithm).

Для определения различных нулей функции (в случае их сущест-вования) следует варьировать начальное приближение x0.

Пример 3. Найти первые 10 нулей функции f(x)=sinx-x/40.

Решение. Определение уравнения задаем в строке. ezplot('sin(x)-x/40',0,40) for k=1:10 x0=k*pi; z(k)=fzero('sin(x)-x/40',x0); end; z

Page 67: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

134

hold on plot(z,z*0,'ok'); Результат. z=

3.06489510240262 6.44501615746175 9.19288309790557 12.89459734687189 15.31505532871629 19.35462233000322 21.42587497631479 25.83490703613676 27.51575073464198 32.35830325977521

0 10 20 30 40

-2

-1.5

-1

-0.5

0

0.5

1

x

sin(x)-x/40

Рис. 3. Корни функции y=sinx-x/40.

Пример 4. Найти корни уравнения 4x⋅⋅⋅⋅exp(-x2) -1=0.

Решение. function primer4 ezplot('4*x*exp(-x^2)-1',0,2) grid on [x,f]=fzero(@fx,0) [x,f,flag,inform]=fzero(@fx,[1 2]) function f=fx(x)

135

f=4*x*exp(-x^2)-1; Результат. x1 = 0.2687 f1 = 2.2204e-016 x2 = 1.2770 f2 = 2.2204e-016 flag = 1 inform = intervaliterations: 0 iterations: 6 funcCount: 8 algorithm: 'bisection, interpolation' message: 'Zero found in the interval [1, 2]'

0 0.5 1 1.5 2

-1

-0.5

0

0.5

x

4 x exp(-x2)-1

Рис. 4. График и корни функции f(х)=4x⋅exp(-x2)-1.

Таким образом, за счет использования комбинации алгоритмов

получен корень с очень высокой точностью при небольшом числе ите-раций.

1.3. Решение систем нелинейных уравнений Поиск решения системы нелинейных уравнений f1(x1,…,xn)=0, …,

fn(x1,…,xn)=0 выполняется с помощью функции fsolve, при этом пере-менные и функции записываются в векторном виде. Обращение к функ-ции имеет вид:

Page 68: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

136

[x,f]=fsolve(@fun,x0,...) [x,f,flag,inform]=fzero(@fun,x0), где fun – имя функции, реализующей вычисление левых частей уравне-ний, x0 – вектор начальных приближений к искомым корням, x – вектор найденных значений корней, f – вектор значений функций в точках ре-шения.

Выходные параметры flag и inform имеют ту же смысловую на-грузку, что и выше.

Пример 5. Найти решение системы x2+y2=10, x⋅⋅⋅⋅y=3.

Решение.

hold on

ezplot('x^2+y^2-10',[-4,4])

ezplot('x*y-3',[-4,4])

axis equal

[w,f]=fsolve(@f1,[4,1]), x(1)=w(1); y(1)=w(2);

[w,f]=fsolve(@f1,[1,2]), x(2)=w(1); y(2)=w(2);

[w,f]=fsolve(@f1,[-1,-2]), x(3)=w(1); y(3)=w(2);

[w,f]=fsolve(@f1,[-4,0]), x(4)=w(1); y(4)=w(2);

[x;y]'

plot(x,y,'.')

function f = f1(w)

f=[w(1)^2+w(2)^2-10;w(1)*w(2)-3];

Результат.

ans =

3.0000 1.0000

1.0000 3.0000

-1.0000 -3.0000

-3.0000 -1.0000

137

-4 -3 -2 -1 0 1 2 3 4

-3

-2

-1

0

1

2

3

x

y

x2+y2=10, x y-3 = 0

Рис. 5. График системы x2+y2=10, x⋅y=3 и ее корни . Дополнительная возможность решения уравнений и систем урав-

нений дается функцией solve, входящей в ядро системы компьютерной математики Maple. Обращение имеет одну из следующих форм:

S= solve('eqn1','eqn2',...) S= solve('eqn1','eqn2',...,'var1,var2,...'). [var1,var2,...]= solve('eqn1','eqn2',...,'var1,var2,...').

Здесь входные параметры 'eqn1','eqn2',… – строки, содержащие

уравнения системы, 'var1','var2',... – строка со списком имен неизвест-ных.

Выходной параметр S – структура, именами полей в которой яв-ляются имена неизвестных, значения полей – найденное решение систе-мы. Следует иметь в виду, что решение представлено в символьном виде и для получения числовых значений следует применять функцию eval.

Пример 6. Найти решение уравнения x4-5x2+6x-2=0.

Решение. Вычисления выполняем в командном окне: >> x=solve('x^4-5*x^2+6*x=2') x = 1 1 3^(1/2)-1

Page 69: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

138

-1-3^(1/2) >> x=eval(x) x = 1.0000 1.0000 0.7321 -2.7321

Пример 7. Найти решение системы уравнений x+y=e-y, x-y=e-x. Решение. >> s=solve('x+y=exp(-y)','x-y=exp(-x)') s = x: [1x1 sym] y: [1x1 sym] >> s.x ans = .67667362945847291879159029240577 >> s.y ans = .16836863535044787072342384552768

2. Решение задач оптимизации

2.1. Вычисление минимумов функции одной переменной Определение минимума функции f(x) выполняется путем обра-

щения к функции fminbnd , возвращающей положение локального ми-нимума и его значение. Поиск максимума f(x) эквивалентен поиску ми-нимума функции –f(x). Обращение к функции fminbnd имеет вид:

x=fminbnd(fun,x1,x2) [x,f]=fminbnd(fun,x1,x2) [x,f,flag,inform]=fminbnd(fun,x1,x2,options).

Здесь x1 и x2 определяют интервал поиска минимума, локализующий положение только одного минимума.

Параметр fun, как и в случае решения уравнений, задается одним из трех способов: • строка, содержащая запись функции f(x); • указатель на функцию с определением (x);

139

• строка, содержащая имя m-файла без расширения. Выходные параметры x и f определяют положение точки мини-

мума и его значение. Параметры flag и inform имеют ту же смысловую нагрузку, что и

выше. Пример 8. Вычислить приближенное значение числа е, взяв в ка-

честве функции f(x)=-x1/x имеющей минимум при х=е. Решение. %Находим положение минимума аналитически: syms x e=solve(diff(x^(1/x))) и приближенно: e=fminbnd('-x^(1/x)',1,4) eps=abs(e-exp(1)) hold on set(gcf,'color','w') ezplot('-x^(1/x)',[0,10]) plot(e,y,'Marker','.','Markersize',20) Результат. e = exp(1) e = 2.71827463531700 eps = 7.193142042005718e-006

0 2 4 6 8 10

-1.4

-1.3

-1.2

-1.1

-1

x

f = -x1/x

Рис. 6. График функции 1/ xf(x) x = - .

Page 70: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

140

2.2. Вычисление минимума функции многих переменных Минимизация функции f(x1,…,xn) n переменных реализована

функцией fminsearch:

x=fminsearch(@fun,x0), [x,f]=fminsearch(@fun,x0).

Здесь вектор x0 размерности n задает стартовую точку поиска,

fun – имя подфункции, выполняющей вычисление f(x), x - вектор, опре-деляющий положение локального минимума в окрестности x0.

Пример 9. Найти все локальные экстремумы функции двух

переменных f(x,y)=xyexp(-x2-y2). Решение. Находим точки экстремума, предварительно построив поверхность z=f(x,y) и сориентировавшись в расположении максимумов и миниму-мов.

function primer9 [x,y]=meshgrid(linspace(-2,2,40)); z=x.*y.*exp(-x.^2-y.^2); surf(x,y,z); global s; s='min'; x1min=fminsearch(@fx,[1 -1]), x2min=fminsearch(@fx,[-1 1]), s='max'; x1max=fminsearch(@fx,[1 1]), x2max=fminsearch(@fx,[-1 -1]), % Находим аналитическое решение syms x y f=x*y*exp(-x^2-y^2); dfx=diff(f,x); dfy=diff(f,y) [x,y]=solve(dfx,dfy) function f=fx(x); global s; f=x(1)*x(2)*exp(-x(1)^2-x(2)^2); if strcmp(s,'max'), f=-f; end

141

Результат. x1min = 0.7071 -0.7071 x2min = -0.7071 0.7071 x1max = 0.7071 0.7071 x2max = -0.7071 -0.7071 x = 1/2*2^(1/2) -1/2*2^(1/2) 1/2*2^(1/2) -1/2*2^(1/2) y = 1/2*2^(1/2) 1/2*2^(1/2) -1/2*2^(1/2) -1/2*2^(1/2)

-2

0

2

-2

0

2-0.2

-0.1

0

0.1

0.2

Рис. 7. График функции 2 2f(x,y) x y exp(-x -y ). = Ч Ч

Функцию fminsearch можно использовать как дополнительное

средство решения системы нелинейных уравнений, т.к. задачу поиска корней системы можно свести к задаче поиска минимума функции n пе-ременных, определив вспомогательную функцию F(x1,x2,...,xn)=f1

2+f22+

... +fn2.

Page 71: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

142

Пример 10. Решить систему уравнений x+y+z=5, x2+y2+z2=9, x3+3yz=13. Решение. function primer10 [x,f]=fminsearch(@fx,[1,1,1]), [x,f]=fminsearch(@fx,[0,1,1]), function f=fx(w); x=w(1); y=w(2); z=w(3); f=(x+y+z-5)^2+(x^2+y^2+z^2-9)^2+(x^3+3*y*z-13)^2; Результат. x = 1.8730 1.0145 2.1125 f = 9.9766e-010 x = 1.0000 2.0000 2.0000 f = 1.9199e-015

3. Интерполяция и аппроксимация сеточных функций

3.1. Полиномиальная интерполяция и аппроксимация

Построение сглаживающего полинома для сеточной функции

y=(y1,y2,…,yn), заданной на сетке x=(x1,x2,…,xn), выполняется функцией polyfit, возвращающей коэффициенты полинома в порядке убывания степеней:

p=polyfit(x,y,m). Здесь m – порядок полинома, p – вектор коэффициентов полино-

ма размерностью m+1. Если m=n-1, то имеет место интерполяция дан-ных и соответственно график полинома проходит через все узловые зна-чения.

При m<n-1 получаем полином, аппроксимирующий данные в смысле наименьшего квадратичного отклонения в узлах. В частном слу-чае m=1 функция polyfit выполняет линейную аппроксимацию данных методом наименьших квадратов.

Значения полинома для произвольного значения аргумента рас-считываются с помощью функции polyval

y=polyval(p,x), причем аргумент х может быть как скаляром, так и вектором.

143

Пример 11. Исследовать зависимость погрешности полиноми-альной интерполяции от числа узлов сетки, задав сеточную функцию в виде yi=cos(ππππxi/2) на равномерной сетке xi =-1+2*(i-1)/(n-1), i=1..n.

Решение. N=5:5:70; a=-1; b=1; e=zeros(1,length(N)); for k=1:length(N) n=N(k); h=(b-a)/(n-1); h=(b-a)/(n-1); i=1: n; x=a+(0 : n-1)*h; y=cos(pi*x/2); xx=x+h/2; xx(end)=[]; yy=cos(pi*xx/2); p=polyfit(x,y,n-1); Y=polyval(p,xx); e(k)=max(abs(Y-yy)); end; plot(N,log10(e)) xlabel('Число узлов сетки') ylabel('log10(\epsilon)')

0 10 20 30 40 50 60 70-15

-10

-5

0

5

log1

0(ε)

Рис. 8. Зависимость погрешности полиномиальной

интерполяции от числа узлов сетки. Рисунок показывает характерное свойство полиномиальной ин-

терполяции на равномерных сетках – уменьшение погрешности при умеренном числе узлов сетки до минимального значения и затем резкое

Page 72: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

144

увеличение (по закону близкому к экспоненциальному) с ростом числа узлов.

Пример 12. Выполнить аппроксимацию данных, задаваемых формулой y=5⋅⋅⋅⋅exp(-0.4x)+A⋅⋅⋅⋅randn, где А – амплитуда шумовой со-ставляющей сеточной функции. Решение. Аппроксимируем данные функцией Y(x)=b⋅⋅⋅⋅exp(ax) и выпол-няем преобразования для перехода к случаю линейной регрессии:

ln , ln , .Y Y b b a a= = =% % %

В новых переменных аппроксимация принимает вид:

( )Y x ax b= +% %%

и можно воспользоваться функцией polyfit. n=100; A=0.2; x=linspace(0,6,n); y=5*exp(-0.4*x)+A*randn(1,n); yy=log(y); p=polyfit(x,yy,1); a=p(1), b=exp(p(2)), Y=b*exp(a*x); plot(x,y,'.k',x,Y,'k') xlabel('x') ylabel('Y=b*exp(a*x)') Результат. a=-0.4124 b=5.1797

Сравнивая с точными значениями (-0.4 и 5), получаем погреш-ность восстановления параметров аппроксимации порядка 3%.

0 1 2 3 4 5 60

1

2

3

4

5

6

x

Y=

b*ex

p(a*

x)

Рис. 9. Аппроксимация зашумленной функции.

145

3.2. Сплайновая интерполяция данных Интерполяция сеточных данных с помощью сплайнов выполняет-

ся функций interp1: yi=interp1(x,y,yi), yi=interp1(x,y,yi,’<метод>’).

Функция интерполирует набор данных y=f(x), заданных на сетке x, на произвольной сетке xi. Массив у может быть как одномерным так и двумерным. В последнем случае выполняется интерполяция для каждо-го столбца и возвращается матрица yi. По умолчанию выполняется ли-нейная интерполяция.

Параметр «метод» задает метод интерполяции и может иметь сле-дующие значения:

«linear» – аппроксимация кусочными полиномами 1-й степени (ломаными);

«spline» – аппроксимация кусочными полиномами 3-й степени (сплайнами);

«pchip» – аппроксимация кусочными полиномами Эрмита 3-й степени.

Выбор метода диктуется качеством данных – для гладких данных

лучше использовать метод «spline», для негладких – «pchip». Вместо указания метода можно напрямую вызывать соответст-

вующие функции:

yi=spline(x,y,xi), yi=pchip(x,y,xi).

Пример 13. Зададим функцию y=x⋅⋅⋅⋅cosx на интервале (-10, 10) с

шагом 1. Выполнить интерполяцию на сетке с шагом 0.1 и найти максимальные погрешности для каждого метода. Решение. a=10; dx=1; dxi=0.1; x= -a:dx:a; y=x.*cos(x); xi=-a:dxi:a; Y=xi.*cos(xi); yp=interp1(x,y,xi,'pchip'); ys=interp1(x,y,xi,'spline'); plot(x,y,'ok',xi,Y,'k'); hold on;

Page 73: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

146

plot(xi,ys,'--k'); plot(xi,yp,'.k'); hold off; ep=max(abs(Y-yp)); es=max(abs(Y-ys)); [es ep] xlabel('x') ylabel('y,ys,yp') Результат. εs = 1.7030e-001, εp = 1.1313e+000.

-10 -5 0 5 10-10

-5

0

5

10

x

y,ys

,yp

Рис. 10. Сплайновая интерполяция гладкой функции.

Пример 14. Построить интерполяционную кривую для функ-

ции ( ) 1 , 1, ( ) 0, 1.f x x x f x x= − < = ≥

Решение a=2.5; dx=0.5; x= -a:dx:a; dxi=0.05; xi=-a:dxi:a; for k=1:length(x) if abs(x(k))<1, y(k)=1-abs(x(k)); else y(k)=0; end; end; for k=1:length(xi) if abs(xi(k))<1, Y(k)=1-abs(xi(k)); else Y(k)=0; end; end; ys=interp1(x,y,xi,'spline'); yp=interp1(x,y,xi,'pchip');

147

plot(x,y,'k',xi,ys,'--k',xi,yp,'.k'); es=max(abs(ys-Y)); ep=max(abs(yp-Y)); [es,ep] xlabel('x') ylabel('y,ys,yp') Результат. εεεε=[9.0804e-002, 7.3500e-002].

-3 -2 -1 0 1 2 3-0.2

0

0.2

0.4

0.6

0.8

1

1.2

x

y,ys

,yp

Рис. 11. Сплайновая интерполяция функции

с точками разрыва производной. Как видно из рисунка, центральную часть сеточной функции оба

метода аппроксимируют с близкой погрешностью, но на периферии ме-тод pchip" дает значения, совпадающие с сеточными.

3.3. Параметрическая интерполяция

В том случае, когда данные задают некоторую ломаную на плос-

кости с вершинами Ai(xi,yi), i=1..n, сплайновую интерполяцию можно использовать для построения гладкой кривой, проходящей через верши-ны ломаной.

С этой целью выполняется параметризация данных по каждой ко-ординате

1 2( ), ( ) .

i i i ix F t y F t= =

В качестве параметра ti можно использовать номера вершин или выбрать нормированные значения ti=i/n. Проинтерполировав независимо координаты x и y по параметру t, получаем сглаженный образ ломаной.

Page 74: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

148

Пример 15. Выполнить параметрическую интерполяцию ло-маной, задав координаты вершин интерактивно с помощью функ-ции ginput. Решение. [x,y]=ginput(); n=length(x); t=linspace(0,1,n); tt=linspace(0,1,10*n); xs=spline(t,x,tt); ys=spline(t,y,tt); xp=pchip(t,x,tt); yp=pchip(t,y,tt); plot(x,y,'ok',xs,ys,'k',xp,yp,'k--') xlabel('x') ylabel('y')

0 0.2 0.4 0.6 0.8 10

0.2

0.4

0.6

0.8

1

x

y

Рис. 12. Параметрическая интерполяция плоского полигона.

4. Численное интегрирование

Вычисление определенных интегралов типа ( )b

f x dx

выполня-

ется функциями quad и quadl, имеющими формат [I,cnt]=quad(‘fun’,a,b,tol), [I,cnt]=quadl(‘fun’,a,b,tol), где a, b – пределы интегрирования; fun – строка или указатель на под-функцию, содержащие определение подинтегральной функции; tol – от-

149

носительная погрешность (по умолчанию 1.e-6); I – значения интеграла, cnt – количество вычислений f(x).

Функция quad использует формулу Симпсона (метод парабол), функция quadl – квадратурную формулу Лобатто.

Точное значение интеграла во многих случаях можно получить с помощью функции int , входящей в состав ядра пакета Maple

I=int(F,a,b), I=int(F,a,b,v). Здесь F – подинтегральная функция, задаваемая в виде строки или

символьного выражения; a, b – пределы интегрирования; v – имя пере-менной интегрирования (х задавать не обязательно).

Пример 16. Вычислить интеграл 0

sinx xdxp

т , сравнить с точ-

ным значением (ππππ ) и исследовать зависимость cnt (tol). Решение. I=int('x*sin(x)',0,pi) %Задаем диапазон изменения параметра погрешности: e=10.^[-(4:14)]; for k=1:length(e) [I1(k),c1(k)]=quad('x*sin(x)',0,pi,e(k)); [I2(k),c2(k)]=quadl('x*sin(x)',0,pi,e(k)); end; plot(log10(e),c1,log10(e),c2,'--'); xlabel('log10(e)') ylabel('fcnt') [e;abs(I1-pi);abs(I2-pi)]'

Результат. I = pi

εεεε |I1-ππππ| |I2-ππππ| 1.0000e-004 1.0000e-005 1.0000e-006 1.0000e-007 1.0000e-008 1.0000e-009 1.0000e-010 1.0000e-011 1.0000e-012 1.0000e-013 1.0000e-014

3.6789e-007 4.2430e-008 3.4427e-009 2.0427e-010 3.3786e-012 1.8670e-012 2.5313e-014 1.5543e-014

0 0 0

3.5388e-008 3.5388e-008 3.5388e-008 3.5388e-008 4.8850e-015 4.8850e-015 4.8850e-015 4.8850e-015 6.2172e-015 4.4409e-016 4.4409e-016

Page 75: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

150

-14 -12 -10 -8 -6 -40

500

1000

1500

2000

log10(e)

fcnt

Рис. 13. График зависимости количества вычислений функции от точности.

5. Численное решение обыкновенных

дифференциальных уравнений

5.1. Решение задачи Коши Численное интегрирование обыкновенных дифференциальных

уравнений (ОДУ) dx/dt=f(t,x) выполняется с помощью специальных ре-шателей – функций ode45, ode23, ode23s, ode23t, ode23tb, ode15s, ode113.

Все функции имеют одинаковую форму вызова, рассмотренную ниже на примере ode45:

[T,X]=ode45('fun',[t0,tf],x0). [T,X]=ode45('fun',[t0,tf],options). Здесь fun – указатель на подфункцию или строка, содержащая

имя внешнего m-файла, в котором описаны правые части ОДУ, причем исходная система или уравнение высокого порядка должны быть при-ведены к системе дифференциальных уравнений первого порядка dx/dt=f(x,t), где t – время; x – вектор состояния; f – вектор-функция пе-ременных t и x.

Параметры t0 и tf задают начало и конец интервала интегрирова-ния, x0 – вектор начального состояния системы. Аргумент options слу-

151

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

Выходные параметры: Т – вектор-столбец временных точек; Х – матрица, в которой i-й столбец соответствует переменной xi.

Пример 17. Провести сравнение колебаний математического

маятника вблизи нижнего и верхнего положений равновесия. Решение.

Уравнение колебаний математического маятника в общем случае имеет вид φ''+ω0

2sinφ = 0, где φ – угол отклонения от вертикали, ω0 – собственная частота колебаний (в расчете принимается равной 1). Вбли-зи нижнего положения равновесия отклонения малы, нелинейностью можно пренебречь и уравнение колебаний принимает вид φн''+ω0

2φн=0. Строим решение, задавая начальные смещения от положения рав-

новесия и полагая угловые скорости равными нулю. function primer17

x0=[pi-pi/12, 0, pi/12, 0];

[t, x]=ode45(@Dx,[0,20],x0);

subplot(2,1,1)

plot(t,x(:,1),t,x(:,2),'--');

xlabel('t')

ylabel('\Phi, d\Phi/dt')

title('Верхнее положение равновесия')

subplot(2,1,2)

plot(t,x(:,3),t,x(:,4),'--');

xlabel('t')

ylabel('\Phi, d\Phi/dt')

title('Нижнее положение равновесия')

function dx=Dx(t,x);

dx=[x(2); -sin(x(1)); x(4); -x(3)].

Page 76: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

152

0 5 10 15 20-5

0

5

t

Φ,

d Φ/d

t

0 5 10 15 20-0.5

0

0.5

t

Φ,

d Φ/d

t

Рис. 14. Графики колебательного процесса для математического маятника.

Как видно из графика, с увеличением амплитуды начального от-

клонения увеличивается период колебаний физического маятника, а ко-лебания начинают отличаться от гармонических вследствие нелинейно-сти уравнения.

5.2. Решение краевых задач для уравнений второго порядка

Рассмотрим ОДУ 2-го порядка x''(t)=F(t,x,x') с граничными условиями 1-го рода x(t1)=x1, x(t2)=x2. В случае линейного ОДУ решение краевой задачи можно полу-

чить, используя следующий алгоритм. Обозначим через xa(t) и xb(t) решения задач Коши x(t1)=x1, x'(t1)= a , x(t1)=x1, x'(t1)= b , найденные с помощью ode45. Суперпозиция x=p xa +(1-p) xb также является решением рассмат-

риваемой задачи. Параметр p находим, привлекая второе граничное ус-ловие:

x(t2)=x2= p xa(t2)+(1-p) xb(t2)= p xa2+(1-p) xb2, откуда p=(x2- xa2)/( xb2- xa2). Аналогичным образом решаются и другие краевые задачи для ли-

нейных ОДУ (в общем случае любого порядка).

153

Пример 18. Найти решение уравнения x''-x'=e 2tcoset с гранич-ными условиями x(1)=1, x(4)=2. Решение. function primer18 t1=1; t2=4; a=0; b=1; x1=1; x2=2; [t,x]=ode45(@Dx,[t1,t2],[x1 a]); xa=x(length(t),1); [t,x]=ode45(@Dx',[t1, t2],[x1 b]); xb=x(length(t),1); p=(x2-xb)/(xa-xb); [t,x]=ode45(@Dx,[t1, t2],[x1 p*a+(1-p)*b]); plot(t,x(:,1)) xlabel('t') ylabel('x(t)') function dx=Dx(t,x); dx=[x(2); x(2)+exp(2*t)*cos(exp(t))];

1 1.5 2 2.5 3 3.5 4-1

0

1

2

3

t

x(t)

Рис. 15. График решения краевой задачи для уравнения x''-x'=e2tcoset .

Решение краевых задач для нелинейных ОДУ можно находить

совместно используя функции ode45 и fzero. Обозначим черех x2p решение задачи Коши x(t1)=x1, x'(t1)= p при

t=t2. Тогда решение исходной краевой задачи сводится к решению урав-нения x2p=x2 относительно параметра p.

Page 77: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

154

Пример 19. Найти решение нелинейного уравнения x''=1/x3 с граничными условиями x(0)=1, x(1)=2. Вывести предварительно за-висимость x2p и убедиться, что задача имеет 2 решения.

Решение. function primer19 p=-4:0.1:2; for k=1:length(p) xp(k)=f1(p(k)); end; plot(p,xp,p,p*0); p1=fzero(@f1,1), p2=fzero(@f1,-2), pause; t1=0; t2=1; x1=1; x2=2; [T1,X1]=ode45(@f2,[t1,t2],[x1 p1]); [T2,X2]=ode45(@f2,[t1,t2],[x1 p2]); plot(T1,X1(:,1),'k',T2,X2(:,1),'k'); xlabel('t') ylabel('x(t)') title('Решения уравнения x''''=1/x^3 ') function f=f1(p); t1=0; t2=1; x1=1; x2=2; [t,x]=ode45(@f2,[t1,t2],[x1 p]); f=x(length(t),1)-2; function dx=f2(t,x); dx=[x(2); 1/x(1)^3]; Результат. p1 = 0.7320 p2 = -2.7398

155

0 0.2 0.4 0.6 0.8 10

0.5

1

1.5

2 x''=1/x3

x(t)

t Рис. 16. Графики решения краевой задачи для уравнения

31 /x xўў= .

Рисунок иллюстрирует тот факт, что краевые задачи для нели-

нейных ОДУ могут иметь несколько решений.

6. Создание интерфейсных приложений MatLab позволяет создавать приложения, обеспечивающие инте-

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

В состав MatLab входит среда GUIDE для создания приложений с графическим интерфейсом пользователя. Работа в этой среде достаточно проста – элементы управления (кнопки, раскрывающиеся списки и т.д.) размещаются при помощи мыши, а затем программируются события, которые возникают при обращении пользователя к данным элементам управления. Для вызова среды GUIDE можно выполнить команду >> guide.

Диалоговое окно GUIDE Quick Start имеет две вкладки – Create New GUI (создание нового приложения) и Open Existing GUI (открытие существующего приложения).

При выборе во вкладке Create New GUI строки Blank GUI появля-ется основное окно среды GUIDE, содержащее заготовку для окна при-ложения, панель инструментов для добавления элементов интерфейса, управляющую панель и меню.

Page 78: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

156

Рис. 17. Окно среды GUIDE.

В панели интсрументов представлены следующие интерфейсные элементы: • pushbutton – кнопка, • togglebutton – кнопка-переключатель, • checkbox – флаг, • radiobutton – переключатель, • edit – область ввода текса • text – статический текст, • slider – полоса скроллинга, • listbox – список, • popupmenu – раскрывающийся список.

В процессе разработки интерфейса приложения выполняется вы-бор элементов управления на инструментальной панели, размещение их на заготовке окна приложения и настройка требуемых свойств в окне инспектора свойств (Property Inspector).

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

157

Рис. 18. Окно нспектора свойств. Интерфейсные элементы имеют обширный набор свойств, отме-

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

• Position – положение элемента в окне, • Units: [ inches | centimeters | normalized | points | pixels ] – еди-

ницы измерения свойства Position, • String – текст на командной кнопке, содержимое строки ввода и

т.п., BackgroundColor – фоновый цвет элемента, • ForegroundColor – цвет текста, HorizontalAlignment: [left |

center | right ] – тип выравнивания текста, • Max – максимальное значение свойства (для элементов edit,

slider), • Min – минимальное значение свойства, • Value – текущее числовое значение для элементов slider, check-

box, radiobutton, • Enable: [on | off ] – активность (доступность) элемента, • Visible: [on | off ] – состояние отображения элемента.

Page 79: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

158

Свойство CallBack предназначено для программирования обра-ботчика события, связанного с выбранным элементом. Рассмотрим про-цесс программирования события Callback кнопки с тегом Start. Для это-го в контекстном меню кнопки выбераем в пункте View Callbacks под-пункт Callback. При этом происходит переход в редактор M-файлов к подфункции обработки события Start_Callback, заголовок которой и комментарии (комментарии здесь опущены и их следует удалять в об-работчике ) генерируется автоматически (заметим, что при инициализа-ции свойства Tag переход в редактор и создание заготовки обработчика события происходит автоматически):

% --- Executes on button press in Start. function Start_Callback(hObject, eventdata, handles)

Имя подфункции состоит из тега объекта (Start), событие Callback которого будет обрабатываться и названия события Callback. Аргумент hObject функции содержит указатель на кнопку Start. Аргумент eventdata зарезервирован для использования в следующих версиях MatLab. Аргумент handles является структурой с указателями на все объекты приложения. Полями структуры handles являются теги объек-тов, значениями полей – указатели на объекты. Например, handles. Start содержит указатель на кнопку Hello, handles.figure1 – указатель на окно приложения.

После заголовка требуется вставить программный код, который будет выполняться при нажатии на кнопку Start.

Рассмотрим детали разработки приложения на конкретной задаче,

в качестве которой возьмем задачу поиска корней систем нелинейных уравнений средствами системы MatLab. Для возможности визуализации результатов ограничимся максимальной размерностью системы n=2, т.е. будем рассматривать случаи:

1. f(x)=0 2. f1(x,y)=0, f2(x,y)=0. Разрабатываемое приложение должно принимать уравнения, оп-

ределять размерность, строить графики, предоставлять возможность вы-бора одного из решателей (fzero, fsove, solve) и задания начального при-ближения, а также отображать решение в числовой форме и графически.

Интерфейс приложения (рис. 19) содержит следующие графиче-ские объекты. • Поле ввода (тег System) предназначено для ввода функций, в случае системы функции разделяются символами пробела и запятой.

159

• Визуализация функций выполняется в осях координат axes1 (нет при-чин менять имя по умолчанию).

• Поля ввода с тегами xmin, xmax (в одномерном случае) и ymin, ymax (в случае системы) задают границы области вывода графиков функ-ций.

• Кнопка «График» (тег Plot) обеспечивает вывод графика. • Переключатели Fzero, Fsolve, Solve реализуют выбор решателя, инте-рактивное задание начального приближения (с помощью функции ginput), поиск и вывод решения.

• Флажок Sym указывает форму вывода решения (символьная или чи-словая) в случае решателя Solve.

Обработка событий связана только с кнопкой «График» и пере-ключателями Fzero, Fsolve, Solve. Поля ввода и флажок являются только поставщиками информации, которая используется обработчиками собы-тий путем опроса свойств соответствующих интерфейсных элементов.

При вводе новых уравнений обязательно построение графиков прежде обращения к поиску корней.

Page 80: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

160

Рис. 19. Интерфейс программы поиска корней системы нелинейных уравнений.

Код программы function varargout = Solver(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Solver_OpeningFcn, ... 'gui_OutputFcn', @Solver_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1); end if nargout [varargout1:nargout] = gui_mainfcn(gui_State, varargin:); else gui_mainfcn(gui_State, varargin:); end function Solver_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); global H H=handles; clc set(H.System,'str','cos(x)-x') Plot_Callback(H.Plot, eventdata, handles) function varargout = Solver_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output; function GetDim global H Dim s=get(H.System,'str'); Dim=length(findstr(s,','))+1; function Plot_Callback(hObject, eventdata, handles) global H Dim f f1 f2

161

GetDim f=get(H.System,'str'); f1=f; eval([get(H.xmin,'str'),';']); eval([get(H.xmax,'str'),';']); eval([get(H.ymin,'str'),';']); eval([get(H.ymax,'str'),';']); cla if Dim==1, p1=ezplot(f,[xmin,xmax]); set(gca,'xlim',[xmin,xmax]) grid on title([f1,'=0']) else k=findstr(f,','); f1=f(1:k-1); f2=f(k+1:end); p1=ezplot(f1,[xmin,xmax,ymin,ymax]); set(p1,'color','b'); hold on p2=ezplot(f2,[xmin,xmax,ymin,ymax]); axis([xmin,xmax,ymin,ymax]) grid on set(p2,'color','r'); title([f1,'=0 , ',f2,'=0']) end; set(H.Roots,'str','') function Fzero_Callback(hObject, eventdata, handles) global H Dim f1 if Dim==2, return; end; set(H.Solve,'Value',0) set(hObject,'Value',1) [x,y]=ginput(1); x=fzero(f1,x); hold on plot(x,0,'ok') ShowRoots(1,x) function Fsolve_Callback(hObject, eventdata, handles) global H Dim f1 f2

Page 81: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

162

if Dim==1, return; end; set(H.Solve,'Value',0) set(hObject,'Value',1) z0=ginput(1); z=fsolve(@Fxy,z0); x=z(1); y=z(2); hold on plot(x,y,'ok') ShowRoots(2,x,y); function Solve_Callback(hObject, eventdata, handles) global H Dim f1 f2 set(H.Fzero,'Value',0) set(H.Fsolve,'Value',0) set(hObject,'Value',1) hold on if Dim==1 x=solve(f1); xn=eval(x)'; j=[]; for k=1:length(xn) if isreal(xn(k)), j=[j,k]; end; end xn=xn(j); plot(xn,xn*0,'ok'); else [x,y]=solve(f1,f2) xn=eval(x)'; yn=eval(y)'; j=[]; for k=1:length(xn) if (isreal(xn(k)))&(isreal(yn(k))), j=[j,k]; end; end xn=xn(j); yn=yn(j); plot(xn,yn,'ok'); end; if Dim==1, ShowRoots(3,x); else ShowRoots(3,x,y); end function F=Fxy(z)

163

global f1 f2 x=z(1); y=z(2); F=[eval(f1), eval(f2)]; function ShowRoots(n,x,y) global H Dim ret=char(10); switch n case 1 s=[' fzero:',ret,' x = ',num2str(x)]; case 2 s=[' fsolve:',ret,' x = ',num2str(x),ret,' y = ',num2str(y)]; case 3 s=[' solve:',ret]; for k=1:length(x) if get(H.Symbol,'Value')==1 sx=char(x(k)); sx = strrep(sx, 'sqrt(-1)', 'i'); s=[s,' x',num2str(k),'=',sx,ret]; if Dim==2 sy=char(y(k)); sy = strrep(sy, 'sqrt(-1)', 'i'); s=[s,' y',num2str(k),'=',sy,ret]; end; else xx=eval(x(k)); s=[s,' x',num2str(k),'=',num2str(xx),ret]; if Dim==2 yy=eval(y(k)); s=[s,' y',num2str(k),'=',num2str(yy),ret]; end; end end; end set(H.Roots,'str',s)

7. Краткая справка по часто используемым функциям MatLab

Трансцендентные функции: exp Экспоненциальная функция log Функция натурального логарифма

Page 82: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

164

log10 Логарифм по основанию 10 sqrt Функция квадратного корня Тригонометрические функции sin Синус sinh Гиперболический синус asin Арксинус cos Косинус cosh Гиперболический косинус acos Арккосинус tan Тангенс tanh Гиперболический тангенс atan Арктангенс sec Секанс Функции обработки комплексных чисел abs Абсолютное значение комплексного числа conj Комплексно-сопряженное число imag Мнимая часть комплексного числа real Действительная часть комплексного числа Функции округления и нахождения остатка fix Усечение дробной части числа floor Округление до меньшего целого ceil Округление до большего целого round Округление до ближайшего целого rem Остаток от деления с учетом знака Массивы и матрицы специального вида zeros Формирование массива нулей ones Формирование массива единиц eye Формирование единичной матрицы rand Формирование массива элементов, распределенных по равномерному закону randn Формирование массива элементов, распределенных по нормальному закону linspace Формирование линейного массива равноотстоящих узлов meshgrid Формирование узлов двумерной и трехмерной сеток Базовые операции с массивами max Максимальный компонент массива

165

min Минимальный компонент массива sum Суммирование элементов массива prod Произведение элементов массива find Определить индексы ненулевых элементов size Размер массива length Длина вектора

Двумерные и трехмерные графики plot График в линейном масштабе loglog График в логарифмическом масштабе semilogx График в полулогарифмическом масштабе по оси x semilogy График в полулогарифмическом масштабе по оси y plotyy График с двумя вертикальными осями plot3 Построение линий и точек

в трехмерном пространстве contour Изображение линий уровня для трехмерной

поверхности mesh Трехмерная сетчатая поверхность surf Затененная сетчатая поверхность

Функции создания графических объектов figure объект – окно приложения axes объект – координатные оси line объект – линия text объект – текст patch объект – закрашенный многоугольник surface объект – поверхность image объект – рисунок light объект – источник освещения uicontrol объект – интерфейсный элемент uimenu объект – пользовательское меню

Операции над графическими объектами set Установить свойства графического объекта get Получить свойства графического объекта delete Удалить графический объект gco Получить дескриптор текущего объекта drawnow Выполнить очередь задержанных графических команд findobj Найти объекты с заданными свойствами gcf Получить дескриптор графического окна gca Получить дескриптор графического объекта axes clf Очистить графическое окно

Page 83: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

166

cla Очистить оси координат close Закрыть графическое окно

ЛИТЕРАТУРА

1. Самарский А.А. Введение в численные методы. – М.: Наука, 1987. – 288 с.

2. Самарский А.А., Гулин А.В. Численные методы. – М.: Наука, 1989. – 430 с.

3. Бахвалов Н.С. Численные методы-I. – М.: Наука, 1975. – 631 с. 4. Бахвалов Н.С., Жидков Н.П., Кобельков Г.М. Численные методы. –

М.: Наука, 1987. – 600 с. 5. Калиткин Н.Н. Численные методы. – М.: Наука, 1978. – 512 с. 6. Марчук Г.И. Методы вычислительной математики. – М.: Наука,

1989. – 608 с. 7. Бабенко К.И. Основы численного анализа. – М.: Наука, 1986. – 744 с. 8. Самарский А.А., Николаев Е.С. Методы решения сеточных уравне-

ний. – М.: Наука, 1978. – 590 с. 9. Фихтенгольц Г.М. Курс дифференциального и интегрального ис-

числения, том I. – М.: Наука, 1970. – 608 с. 10. Фихтенгольц Г.М. Курс дифференциального и интегрального ис-

числения, том II. – М.: Наука, 1970. – 800 с. 11. Понтрягин Л.С. Обыкновенные дифференциальные уравнения.– М.:

Наука, 1974. – 332 с. 12. Тихонов А.Н., Васильева А.Б., Свешников А.Г. Дифференциальные

уравнения. – М.: Наука, 1980. – 232 с. 13. Хартман Ф. Обыкновенные дифференциальные уравнения. – М.:

Мир, 1970. – 720 с. 14. Ладженская О.А. Краевые задачи математической физики. – М.:

Наука, 1973. – 408 с. 15. Роуч П. Вычислительная гидродинамика. – М.: Мир, 1980. – 616 с. 16. Дулан Э., Миллер Дж., Шилдерс У. Равномерные численные мето-

ды решения задач с пограничным слоем. – М.: Мир, 1983. – 198 с. 17. Самарский А.А. Теория разностных схем. – М.: Наука, 1983. – 616 с. 18. Булеев Н.И., Тимухин Г.И. О составлении разностных уравнений

гидродинамики вязкой неоднородной среды // Численные методы механики сплошной среды. -1972. -Т. 3, 4. -С.19–26.

19. Булеев Н.И. Пространственная модель турбулентного обмена. – М.: Наука, 1983. – 344 с.

167

20. Ильин А.М. Разностная схема для дифференциального уравнения с малым параметром при старшей производной // Математические за-метки. – 1969. – Т. 6. – Вып. 2. – С. 237–248.

21. El-Mistikawy, T.M., Werle, M.J. Numerical method for boundary layers with blowing – the exponential box scheme // AIAAJ. – 1978. –V. 16. –P. 749–751.

22. Тихонов А.Н., Самарский А.А. Уравнения математической физики. – М.: Наука, 1966.

23. Сегё Г. Ортогональные многочлены. – М.: Физматгиз, 1962. 24. Годунов С.К. Уравнения математической физики. – М.: Наука, 1971. 25. Шокин Ю.И., Яненко Н.Н. Метод дифференциального приближе-

ния. – Новосибирск: Наука, 1985. 26. Boris Jay P., Book David L. Flax-Corrected Transport. I. SHASTA, a

Fluid Transport Algorithm that Works // Journal of Computational Phys-ics. – 1973. – Vol. 11. –P. 38–69.

27. Thompson J.F., Warsi Z.U.A., Mastin C.W. Numerical grid generation: foundations and applications. – North-Holland, New York, 1985. – 242 p.

28. Эльсгольц Л.Э. Дифференциальные уравнения и вариационное ис-числение. – М.: Наука, 1969. – 424 с.

29. Чанг К., Хауэс Ф. Нелинейные сингулярно возмущенные краевые задачи. Теория и приложения. – М.: Мир, 1988. – 247 с.

30. Голуб Дж., Ван Лоун Ч. Матричные вычисления. – М.: Мир, 1999. – 548 с.

31. Поршнев С.В. Вычислительная математика. Курс лекций. – СПб.: БХВ-Петербург, 2004. – 320 с.

32. Поршнев С.В. Компьютерное моделирование физических процессов в пакете MatLab. – М.: Горячая линия-Телеком, 2003. – 592 с.

33. Ануфриев И. Самоучитель Matlab 5.3/6.Х. СПб, БХВ-Петербург, 2004, 736 с.

34. Коткин Г.Л., Черкасский В.С. Компьютерное моделирование физи-ческих процессов с использованием MatLab. Учебное пособие / Но-восиб. ун-т. – Новосибирск, 2001. – 173 с.

35. Кетков Ю., Шульц М., Кетков А. Matlab 6.Х. Программирование численных методов. – СПб.: БХВ-Петербург, 2004. – 672 с.

36. Алексеев Е.Р., Чеснокова О.В. MATLAB 7. Самоучитель. Изд-во «НТ Пресс», 2006. – 464 с.

37. Иглин С.П. Математические расчеты на базе MatLab. Изд-во «BHV-Санкт-Петербург», 2005. – 640 с.

38. Мартынов Н.Н. MatLab 7. Элементарное введение. – М.: Кудиц-Образ, 2005. – 416 с.

39. Потемкин В. Вычисления в среде MATLAB. Диалог-МИФИ, 2004. 40. Алексеев Е.Р., Чеснокова О.В. Решение задач вычислительной мате-

матики в пакетах Mathcad 12, MATLAB 7, Maple 9. Самоучитель. Изд-во: НТ Пресс, 2006. – 496 с.

Page 84: O @ 8 4 @. ' 8 A ; 5 = = K 5 < 5 B > 4 Klib.krsu.edu.kg/uploads/files/public/377.pdf · Сглаживающий кубический сплайн .....22 Лабораторная

168

С.Н. Скляр, П.В. Козлов

ЧИСЛЕННЫЕ МЕТОДЫ

Лабораторный практикум

(материалы для самостоятельной работы)

Редактор И.С. Волоскова Технический редактор М.Р. Фазлыева

Корректор Е.И. Полихова Компьютерная верстка Э.Ю. Вислевской

Подписано в печать 22.05.2007. Формат 60×84 1/16

Офсетная печать. Объем 10,5 п.л. Тираж 50 экз. Заказ 353.

Издательство Кыргызско-Российского Славянского университета

720000, г. Бишкек, ул. Киевская, 44

169

Отпечатано в типографии КРСУ

720000, г. Бишкек, ул. Шопокова, 68