И.А. ФЕДОРЧЕНКО › files › kis ›...

163
Методы вычислений в пакете MathCAD НОВОСИБИРСК 2013 И.А. БЕДАРЕВ Ю.В. КРАТОВА Н.Н. ФЕДОРОВА И.А. ФЕДОРЧЕНКО

Transcript of И.А. ФЕДОРЧЕНКО › files › kis ›...

Page 1: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

Методы вычислений в пакете MathCAD

НОВОСИБИРСК 2013

И.А. БЕДАРЕВ

Ю.В. КРАТОВА

Н.Н. ФЕДОРОВА

И.А. ФЕДОРЧЕНКО

Page 2: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

2

СОДЕРЖАНИЕ Введение........................................................................................ 4

Глава 1. Методы решения нелинейных алгебраических

уравнений ...................................................................................... 6

1.1. Постановка задачи ............................................................ 6

1.2. Приближенные методы .................................................... 7

1.3. Стандартные функции MathCAD .................................. 14

Глава 2. Численные методы линейной алгебры ...................... 20

2.1. Матрицы и простейшие операции над ними ................ 20

2.2. Определитель, ранг, обратная матрица......................... 21

2.3. Операции с матрицами в MathCAD .............................. 22

2.4. Системы линейных алгебраических уравнений .......... 26

2.5. Точные методы решения СЛАУ .................................... 27

2.6. Итерационные методы решения СЛАУ ........................ 33

2.7. Решение СЛАУ в пакете MathCAD ............................... 38

2.8. Собственные значения и собственные векторы ........... 41

Глава 3. Интерполяция и приближение функций ................... 47

3.1. Постановка задачи интерполяции ................................. 48

3.2. Локальная интерполяция ................................................ 48

3.3. Глобальная интерполяция .............................................. 53

3.4. Полином Лагранжа ......................................................... 54

3.5. Полином Ньютона .......................................................... 56

3.6 Ряды Фурье ....................................................................... 58

3.7 Метод наименьших квадратов ........................................ 64

3.9. Заключение ...................................................................... 68

Глава 4. Решение задач оптимизации ....................................... 70

4.1. Поиск экстремума функции одной переменной

аналитическим методом ........................................................ 70

4.2. Поиск экстремума функции с помощью встроенных

функций MathCAD ................................................................ 72

Глава 5. Численное дифференцирование и интегрирование . 77

5.1. Численное дифференцирование .................................... 77

5.2. Численное интегрирование ............................................ 84

Глава 6. Решение обыкновенных дифференциальных

уравнений .................................................................................... 96

6.1. Задача Коши .................................................................... 96

Page 3: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

3

6.2. Краевая задача для ОДУ второго порядка .................. 115

Глава 7. Решение уравнений в частных производных .......... 134

7.1. Основные понятия. Постановка задачи ...................... 134

7.2. Параболические уравнения .......................................... 138

7.3. Гиперболические уравнения ........................................ 153

7.4. Приближенные методы решения уравнения Пуассона

............................................................................................... 158

Заключение ............................................................................... 162

Список рекомендованной литературы ....................................... 163

Page 4: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

4

Введение

В настоящее время компьютерное моделирование завоевыва-

ет все новые области приложения в сферах проектирования и

создания технических изделий. Это связано как с усложнением

объектов производства, так и с ростом возможностей ЭВМ. Рас-

пространенное мнение о всемогуществе современных ЭВМ час-

то порождает впечатление, что математики избавились от всех

хлопот, связанных с решением задач, и разработки новых мето-

дов для их решения не требуется. В действительности это не

так, поскольку практика каждый раз ставит все новые, более

сложные цели, возникают комплексные задачи, математическое

моделирование проникает в новые области.

Математическое моделирование – это описание на абстракт-

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

Математическая модель объекта или явления – набор формул,

таблиц, уравнений, описывающих поведение этого объекта или

явления. Этапы математического моделирования включают:

1) Уточнение наиболее существенных фактов, свойств описы-

ваемого объекта или явления;

2) Построение математической модели – системы уравнений:

алгебраических, функциональных, в частных производных;

3) Нахождение решений, точно или с помощью приближен-

ных методов, которые специально разрабатывают для ре-

шения конкретной задачи;

4) Проверка адекватности модели: соответствие полученных

решений основным фактам, экспериментам, если необхо-

димо – уточнение модели, т.е. введение в модель новых

уравнений или добавление новых слагаемых в существую-

щие уравнения;

5) Параметрические исследования на основе построенной мо-

дели, получение новых сведений об объекте.

В современное время создано и широко применяется множе-

ство специальных программных пакетов и комплексов для ре-

шения различных физических и технических проблем, включая

задачи строительства. Каждый из таких свободно распростра-

няемых или коммерческих продуктов основан на применении

Page 5: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

5

некоторого специфического круга математических моделей и

вычислительных методов. Понимание принципов, заложенных в

основу используемого программного инструментария, является

необходимым требованием к квалификации современного ин-

женера-специалиста. Поэтому основная цель курса - дать пред-

ставление о многообразии математических моделей и методов,

возникающих в процессе научно-исследовательской и проект-

ной деятельности в области строительства; научить подбирать и

модифицировать методы прикладной математики для решения

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

вать полученное решение. В качестве помощника в реализации

этих целей предлагается использовать систему компьютерной

алгебры MathCAD. Данный программный продукт позволяет

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

этом достаточно понятный интерфейс, не требующий больших

затрат времени для знакомства с ним. Кроме стандартных функ-

ций, позволяющих решать некоторые задачи, в том числе рас-

сматриваемые в настоящем пособии, область применения пакета

существенно расширена за счет возможности использования

средств программирования.

Учебное пособие предназначено для использования в учеб-

ном процессе студентами НГАСУ (Сибстрин), обучающимся по

направлению 270800 «Строительство». Данный курс является

неотъемлемой частью математической подготовки в соответст-

вии с требованиями, отраженными в Федеральном Государст-

венном стандарте специальности.

В пособии приведены сведения из линейной алгебры, функ-

ционального анализа, дифференциальных уравнений, уравнений

в частных производных и численных методов, которые необхо-

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

математики. Показаны примеры решения некоторых конкрет-

ных задач в пакете MathCAD.

Пособие состоит из семи глав, введения и списка литературы.

Формулы и рисунки имеют двойную нумерацию с учетом номе-

ра главы.

Page 6: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

6

Глава 1. Методы решения нелинейных алгебраических

уравнений

1.1. Постановка задачи

Дано нелинейное алгебраическое уравнение

F(x)=0 (1.1)

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

является не прямая линия. Решить уравнение – это найти x*R:

F(x*)=0.

Значение x* называют кор-

нем уравнения. Нелинейное

уравнение может иметь не-

сколько корней. Геометриче-

ская интерпретация такой си-

туации представлена на

рис. 1.1. Корнями уравнения

(1.1) являются точки x1*, x2*,

x3*, в которых функция F(x)

пересекает ось x.

y y=F(x)

xx1* x2* x3*

СШ

А:

учён

Рис. 1.1. Геометрическая

иллюстрация уравнения (1.1)

Необходимое условие существования корня уравнения (1.1) и

достаточное условие единственности следуют из известной

теоремы Больцано-Коши. Пусть F(x) непрерывна и F(a)F(b)<0

(т.е. на концах интервала функция имеет разные знаки). Тогда

внутри отрезка [a, b] существует корень уравнения F(x)=0. Ко-

рень будет единственным, если F(x) не меняет знак на отрезке

[a, b], т.е. F(x) – монотонная функция.

Методы решения уравнения (1.1) можно разделить на точ-

ные (аналитические) и приближенные (итерационные). В точ-

ных методах корень находится за конечное число действий и

представляется некоторой алгебраической формулой. В при-

ближенных методах процесс нахождения решения бесконечен.

Решением называется бесконечная последовательность {xn}, та-

кая, что x*xnn

lim . По определению предела, для любого

сколь угодно малого наперед заданного найдется такое N, что

при n>N, |xn – x*|<. Члены этой последовательности xn назы-

Page 7: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

7

ваются последовательными приближениями к решению, или

итерациями. Наперед заданное число называют точностью

метода, а N — это количество итераций, которое необходимо

выполнить, чтобы получить решение с точностью . Существует

различные методы нахождения приближенного решения, т.е.

способы построения последо-

вательности итераций {xn},

однако все они имеют общие

этапы, изображенные на

рис. 1.2.

Используются различные

критерии остановки итера-

ционного процесса:

– |xn–x*|<. К сожалению,

это условие не всегда возмож-

но проверить, т.к. x* неизвест-

но;

– F(xn)<, где F(xn) – не-

вязка метода;

– |xn+1–xn|<, т.е. разница

между соседними итерациями стала мала.

1.2. Приближенные методы

Прежде чем использовать приближенный метод, уравнение

надо исследовать на наличие корней и уточнить, где эти корни

находятся, т.е. найти интервалы изоляции корней. Интервалом

изоляции корня называется отрезок, на котором корень уравне-

ния существует и единственный. Каждому корню соответствует

свой интервал изоляции. Если корней несколько, то для каждого

нужно найти интервал изоляции. Существуют различные спосо-

бы исследования функции: аналитический, табличный, графиче-

ский. Аналитический способ состоит в нахождении экстремумов

функции F(x), исследовании ее поведения при x , нахожде-

нии участков возрастания и убывания функции. Табличный спо-

соб — это построение таблицы, состоящей из столбца аргумента

x и столбца значений функции F(x). О наличии корней свиде-

Начальное

приближение x0

Условие выхода из итерационного

процесса

Следующее приближение

xn+1=(xn, xn—1, …, x1, x0)

нет да

Рис. 1.2. Этапы итерацион-

ного процесса

Page 8: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

8

тельствуют смена знака функции. Чтобы не произошла потеря

корней, шаг изменения аргумента должен быть достаточно мел-

ким, а интервал изменения достаточно большим. И, наконец,

графический способ – это построение графика функции F(x) и

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

осью x. Ниже для иллюстрации приведено графическое иссле-

дование уравнения F(x)=0,4 2x - 0,5x – 1=0.

На рис. 1.3 приведены

построенные с помощью

MathCAD графики функ-

ций F1(x)=0,4 2x

и F2(x)=

0,5x + 1. Корнями являют-

ся точки, в которых пере-

секаются два графика. Ри-

сунок показывает, что ис-

ходное уравнение имеет

два корня, расположенные

на интервалах [-3,0] и

[0, 3].

Рис. 1.3. Графический способ на-

хождения интервалов изоляции

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

несколькими итерационными методами, позволяющими найти

корень на известном интервале изоляции [a, b].

1.2.1. Метод деления отрезка пополам (дихотомии)

Найдем середину отрезка [a, b]: c=(a+b)/2. Корень остался на

одной из частей: [a, c] или [c, b]. Если F(a)F(с)<0, то корень по-

пал на отрезок [a, c], тогда деление отрезка можно повторить,

приняв в качестве нового правого конца точку c, т.е. b=c. В про-

тивном случае корень попал на половину [c, b], и необходимо из-

менить значение левого конца отрезка: a=c. Поскольку корень

всегда заключен внутри отрезка, итерационный процесс можно

останавливать, если длина отрезка станет меньше заданной точ-

ности: |b – a|<. В случае сложных уравнений вычисления приходится прово-

дить с использованием ЭВМ. На рис. 1.4 приведен текст про-

граммы MathCAD, реализующей метод дихотомии для решения

4 2 0 2

0

2

43.2

1

f1 x( )

f2 x( )

35 x

Page 9: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

9

уравнения f(x)=x2–x–1=0. Метод реализован в виде функции от

аргументов a, b (концы интервала изоляции) и точности метода

. Вызов этой функции при значениях a = –1, b = 0, = 0,01 дает

значение корня - 0,617, при этом невязка уравнения, которую

вычисляют, чтобы убедиться в правильности решения, равна

-1.89210-3

.

Рис.1.4. Метод деления отрезка пополам

1.2.2. Метод хорд

В этом методе кривая F(x) заменяется прямой линией — хор-

дой, стягивающей точки (a, F(a)) и (b, F(b)). В зависимости от

знака выражения F(a)F(a) метод хорд имеет два варианта, изо-

браженных на рис. 1.5а, б.

Пусть F(a)F(a)>0 (рис. 1.5а). Тогда x0=b, точка a будет оста-

ваться неподвижной. Следующее приближение x1 находим как

точку пересечения хорды, соединяющей точки (a, F(a)) и

(x0, F(x0)) с осью x. Уравнение хорды:

)()()(

)(0

0 axax

aFxFaFy

. Тогда точка пересечения хорды с

осью x: )()(

))((

0

01

aFxF

axaFax

.

Пусть теперь F(a)F(a)<0 (рис. 1.5б). Тогда x0=a, точка b не-

подвижна. Проведем хорду, соединяющую точки (b, F(b)) и

f x( ) x2

x 1

mdp a b

ca b( )

2

a c f a( ) f c( ) 0if

b c otherwise

b a while

c

mdp 1 0 0.01( ) 0.617 f mdp 1 0 0.01( )( ) 1.892 103

Page 10: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

10

(x0, F(x0)): )()()

)( 0

0

00 xx

xb

xFF(bxFy

. Вычисляем точку

пересечения хорды с осью x: )()(

))((

0

0001

xFbF

xbxFxx

.

На следующей итерации в качестве x0 надо взять вычислен-

ное значение x1. Окончание итерационного цикла в этом методе

происходит по условию малости невязки уравнения: |F(x1)| < .

yy=F(x)

x

x*

СШ

А:

учё

x1

x2a

x0=b

а

yy=F(x)

x

x*

СШ

А:

учё

x1 x2x0=a

b

б

Рис. 1.5. Метод хорд для F(a)F(a)>0 (а) и F(a)F(a)<0 (б)

1.2.3. Метод Ньютона (касательных)

Как и предыдущий, этот метод основан на замене исходного

нелинейного уравнения (1.1) линейным уравнением, которое

можно легко решить. Иллюстрация метода представлена на рис.

1.6. Пусть x0 – начальное приближение. Построим касательную

к функции y = F(x), проходящую через точку (x0, F(x0)). Найдем

пересечение касательной

))(()( 000 xxxFxFy с осью

x: )(

)(

0

001

xF

xFxx

. На следую-

щей итерации в качестве x0 на-

до взять вычисленное значение

x1. Окончание итерационного

цикла, как и в методе хорд, вы-

полняется по невязке уравне-

ния: |F(x1)|<.

yy=F(x)

x

x0x1x2x3

x*

Рис. 1.6. Метод Ньютона

Page 11: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

11

Как показывают практика и теоретические оценки, метод

Ньютона позволяет достаточно быстро получить решение. Не-

достатком метода является то, что для некоторых функций F(x)

при неудачном выборе начального приближения метод расходит-

ся. Ситуацию легко исправить, если выбрать x0 ближе к x*.

На рис. 1.7 показана реа-

лизация метода Ньютона в

пакете MathCAD. В данном

примере: x0 – начальное при-

ближение, – точность, i –

количество итераций. В каче-

стве критерия сходимости

использовано вычисление

невязки. Из примера видно,

что для достижения точности

0,001 потребовалось 4 итера-

ции.

Рис. 1.7. Метод Ньютона

1.2.4. Метод секущих

Метод используется, когда вычисление производной F(x) за-

нимает много времени, а также, если функция F(x) задана таб-

лично. Для этого метода необходимо задать два начальных при-

ближения: x0, x1, поэтому этот метод называется двухшаговым

(все рассмотренные выше методы были одношаговыми). Значе-

ние производной можно вычислить с помощью конечно-

разностного соотношения F(x1)01

01 )()(

xx

xFxF

(см. главу 5).

Подставляя это соотношение в формулу метода Ньютона, полу-

чим )()(

))((

01

01112

xFxF

xxxFxx

. На следующей итерации в качестве

приближений x0, x1 возьмем уже вычисленные значения x1, x2,

т.е. x0 = x1, x1 = x2, и будем вычислять новое приближение x2.

Окончание итерационного цикла производится по невязке урав-

нения: |F(x2)| <

Page 12: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

12

1.2.5. Метод простой итерации (МПИ)

Этот метод является обобщением всех описанных выше од-

ношаговых методов. Слово «простой» означает, что для вычис-

ления следующего приближения необходимо знать только одно

предыдущее приближение. С помощью эквивалентных преобра-

зований приведем исходное уравнение (1.1) к виду, удобному

для применения метода простой итерации: x=(x). Выберем на-

чальное приближение x0[a, b]. Следующие итерации находим

по формуле: xk+1=(xk). Итерационный процесс заканчивается,

если |(xk)–xk|<, или, что тоже самое, |xk+1–xk|<Иллюстрация

метода для (x)>0 и (x)<0 представлена на рис. 1.8а, б.

Способ сведения исходного уравнения к виду x=(x) очень

важен, поскольку от вида функции (x) зависит, будет ли итера-

ционный процесс сходиться или нет.

y

y=x

x

x* x0x1

x0)

y=(x)

x2

x1)

а

y=x

xx*

x0x1

y=(x)

x3 x2x4

бy

Рис. 1.8. Сходящийся метод простой итерации

Чтобы понять, каким условиям должна удовлетворять поро-

ждающая итерации функция (x), проведем некоторые теорети-

ческие оценки. Пусть xk – известное приближение, отличающее-

ся от искомого корня на величину погрешности |xk – x*|. Сле-

дующее приближение xk+1 будет отличаться от корня на величи-

ну |xk+1 – x*|=|(xk) – x*|=|(xk) – (x*)| = |()| |xk – x*|, где –

некоторая средняя точка отрезка (xk, x*). Здесь использована

теорема Лагранжа о конечном приращении, а также равенство

x*=(x*), которое справедливо, поскольку x* – корень. В схо-

дящихся методах каждое следующее приближение должно быть

ближе к корню, чем предыдущее, а это справедливо, если

Page 13: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

13

|()|q<1. Понятно, что чем меньше число q, тем быстрее схо-

дится итерационный процесс. Можно получить оценку:

|xk+1 – x*|<q|xk – x*|< q2|xk–1 – x*|< …< q

k|x0 – x*|.

Если удастся показать, что |xk+1 – x*| < q|xk – x*|, >1, то го-

ворят, что метод сходится с порядком Можно доказать, что необходимым условием сходимости

МПИ является |(x*)| < 1. Это условие трудно проверить, т.к.

корень неизвестен. Но можно проверить более сильное доста-

точное условие сходимости МПИ |(x)| < 1, где x – любая точка

некоторого отрезка [a, b], содержащего корень.

Проверим, выполняется ли необходимое условие метода

Ньютона, для которого )(

)()(

xF

xFxx

. Вычислим производ-

ную:

10

)*(

)*()*(

)*(

)*()*()*(1)*(

22

2

xF

xFxF

xF

xFxFxFx .

Следовательно, метод Ньютона всегда сходится в некоторой ок-

рестности корня x*. Можно показать, что |xk+1– x*|<q|xk – x*|,

т.е. =2: метод сходится со вторым порядком. Порядок сходи-

мости метода Чебышева еще выше (=3), для метода секущих

=1,67, а для метода дихотомии =1.

Если необходимое условие нарушается, то МПИ будет рас-

ходиться. Иллюстрации расходящихся итерационных методов

приведены на рис. 1.9а, б для (x)>0 и (x)<0, соответственно.

y

y=x

x

x0

x1

y=(x)

x2

а

x*

y=x

xx*

x0

x1

y=(x)

x3x2

x4

бy

Рис. 1.9. Расходящийся метод простой итерации

Page 14: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

14

1.2.6. Метод релаксации

Метод релаксации – это универсальный вариант МПИ, в ко-

тором (x) = x – F(x). Параметр релаксации 0 подберем та-

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

сти метода: (x)<1 для всех x[a, b]: (x)=|1–F(x)| < 1,

или –2<F(x)<0. Таким образом, при F(x)>0, x[a, b], услови-

ем сходимости будет –2/F(x)< < 0. При F(x)<0 параметр надо

выбирать из условия –2/F(x)> >0. Ясно, что при малых МПИ

будет сходиться медленно, т.к. расстояние между соседними

итерациями |xk+1–xk| = |||F(x)| мало. Можно ли выбрать такое

значение параметра, при котором скорость сходимости будет

максимальной? Несложный анализ показывает, что оптималь-

ным значением будет = 2/(M+m), где ),( max],[

xFMbax

),( ],[

min xFbax

m

а скорость сходимости в этом случае будет

определяться константой mM

mMq

.

1.3. Стандартные функции MathCAD

Для решения уравнения (1.1) в MathCAD служит функция

root, реализующая описанный выше метод секущих. Если

F(x) — это полином, то вычислить все его корни можно также с

помощью функции polyroots.

Встроенная функция root в зависимости от типа задачи мо-

жет иметь либо два аргумента: root (f(x), x)), либо четы-

ре аргумента: root (f(x), x, a, b). Здесь f(x) – скаляр-

ная функция, определяющая уравнение (1.1); x – скалярная пе-

ременная, относительно которой решается уравнение; a, b –

границы интервала, внутри которого происходит поиск корня.

Первый тип функции root требует дополнительного зада-

ния начального значения переменной x. Для этого нужно просто

предварительно присвоить x некоторое число. Поиск корня бу-

дет производиться вблизи этого числа. Таким образом, присвое-

Page 15: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

15

ние начального значения требует априорной информации о

примерной локализации корня.

Рассмотрим решение уравнения sin(x) = 0, которое имеет

бесконечное количество корней xN = N (N = 0, 1, 2, ...). Для

поиска корня средствами MathCAD требуется его предвари-

тельная локализация путем задания начального приближения,

например, x = 0.5. MathCAD находит с заданной точностью

только один корень x0 = 0, лежащий наиболее близко к заданно-

му начальному приближению. Если задать другое начальное

значение, например, x = 3, то решением будет другой корень

уравнения x1 = и т.д.

На рис. 1.10 приведен пример вызова стандартной функции

root с двумя аргументами для нахождения корней уравнения

sin(x) = 0, график функции f(x) = sin(x) и положение найденного

корня.

x 0.5

f x( ) sin x( )

s root f x( ) x( )

s 6.2 107

Рис.1.10. Использование стандартной функции root

для решения нелинейного уравнения sin(x) = 0

Если уравнение неразрешимо, то при попытке найти его ко-

рень будет выдано сообщение об ошибке. Кроме того, к ошибке

или выдаче неправильного корня может привести и попытка

применить метод секущих в области локального минимума или

максимума f(x). В этом случае секущая может иметь направле-

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

приближения далеко от предполагаемого положения корня. Для

решения таких уравнений лучше применять встроенную функ-

цию Minerr. Аналогичные проблемы могут возникнуть, если

начальное приближение выбрано слишком далеко от настояще-

го решения, или f(x) имеет особенности типа бесконечности.

1 0 11

0

11

1

sin x( )

1.21 x

Page 16: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

16

Иногда удобнее задавать не начальное приближение к корню,

а интервал [a, b], внутри которого корень заведомо находится. В

этом случае следует использовать функцию root с четырьмя

аргументами, а присваивать начальное значение x не нужно.

Поиск корня осуществляется в промежутке между a и b.

При этом явный вид функ-

ции f(x) может быть определен

непосредственно в теле функ-

ции root. На рис. 1.11 приве-

ден листинг программы с ис-

пользованием этого варианта

функции root.

Когда функция root имеет четыре аргумента, следует пом-

нить о двух ее особенностях:

- внутри интервала [a, b] не должно находиться более одного

корня, иначе будет найден один из них, заранее неизвестно, ка-

кой именно;

- значения f(a) и f(b) должны иметь разный знак, иначе будет

выдано сообщение об ошибке.

Если уравнение не имеет действительных корней, но имеет

мнимые, то их также можно найти. Ниже приведен пример, в

котором уравнение x2 + 1 = 0, имеющее два чисто мнимых кор-

ня, решается два раза с разными начальными значениями.

Для решения этого уравнения вто-

рой вид функции root (с четырьмя

аргументами) неприменим, поскольку

f(x) является положительно-

определенной, и указать интервал, на

границах которого она имела бы раз-

ный знак, невозможно.

Отметим, что f(x) может быть

функцией не одного, а любого количе-

ства аргументов.

Рис. 1.12. Поиск

мнимого корня

x 0.5

root x2

1 x i

x 0.5

root x2

1 x i

Рис. 1.11. Поиск корня ал-

гебраического уравнения в

заданном интервале

x root sin x( ) x 1 1( )

x 0 sin x( ) 0

Page 17: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

17

Эта возможность проиллюстрирована на рис. 1.13 на примере

функции двух переменных

f(x, y) = x2 – y

2 + 3. В самой

функции root необходимо оп-

ределить, относительно какого

из аргументов следует решить

уравнение. Затем уравнение f(x,

0) = 0 решается относительно

переменной x, а потом – другое

уравнение f(1, y) = 0 относи-

тельно переменной y.

При численном решении

уравнений относительно одной

из переменных необходимо

предварительно определить значения остальных переменных.

Иначе попытка вычислить уравнения приведет к появлению

ошибки “This variable or function is not defined above”, в дан-

ном случае говорящей о том, что другая переменная ранее не

определена. Конечно, можно указать значение других перемен-

ных непосредственно внутри функции root.

Если функция f(x) является полиномом, то все его корни

можно определить, используя встроенную функцию

polyroots(v), где v – вектор, составленный из коэффици-

ентов полинома. Поскольку полином N-й степени имеет ровно N

корней (некоторые из них могут быть кратными), вектор v дол-

жен состоять из N+1

элемента. Результа-

том действия функ-

ции polyroots яв-

ляется вектор, со-

ставленный из N

корней рассматри-

ваемого полинома.

На рис. 1.14 рассмот-

рен пример решения

уравнения f(x)=(x – 13) (x - 1)3 = x

4–6x

3+12x

2–10x+3=0.

f x y( ) x2

y2

3

x 1

y 0

root f x y( ) x( ) 1.732i

root f x y( ) y( ) 2

Рис. 1.13. Поиск корня

уравнения, заданного функ-

цией двух переменных

v 3 10 12 6 1( )T

polyrootsv( )

0.992

1.004 7.177i 103

1.004 7.177i 103

3

Рис. 1.14. Поиск корня полинома

Page 18: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

18

Коэффициенты полинома записаны в виде вектора в первой

строке примера. Первым в векторе должен идти свободный член

полинома, вторым – коэффициент при x1 и т.д. Последним, N+1

элементом вектора должен быть коэффициент при старшей сте-

пени xN. Во второй строке показано действие функции

polyroots. При этом численный метод вместо двух действи-

тельных единичных корней дает одинаковые мнимые числа.

Однако малая мнимая часть этих корней находится в пределах

погрешности, определяемой константой TOL , и не должна вво-

дить пользователей в заблуждение. Необходимо помнить, что

корни полинома могут быть комплексными, и ошибка вычисле-

ний может сказываться как на действительной, так и на ком-

плексной части искомого корня.

В следующем примере, представленном на рис. 1.15, показа-

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

f(x)=6 - 7x + x3 с понижением порядка полинома.

В этом примере используется вариант функции root с двумя

аргументами. Приведенный на рисунке график функции f(x) по-

казывает, что уравнение имеет три действительных корня. Зада-

вая начальное приближение z = –2, находим один из корней по-

линома: x1 = –3. Затем исходный полином делится на (z – x1), и

отыскивается второй корень x2 = 1. Далее функция root еще

раз вызывается для нахождения корня полинома первого поряд-

ка, получаемого делением исходного полинома на (z – x1) и

(z – x2). Для каждого из найденных корней производится про-

верка – вычисляется невязка уравнения.

Page 19: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

19

2 0 210

0

10

f y( )

y

Рис. 1.15. Поиск корня полинома с понижением порядка

f x3 1.904 10

4

x3

2x3

rootf z( )

z x1

z x2

z

z 3

f x2 6.078 10

4x

21

x2

rootf z( )

z x1

z

z 0.5

f x1 2.463 10

5x

13x

1root f z( ) z( )z 2

f y( ) a1

a2

y a3

y2

a4

y3

a4

1a3

0a2

7a1

6

Page 20: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

20

Глава 2. Численные методы линейной алгебры

Задачи линейной алгебры, успешно решаемые с помощью

инструментов MаthCAD, можно условно разделить на следую-

щие группы:

простейшие матричные операции (транспонирование, сло-

жение, умножение на константу, перемножение матриц),

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

виям над элементами матриц;

вычисление определителей матриц, нахождение обратных

матриц;

решение систем линейных алгебраических уравнений

(СЛАУ);

вычисление собственных значений и собственных векторов.

2.1. Матрицы и простейшие операции над ними

Вещественной матрицей размерности mn назовем таблицу

из m строк и n столбцов, составленную из вещественных чисел:

njmiij

mnmm

n

n

x

xxx

xxx

xxx

X ,...,1,...,1

21

22221

11211

}{

. (2.1)

Пусть njmiij

njmiij bBaA ,...,1

,...,1,...,1,...,1 }{,}{

– матрицы одинаковой

размерности. Для них можно определить операцию сложения:

njmibaccCBAC ijijijnjmiij ..., ,1,..., ,1,,}{, ,...,1

,...,1 ,

умножения на числовую константу:

njmiaccCAC ijijnjmiij ..., ,1,..., ,1,,}{, ,...,1

,...,1 .

Операцию умножения матриц можно определить для матриц

,}{,}{ ,...,1,...,1

,...,1,...,1

ljniij

njmiij bBaA

тогда

kj

n

kikij

ljmiij baccCBAC

1

,...,1,...,1 ,}{ , . (2.2)

Транспонирование - это операция, переводящая матрицу

размера mn в матрицу размера nm. При этом строки исходной

Page 21: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

21

матрицы становятся столбцами транспонированной и наоборот.

Транспонированную матрицу обычно обозначают A. Элементы

транспортированной матрицы A связаны с элементами исход-

ной матрицы A простым соотношением: aij = aji.

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

A + B = B + A

(A + B) + C = A + (B + C)

(AB) C = A (B C)

существование нулевой матрицы O: A + O = A

существование обратной по отношению к операции сло-

жения матрицы –A, такой, что A + ( –A ) = O

существование единичной матрицы I, AI = IA = A,

1...00

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

0...10

0...01

I

AB BA (нет коммутативности операции умножения)

Нормой матрицы A называется скалярная величина, удовле-

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

1) 0A , и если ,0A то A - нулевая матрица

2) AA вещественного

3) BABA для любых матриц A, B.

В какой-то степени норму A можно образно представлять как

величину, характеризующую все элементы матрицы. В качестве

нормы матрицы используют различные величины, например:

n

iij

jaA

1

max . Возможны и другие определения нормы [1].

2.2. Определитель, ранг, обратная матрица

Рассмотрим несколько важных операций линейной алгебры,

которые также реализованы в MathCAD в виде стандартных

функций. Однако их применение требует гораздо большего

Page 22: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

22

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

щем параграфе.

Определителем (детерминантом) квадратной матрицы A по-

рядка n называется многочлен порядка n, в котором каждое сла-

гаемое содержит по одному элементу из каждой строки и по од-

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

суммируются с учетом индексов элементов, входящих в сомно-

житель. Суммирование идет по всем возможным перестановкам

порядка n, поэтому число слагаемых в ряде равно n!.

Определители первого, второго и третьего порядков вычисля-

ются по простым формулам:

322311331221132231

1332213123123322113

122122112

111

aaaaaaaaaaaaaaaaaa

aaaaa

. (2.3)

Определитель порядка n вычисляется по формуле

nN

n n

n

n aaa

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

1),...,,(

2

21

1

21 , (2.4)

где n ,...,, 21 - перестановки чисел от 1 до n, ),...,2,1( nN -

число инверсий в перестановке.

Понятие определителя играет важную роль в вычислении

ранга матрицы и обратной матрицы. Рангом матрицы называет-

ся наибольшее натуральное число k, для которого существует

отличный от нуля определитель k-ого порядка подматрицы, со-

ставленной из любого пересечения k строк и k столбцов исход-

ной матрицы. Если ранг квадратной матрицы A порядка n сов-

падает с ее порядком, т.е. 0n то матрица называется невы-

рожденной, и для нее можно определить так называемую об-

ратную матрицу A-1

, обладающую следующим свойством:

IAAAA 11 , где I – единичная матрица.

2.3. Операции с матрицами в MathCAD

Описанные выше операции реализованы в MathCAD в виде

операторов, запись которых максимально приближена к матема-

тическим выражениям. При этом для матричных операций за-

Page 23: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

23

частую используются те же знаки математических операций, что

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

выше формулам.

Заметим, что векторы являются частным случаем матриц

размерности N1 (вектор-столбец). Кроме стандартных матрич-

ных операций к векторам можно применять ряд специфических

операций (модуль вектора, скалярное и векторное произведение

и др.). Для того чтобы аналогичные дей-

ствия выполнить с вектор - строкой, т.е.

матрицей размерности 1 N, ее нужно

сначала транспонировать. Для работы с матрицами и векторами

предназначена панель инструментов Ma-

trix (Матрица), показанная на рис. 2.1. В

таблице 2.1. приведен список операций и

функций с матрицами и векторами, а на

рис. 2.2 и 2.3. – некоторые примеры их

использования.

Таблица 2.1. Операции с матрицами и векторами

Название

операции

Вызов/обозначение

в MathCAD

Горячие

клавиши

Создание мат-

риц

Меню: Insert – Matrix

Панель инструментов:

<Ctrl>+<M>

Обращение к

элементу мат-

рицы

Панель инструментов: < [ >

Выделение

столбца Панель инструментов: <Ctrl>+<6>

Создание еди-

ничной матри-

цы

Identity(N), N - размер-

ность матрицы

-

Создание матри-

цы из вектора Diag(V), V – вектор главной

диагонали

-

Создание матриц

на основе функ-

Matrix(M,N,f),

M, N – размерность матрицы,

-

Рис. 2.1. Панель

инструментов

«Матрица»

Page 24: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

24

ции f (i,j) – функция, задаю-

щая элемент матрицы

Размерность

матрицы A / вектора v

rows(A) – число строк A

cols(A) -число столбцов A

length(v) – число элемен-

тов вектора

last(v) - индекс последнего

элемента вектора

-

Выделение под-

матрицы из мат-

рицы A

Submatrix(A,ir,jr,ic,jc) -

часть матрицы между строка-

ми ir,jr и столбцами ic,jc

-

Слияние матриц augment(A,B,C,...) - новая

матрица формируется слияни-

ем матриц аргументов слева –

направо;

stack(A,B,C,...) - новая

матрица формируется слияни-

ем матриц аргументов cверху -

вниз

-

Ранг матрицы rank(A) -

Определитель

матрицы Панель инструментов: <Shift>+<\>

Обратная матри-

ца Панель инструментов:

Умножение мат-

риц A, B

A*B

Транспонирова-

ние матрицы Панель инструментов: <Ctrl>+<1>

Норма матрицы

A

norm1(A), norm2(A),

norme(A), normi(A)

-

Page 25: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

25

Рис. 2.2. Фрагменты рабочего листа MathCAD, представляющие

создание матрицы (а), сложение матриц (б), произведение мат-

риц (в), нахождение определителя и

обратной матрицы (г)

Рис. 2.3. Фрагмент рабочего листа MathCAD, представляющий

умножение матриц несоответствующих

размерностей

а

б в

г

Page 26: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

26

2.4. Системы линейных алгебраических уравнений

Пусть задана система линейных алгебраических уравнений

(СЛАУ) размерности m, которую можно записать в скалярном:

mmmmmm

mm

mm

fxaxaxa

fxaxaxafxaxaxa

... ...

... ...

2211

22222121

11212111

(2.5)

векторном:

m

m

mm

m

m

mm f

f

f

x

a

a

a

x

a

a

a

x

a

a

a

...... ...

......2

1

2

1

2

2

22

12

1

1

21

11

(2.5)

или матричном виде:

fxA

, (2.5)

где

mmmm

m

m

aaa

aaa

aaa

A

...

...

...

21

22221

11211

,

m

m

f

f

f

f

f

1

2

1

...

,

m

m

x

x

x

x

1

2

1

...x

.

Здесь A – матрица системы, f

– вектор правых частей, x

– век-

тор неизвестных. Назовем расширенной матрицей системы мат-

рицу A , дополненную столбцом вектора правых частей:

mmmm

m

m

faa

faa

faa

A

...

...

...

...

1

2221

1111

.

Система имеет решение, если det A 0. По определению реше-

ния, подставив вектор x

в СЛАУ, получим m тождественных

уравнений. Эффективность способов решения системы (2.5) во многом

зависит от структуры и свойств матрицы A: размерности, обу-

словленности, симметричности, заполненности (т.е. соотноше-

ния между числом ненулевых и нулевых элементов) и др.

Page 27: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

27

Все методы решения СЛАУ можно разбить на два класса:

прямые (точные) и итерационные (приближенные).

Прямые методы позволяют получить решение за конечное

число арифметических операций. Если операции реализуются

точно, то и решение будет точным (поэтому класс прямых мето-

дов еще называют точными методами). В итерационных мето-

дах решением является предел некоторой бесконечной последо-

вательности единообразных действий.

2.5. Точные методы решения СЛАУ

При небольшой размерности системы m можно использовать

формулы Крамера, которые позволяют находить неизвестные в

виде дробей, знаменателем которых является определитель мат-

рицы системы, а числителем – определители матриц Ai, полу-

ченных из A заменой столбца коэффициентов при вычисляемом

неизвестном столбцом вектора правых частей:

A

Ax i

idet

det (i = 1, 2, …, m).

Размерность системы (т.е. число m) является главным факто-

ром, из-за которого формулы Крамера не могут быть исполь-

зованы для численного решения СЛАУ большого порядка. При

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

m неизвестными требует порядка m!m арифметических опера-

ций. Таким образом, для решения системы, например, из

m = 100 уравнений потребуется совершить 10158

операций, что

не под силу даже самым мощным современным ЭВМ.

Для решения небольших систем используют метод обратной

матрицы. Если det A 0, то существует обратная матрица

A–1

. По определению обратной матрицы: A A–1

= A–1

A = I, где I –

единичная матрица. Если обратная матрица известна, то, умно-

жая на нее СЛАУ слева, получим:

., , 1111 fAx fAxI fAxAA

Следовательно, решение СЛАУ свелось к умножению известной

обратной матрицы на вектор правых частей. Таким образом, за-

дача решения СЛАУ и задача нахождения обратной матрицы

Page 28: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

28

связаны между собой, поэтому часто решение СЛАУ называют

задачей обращения матрицы. Проблемы применения этого ме-

тода те же, что и при использовании метода Крамера: нахожде-

ние обратной матрицы – трудоемкая операция.

Наиболее популярным точным способом решения линейных

систем вида (2.5) является метод Гаусса, или последовательного

исключения неизвестных. Метод состоит из двух этапов: прямо-

го и обратного. На первом этапе исходная система с помощью

эквивалентных преобразований сводится к системе с треуголь-

ной матрицей, на втором этапе решается система с треугольной

матрицей. Эквивалентными преобразованиями будут следую-

щие преобразования расширенной матрицы А:

перестановка строк;

умножение строк на ненулевую константу;

сложение строк.

Используя эти преобразования, перепишем исходную систему

так, чтобы один из коэффициентов столбца был равен 1, а все

коэффициенты, стоящие ниже, были равны 0.

Пусть в исходной системе уравнений

)0()0(2

)0(21

)0(1

)0(2

)0(22

)0(221

)0(21

)0(1

)0(12

)0(121

)0(11

...

......

...

mmmmmm

mm

mm

fxaxaxa

fxaxaxa

fxaxaxa

первый элемент 0)0(11 a . Назовем его ведущим элементом пер-

вой строки. Поделим все элементы этой строки на )0(11a и исклю-

чим x1 из всех последующих строк, начиная со второй, путем

вычитания первой (преобразованной), умноженной на коэффи-

циент при 1x в соответствующей строке. Получим

)1()1(3

)1(32

)1(2

)1(2

)1(23

)1(232

)1(22

)1(1

)1(13

)1(132

)1(121

...

......

...

mmmmmm

mm

mm

fxaxaxa

fxaxaxa

fxaxaxax

Page 29: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

29

Если 0)1(22 a , то, продолжая аналогичное исключение, при-

ходим к системе уравнений с верхней треугольной матрицей

)(

)3(3

)3(33

)2(2

)2(23

)2(232

)1(1

)1(13

)1(132

)1(121

...

...

...

mmm

mm

mm

mm

fx

fxax

fxaxax

fxaxaxax

Из нее в обратном порядке находим все значения xi:

mm

mm

mmm

mm

mmm

xaxaxafx

xafx

fx

)1(13

)1(132

)1(12

)1(11

)1(1

)1(11

)(

...

Процесс приведения к системе с треугольной матрицей назы-

вается прямым ходом, а нахождения неизвестных – обратным. В

случае если один из ведущих элементов равен нулю, изложен-

ный алгоритм метода Гаусса неприменим. Кроме того, если ка-

кие-либо ведущие элементы малы, то это приводит к увеличе-

нию ошибок округления и ухудшению точности счета. Поэтому

обычно используется другой вариант метода Гаусса – схема Га-

усса с выбором главного элемента. Путем перестановки строк, а

также столбцов с соответствующей перенумерацией коэффици-

ентов и неизвестных, добиваются выполнения условия: )0()0(

ijii aa , i, j = 1, 2, …, m,

т.е. осуществляется выбор первого главного элемента. Разделив

первую строку на главный элемент, как и прежде, исключают x1

из остальных уравнений. Затем для оставшихся столбцов и

строк выбирают второй главный элемент и т.д.

Метод Гаусса – Жордано использует аналогичный прием с

исключением элементов в столбцах матрицы таким образом,

чтобы перевести исходную систему fxA

к fxA

, где A –

диагональная матрица. Этот метод можно использовать для на-

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

надо включить единичную матрицу. Преобразования строк,

Page 30: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

30

приводящие исходную матрицу к диагональному виду, будут

переводить единичную матрицу в обратную, а вектор правых

частей – в решение СЛАУ.

Пример 2.1. Решить СЛАУ

6

32

2

321

321

321

xxx

xxx

xxx

методом Гаусса – Жордано и найти обратную матрицу. Записы-

ваем расширенную матрицу и с помощью эквивалентных преоб-

разований переводим матрицу системы в единичную:

A I f

1 1 – 1 1 0 0 2

– 2 1 1 0 1 0 3

1 1 1 0 0 1 6

Прибавляем ко второй строке первую, умноженную на 2, а из

третьей вычитаем первую:

1 1 – 1 1 0 0 2

0 3 – 1 2 1 0 7

0 0 2 – 1 0 1 4

Делим вторую строку на 3 и вычитаем ее из первой:

1 0 31

31

31

0 31

0 1 31

32

31

0 37

0 0 2 – 1 0 1 4

Делим последнюю строку на 2 и прибавляем ее с коэффици-

ентом 31 к первой строке и с коэффициентом 3

1 – ко второй:

1 0 0 0 31

31

1

0 1 0 21

31

61

3

0 0 1 21

0 21

2

Page 31: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

31

I 1A x

Выполняя проверку fxAIAA ,1 , убеждаемся, что ре-

шение найдено правильно.

Часто возникает необходимость в решении СЛАУ, матрицы

которых являются слабо заполненными, т.е. содержат много ну-

левых элементов. В то же время эти матрицы имеют определен-

ную структуру. Среди таких систем выделим системы с матри-

цами ленточной структуры, в которых ненулевые элементы рас-

полагаются на главной диагонали и на нескольких побочных

диагоналях. Для решения систем с ленточными матрицами ко-

эффициентов вместо метода Гаусса можно использовать более

эффективные методы, например, метод прогонки.

Рассмотрим наиболее простой случай: систему с трехдиаго-

нальной матрицей коэффициентов, к которой сводится решение

ряда численных задач (сплайн-интерполяция таблично заданной

функции, дискретизация краевых задач для дифференциальных

уравнений методами конечных разностей и др.). В этом случае

СЛАУ имеет вид:

)8.2(

)7.2(1,...,3,2,

)6.2(

1

11

12111

mmmmm

iiiiiii

fxcxa

mifxbxcxa

fxbxc

Матрица системы (2.6) –

(2.8) имеет трехдиагональную структу-

ру, что хорошо видно из следующего эквивалентного векторно-

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

m

m

m

m

mm

mmm f

f

f

f

f

x

x

x

x

x

ca

bca

bca

bca

bca

bc

1

3

2

1

1

3

2

1

111

444

333

222

11

00000

0000.........000

0000

0000

00000

.

Если при этом выполняется условие iii abc , то говорят,

что матрица данной системы имеет диагональное преобладание.

Page 32: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

32

Предположим, что существуют такие наборы чисел αi и βi,

i = 2, 3, …, m, при которых

111 iiii xx . (2.9)

Записав уравнение (1.6) в виде (2.9):

1

12

1

11

c

fx

c

bx ,

получим формулы для определения α2, β2:

1

12

c

b ,

1

12

c

f . (2.10)

Уменьшим в (2.9) индекс на единицу: iiii xx 1 , и под-

ставим полученное выражение в (2.7):

iiiiiiiiii fxbxcaxa 1 ,

откуда

iii

iiii

iii

ii

ac

fax

ac

bx

1 .

Данное равенство совпадает с (2.9), если при всех

i = 1, 2, …, m – 1 выполняются рекуррентные соотношения

iii

ii

ac

b

1 ,

iii

iiii

ac

fa

1 . (2.11)

Они позволяют получить все остальные коэффициенты αi, βi.

При i = m – 1 из (2.9) получим mmmm xx 1 . Подставляя

это выражение в (2.8) и разрешая полученное выражение отно-

сительно xm, записываем:

mmm

mmmm

ac

fax

, (2.12)

где αm и βm известны. Далее по формулам (2.9) последовательно

находятся xm–1, xm–2, …, x1.

Для успешного применения метода прогонки нужно, чтобы в

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

нуль, а при больших размерностях систем не должно быть бы-

строго роста погрешностей округления.

Page 33: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

33

Будем называть прогонку корректной, если знаменатели про-

гоночных коэффициентов в формуле (2.11) не обращаются в

нуль, и устойчивой, если |αi| < 1 при i = 1, 2, 3, …, m.

Теорема. Пусть коэффициенты ai, bi уравнения (2.7) отлич-

ны от нуля и пусть iii abc при i = 1, 2, 3, …, m. Тогда

прогонка корректна и устойчива.

Условия этой теоремы, которые во многих приложениях вы-

полняются автоматически, являются достаточными условиями

корректности и устойчивости прогонки. Если эти условия не

выполняются, то можно организовать выбор главного элемента

аналогично схеме Гаусса.

2.6. Итерационные методы решения СЛАУ

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

(2.5). Итерационные методы, или методы последовательных

приближений, дают возможность построить последовательность

векторов

,, ,,, )()2()1()0( kxxxx , пределом которой должно

быть точное решение )(*lim

k

k

xx

.

На практике построение последовательности обрывается, как

только достигается желаемая точность. Чаще всего для доста-

точно малого значения 0 контролируется выполнение оцен-

ки )(* kxx

.

Метод последовательных приближений может быть построен

по следующей схеме. Эквивалентными преобразованиями при-

ведем систему (2.5) к виду

dxCx

, (2.13)

где x

– тот же самый вектор, а C и d

– некоторые новые мат-

рица и вектор соответственно.

При решении методом последовательных приближений не-

обходимо выбрать начальное (нулевое) приближение. За нуле-

вое приближение можно принять столбцы правых частей f

, d

Page 34: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

34

системы (2.13) или нулевой вектор. Следующее приближение 1x

определяется рекуррентным равенством

dxCx

01.

Далее находим 2x

:

dxCx

12,

и т.д. Для k-й итерации получаем ...,2,1,0,1 kdxCx kk

(2.14)

Такой итерационный процесс будем называть одношаговым

итерационным методом.

Изучим вопрос о сходимости итерационного процесса, т.е.

определим, какие нужно предъявить требования к виду матрицы

C , чтобы последовательность kx

при k имела пределом

*x

, т.е. была решением системы (2.13), эквивалентной исходной

системе (2.5): *lim xx k

k

.

Достаточным условием сходимости итерационного мето-

да (2.13) к решению системы (2.5) при любом начальном векто-

ре 0x

является требование 1C , где C – норма матрицы С.

В общем виде одношаговый итерационный метод можно за-

писать в так называемой канонической форме:

fxAxx

B k

k

kkk

)(

)1(

)()1()1(

.

Здесь )1( kB – матрица, задающая итерационный метод,

1k –

итерационный параметр. Если EB k )1( (где E – единичная

матрица), то метод называют явным, а в противном случае –

неявным. Если матрица )1( kB и итерационный параметр

)1( k

не зависят от номера итерации ( )1()1( , kk BB ), то метод

называют стационарным, и нестационарным – в противном

случае.

Использование неявных методов сопровождается обращени-

ем матрицы 1kB , поэтому для сохранения эффективности алго-

Page 35: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

35

ритма эта матрица должна быть легко обратима (например, 1kB – диагональная, треугольная, трехдиагональная или орто-

гональная).

Приведем некоторые примеры. Для этого представим мат-

рицу A в виде 21 ADAA , где D – диагональная матрица,

1A – левая треугольная, 2A – правая треугольная. 1A и 2A име-

ют нулевую главную диагональ. Ненулевые элементы всех трех

матриц совпадают с соответствующими элементами матрицы A.

Метод релаксации (простой итерации). Здесь EB k )1( , а

)1(k.

Итерационный метод Ричардсона. Здесь EB k )1( , а )1( k –

переменный параметр.

Метод Якоби. DB k )1( , а 1)1( k .

Метод верхней релаксации. 1)1( ADB k , 1k

,

20 , где – заданный числовой параметр. Для 1

как частный случай получается метод Гаусса –Зейделя. Для

симметричных положительно определенных матриц A усло-

вие 20 является условием сходимости метода.

Для некоторых из вышеназванных методов рассмотрим более

детально способы получения матрицы C .

Предположим, что диагональные элементы матрицы A ис-

ходной системы (2.5) не равны 0 (aii 0, i = 1, 2, …, m). Разре-

шим первое уравнение системы (2.5) относительно x1, второе

относительно x2 и т.д. Получим следующую эквивалентную сис-

тему, записанную в скалярном виде:

nnnnnnn

nn

nn

dxCxCxCx

dxCxCxCxdxCxCxCx

11,2211

223231212

113132121

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

......

,

что совпадает с формулой (2.13), в которой матрица C и век-

тор d

определены по следующим формулам:

Page 36: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

36

....,,2,1,,

,0

,ni

a

fd

ji

jia

a

Cii

iiii

ij

ij

(2.15)

Метод, основанный на таком приведении системы (2.5) к ви-

ду (2.13), называют методом Якоби. Теперь, задав нулевое при-

ближение, по рекуррентным соотношениям (2.14) можем вы-

полнять итерационный процесс.

Условие сходимости 1C в методе Якоби равносильно ус-

ловию диагонального преобладания для исходной матрицы A:

....,,2,1,1

miaam

jij

ijii

Действительно, пусть для матрицы А выполняется условие

диагонального преобладания. Разделим обе части данного нера-

венства на iia , получим неравенство

....,,2,1,11

mia

am

jij ii

ij

С учетом (2.15) можно перейти к следующему неравенству:

....,,2,1,11

miCm

jij

То есть сумма элементов любой строки матрицы C меньше 1.

Выполнение такого условия равносильно выполнению условия

сходимости метода 1max1

1

m

jij

miCC .

Под методом Гаусса – Зейделя обычно понимается такое ви-

доизменение одношагового итерационного метода (2.15) реше-

ния СЛАУ, в котором для подсчета i-й компоненты (k + 1)-го

приближения 1k

ix к искомому вектору *x

используются уже

вычисленные на этом, т.е. (k + 1)-м шаге, значения первых i – 1

компонент 1

1

k

ix . Это означает, что если система (2.5) тем или

иным способом сведена (например, с помощью метода Якоби) к

Page 37: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

37

системе (2.13) с матрицей коэффициентов С и вектором свобод-

ных членов ,d

то ее приближение к решению по методу Зейде-

ля определяется системой равенств

3,

1

11,

1

22

1

11

1

22323222

1

121

1

2

11313212111

1

1

...

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

...

dxCxCxCxCx

dxCxCxCxCx

dxCxCxCxCx

k

mmm

k

mmm

k

m

k

m

k

m

k

mm

kkkk

k

mm

kkkk

.

С точки зрения компьютерной реализации одношагового

итерационного метода использование метода Гаусса – Зейделя

означает, что элементы массива x

будут постепенно замещать-

ся новыми элементами. В связи с такой интерпретацией метод

Гаусса – Зейделя иногда называют методом последовательных

смещений.

Иногда исходную систему (2.5) не удается привести к ви-

ду (2.13), выполнив при этом условие сходимости метода.

В этом случае можно воспользоваться методом релаксации.

Этот метод основывается на соотношении

fkxAkxkx

1,

откуда fxAxx kkk

1 , где τ – итерационный пара-

метр. Скалярные формулы метода релаксации имеют следую-

щий вид: n

k

nnn

k

n

k

n

kk

n

k

nn

kkkk

k

nn

kkkk

fxaxaxaxx

fxaxaxaxx

fxaxaxaxx

...

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

...

22111

1

222221212

1

2

112121111

1

1

. (2.16)

Раскрыв скобки, можно привести (1.16) к виду (1.14), где коэф-

фициенты матрицы C и вектор свободных членов d

будут

иметь вид: ....,,2,1,,,

,1nifd

jia

jiaC ii

ij

ijij

Подбором

параметра τ можно добиться сходимости метода релаксации.

При использовании итерационных методов мы можем найти

решение исходной СЛАУ (2.5) лишь приближенно с заданной

Page 38: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

38

точностью. Поэтому важной проблемой является вопрос о спо-

собе остановки итерационного процесса при достижении точно-

сти. Наиболее простой способ – это сравнение между собой со-

ответствующих неизвестных с двух соседних итераций: (k + 1) и

(k). Если максимальная из всех разностей становится меньше за-

данной точности , то итерационный процесс останавливается:

1

1max k

iki

mixx .

2.7. Решение СЛАУ в пакете MathCAD

Описанные выше алгоритмы решения СЛАУ реализованы в

MathCAD в виде функции lsolve, основанной на прямом ме-

тоде Гаусса, и в виде вычислительного блока Given/Find, в

основе которого лежит итерационный алгоритм.

Для применения функции lsolve система должна быть за-

писана в матричном виде (2.5). Пример использования функции

lsolve показан на рис. 2.4.

Использование блока Given/Find может быть связано как

со скалярной, так и с матричной формой записи СЛАУ. Как уже

было отмечено, данный метод основан на итерационной схеме

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

своены начальные значения. В случае если СЛАУ имеет единст-

венное решение, выбор начального приближения не влияет на

решение. После этого необходимо привести ключевое слово

Given (Дано) и записать СЛАУ в виде логического выраже-

ния, т.е. с использованием знака логического равенства <=>, ко-

торый можно найти на панели инструментов Boolean (Логиче-

ская). Затем вызвать встроенную функцию Find, аргументами

которой являются искомые величины. На рис. 2.5 показано ре-

шение СЛАУ, записанной в матричной форме, с помощью вы-

числительного блока Given/Find.

Используя матричные функции, описанные выше, СЛАУ не-

большой размерности можно решать с помощью метода обрат-

ной матрицы и метода Крамера. Соответствующие примеры по-

казаны на рис. 2.6 и 2.7.

Page 39: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

39

Рис. 2.4. Решение СЛАУ с помощью функции lsolve

Рис. 2.5. Решение СЛАУ с помощью блока Given/Find

Рис. 2.6. Решение СЛАУ методом обратной матрицы

Рис. 2.7. Решение СЛАУ методом Крамера

Page 40: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

40

В некоторых случаях для решения СЛАУ можно использо-

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

мые или итерационные методы решения СЛАУ. Ниже показаны

фрагменты рабочих листов MathCAD, на которых приведены

примеры решения СЛАУ с трехдиагональной матрицей методом

прогонки (рис. 2.8) и итерационным методом Якоби (рис. 2.9).

Для того чтобы использовать формулы (2.9) – (2.12), в програм-

ме установлено начальное значение индекса матричных пере-

менных ORIGIN =1 (по умолчанию, значение ORIGIN =0).

Рис. 2.8. Решение СЛАУ методом прогонки

Page 41: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

41

.

4

5

10

,

1023

153

248

bA

0

3

5

3

10

1

2

0

1

5

1

4

1

5

0

10

8

1

4

10

yakobi err 100

x

x1 x

err x1 x

x x1

err while

x

yakobi 0.001( )

Рис. 2.9. Решение СЛАУ итерационным методом Якоби

2.8. Собственные значения и собственные векторы

Пусть A – матрица размерности nn. Числовая константа

называется собственным значением, а ненулевой вектор x – со-

ответствующим собственным вектором матрицы А, если

xxA . (2.17)

Равенство (2.17) можно записать также в виде

0 xIAxB ,

где I – единичный (тождественный оператор). Последнее равен-

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

ратора IAB . Чтобы найти ненулевое решение, необходи-

мо, чтобы определитель матрицы был равен нулю:

0det IA . (2.18)

Следовательно, чтобы найти собственные значения и собст-

венные векторы матрицы, необходимо решить характеристи-

ческое (вековое) уравнение (2.18), а затем подставить полу-

ченные значения в уравнение (2.17) и, решив систему линей-

ных алгебраических уравнений (СЛАУ), найти компоненты соб-

ственного вектора. Поскольку матрица СЛАУ вырождена, ее

собственный вектор находится с точностью до константы.

Page 42: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

42

При нахождении собственных значений могут возникнуть

различные ситуации, например, вековое уравнение не имеет ве-

щественных корней, или некоторые из корней кратные. Крат-

ным собственным значениям может соответствовать один, два

или больше собственных векторов. Рассмотрим несколько при-

меров.

Пример 2.2. Найдем собственные значения матрицы

.6325

A

Запишем вековое уравнение:

024116)6()5(63

25det 2

IA .

Решая квадратное уравнение, получим

.3,8;2

511

2

24412111212,1

Подставляем 1 в (1.3), получим СЛАУ

023023

00

863285

21

21

2

1

xxxx

x

x,

решением которой будут векторы, где 21 23 xx , например,

).3,2(x Найдем второй собственный вектор y , отвечающий

собственному значению = 3:

.033022

00

363235

2121

21

2

1 yyyyyy

y

y

Вторым собственным вектором будет )1,1( y .

Пример 2.3. Пусть .1011

A Вековое уравнение

,0)1( 2 значит, 121 . Ищем собственный вектор:

00

0010

2

1

x

x,

откуда 12 ,0 xx – произвольно, например, 11 x . Второго соб-

ственного вектора нет.

Page 43: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

43

Пример 2.4. Найти собственные значения и собственные

векторы матрицы .466353331

A

.0466

353331

0det

IA

Раскладываем определитель по первой строке:

6653

346

33)3(

4635

)1(

61233632)1(

18)5(6318)4(3318)4)(5()1(2

01216

1836918223

322

Ищем целочисленные решения кубического уравнения, про-

веряя значения ,...2 ,1 . В результате подстановки находим

первый корень .21 Выделяя множитель 2 из кубиче-

ского полинома, получим квадратное уравнение 0822

с действительными корнями .4,2 32 Обозначим собст-

венные векторы, отвечающие найденным собственным значени-

ям ,221 43 , как zyx ,, соответственно.

Подставляя 43 в (2.18), получим систему для определе-

ния собственного вектора z :

0660393

0333

21

321

321

zzzzz

zzz,

в которой после несложных преобразований останется два неза-

висимых уравнения:

02

0

32

21

zz

zz.

Полагая ,12 z получим собственный вектор z = (1, 1, 2).

Page 44: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

44

Ищем собственные векторы, соответствующие кратному соб-

ственному значению 221 . После преобразований оста-

ется одно независимое уравнение 0321 xxx , которое зада-

ет целую плоскость собственных векторов. Полагая

0,1 32 xx , 1,0 32 yy , получим два собственных вектора

)0 ,1 ,1(x и )1 ,0 ,1(y .

Если матрица имеет полную систему собственных векторов,

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

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

A – исходная матрица, имеющая полную систему собственных

векторов. Преобразуем исходную матрицу по формуле

CACA 1, (2.19)

где C – матрица, составленная из собственных векторов матри-

цы A, C-1

– обратная к C матрица.

Пример 2.5. Приведем к диагональному виду матрицу из

Примера 2.2. Запишем найденные собственные векторы в мат-

рицу преобразования

13

12C и найдем обратную

2311

511C .

Проверка: 1CC I

1001

23332232

51 .

Применяя (2.19), получим

CACA 1

4322

51 .

6325

1312

=

3008

,

т.е. в результате получена диагональная матрица, на главной

диагонали которой стоят собственные значения.

Пример 2.6. Для матрицы из Примера 2.4 найдены собст-

венные векторы T)0 ,1 ,1(x , T)1 ,0 ,1(y , z = (1, 1, 2)T, из ко-

торых образуем матрицу C и найдем обратную к ней:

210101111

C ,

111012131

211C .

Page 45: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

45

(Проверить, что ICCCC 11.)

Приводим к диагональному виду: CACA 1

=

111012131

21 .

466353331

210101111

.222022131

210101111

400020002

.

В MathCAD для нахождения собственных значений и соб-

ственных векторов используются функции eigenvals,

eigenvecs, eigenvec.

Функция eigenvals(A) вычисляет вектор, компонента-

ми которого являются собственные значения квадратной матри-

цы A. Функция eigenvecs(A) вычисляет матрицу, столбцы

которой являются нормированными собственными векторами

матрицы A. Функция eigenvec(A,) вычисляет нормиро-

ванный собственный вектор матрицы A, соответствующий соб-

ственному значению . На рисунке 2.10 приведены фрагменты

рабочего листа MathCAD, на котором найдены собственные

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

2.2 и 2.4. Как уже отмечено выше, значения собственных векто-

ров определяются с точностью до константы, поэтому в

MathCAD получены так называемые нормированные собствен-

ные вектора, у которых норма (евклидова длина) равна единице:

. Найденные собственные вектора использованы для

приведения исходной матрицы к диагональному виду.

Для нахождения собственных значений можно использо-

вать инструменты MathCAD, позволяющие проводить символь-

ные вычисления. На рис. 2.11 показан фрагмент рабочего листа,

на котором вековые уравнения для примеров 2.2. и 2.4. получе-

ны в символьном виде и далее решены с помощью стандартной

функции MathCAD polyroots, позволяющей находить корни

полинома по вектору его коэффициентов.

Page 46: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

46

Рис. 2.10. Листинг MathCAD с примерами нахождения собст-

венных значений, собственных векторов матриц и приведения

матрицы к диагональному виду

Рис. 2.11. Листинг MathCAD с примерами получения

векового уравнения в символьном виде

Page 47: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

47

Глава 3. Интерполяция и приближение функций

Приближение функций – это раздел теории функций, посвя-

щенный изучению вопросов приближённого представления

функций. Приближение позволяет исследовать числовые харак-

теристики и качественные свойства объекта, сводя задачу к изу-

чению более простых или более удобных объектов (например,

таких, характеристики которых легко вычисляются или свойства

которых уже известны). Приближение функций — нахождение

для данной функции f другой функции F из некоторого опреде-

лённого класса (например, среди алгебраических многочленов

заданной степени), в том или ином смысле близкой к f, дающей

её приближённое представление.

Интерполирование функций — частный случай задачи при-

ближения, когда требуется, чтобы в определённых точках (узлах

интерполирования) совпадали значения функции f и прибли-

жающей её функции F, а в более общем случае — и значения

некоторых их производных. Слово «интерполяция» в переводе

означает «между точками». Задачи интерполяции часто возни-

кают в инженерных и других практических приложениях. До-

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

чена таблица значений некоторой функции. Требуется найти

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

определяющие скорость ее изменения. Это так называемая за-

дача о восстановлении функции. Кроме того, при проведении

расчетов сложные функции удобно заменять алгебраическими

многочленами или другими элементарными функциями, кото-

рые достаточно просто вычисляются (задача о приближении

функции). Интерполяцию используют для приближенного вы-

числения интегралов (построение квадратурных формул). Из

математического анализа известны, например, многочлены (ря-

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

гладких (т.е. достаточное число раз дифференцируемые) функ-

ций. В математике и технике часто используют разложение

функций в тригонометрические ряды. Каждый метод имеет

свою погрешность, определяемую тем, насколько различаются

значения исходной и интерполирующей функций. Существуют

Page 48: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

48

ли другие способы интерполяции и приближения функций? Ко-

гда и какой способ лучше использовать? Какова точность (по-

грешность) используемых методов интерполяции? Об этом мы

узнаем, изучив следующую тему.

3.1. Постановка задачи интерполяции

На интервале [a, b] задана система узлов интерполяции xi,

i=0, 1,..., N; a x i b, и значения неизвестной функции в этих

узлах fi, i=0, 1,...., N. Могут быть поставлены задачи:

1. Найти функцию F(x), принимающую в точках xi, заданные

значения: F(xi)=fi, i=0, 1,…, N (условия интерполяции).

2. Для заданного значения z[a, b] найти F(z).

3. Для заданного значения z[a, b] найти F(z).

Задача имеет много решений: через заданные точки (xi, fi),

i=0, 1,..., N, можно провести бесконечно много кривых, каждая

из которых будет графиком функции, для которой выполнены

все условия интерполяции. Если известна исходная функция

g(x), то можно оценить погрешность метода в произвольной

точке z[a, b]: r(z)=|g(z)–F(z)|. Кроме того, можно оценивать так

называемую равномерную r1 и среднеквадратичную r2 погреш-

ности: )(max],[

1 zrrbaz

, dz)z(rrb

a

2

2 .

Нас будет интересовать поведение погрешности метода при

увеличении числа узлов интерполяции. Будем говорить, что ме-

тод сходится, если при N погрешность r 0.

Все методы интерполяции можно разделить на локальные и

глобальные. В случае локальной интерполяции на каждом ин-

тервале [xi–1, xi] строится своя (локальная) функция. В случае

глобальной интерполяции отыскивается одна (глобальная)

функция на всем интервале [a, b]. Далее приведены примеры

различных способов интерполяции.

3.2. Локальная интерполяция

Кусочно–постоянная интерполяция. На каждом локальном

отрезке [xi–1, xi], i=1, 2,…, N, интерполирующая функция являет-

ся постоянной и равна левому: Fi(z)=fi или правому: Fi(z)=fi зна-

Page 49: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

49

чению. Легко понять, что условия интерполяция в этом случае

выполняются. Построенная функция является разрывной (см.

рис. 3.1 а), что ограничивает ее применение. Кроме того, в слу-

чае малого числа точек такая интерполяция дает большую по-

грешность.

Кусочно–линейная интерполяция. На каждом интервале

[xi–1, xi] функция является линейной Fi(z)=kiz+li. Значения коэф-

фициентов находятся из выполнения условий интерполяции в

концах отрезка: Fi(xi–1)=fi–1, Fi(xi)=fi. Получаем систему уравне-

ний: kixi–1+li=fi–1, kixi+li=fi, откуда находим ,xx

ffk

ii

iii

1

1

iiii xkfl . Итоговая функция будет непрерывной, но производ-

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

такой интерполяции будет меньше, чем в предыдущем случае.

Иллюстрация кусочно–линейной интерполяции приведена на

рис. 3.1б.

x

y

xNxi

f0

fN

fi

x0

а

x

y

xNxi-1

f0

fN

x0

б

xi

fi-1

fi

Рис. 3.1. Левая кусочно–постоянная (а) и

кусочно–линейная (б) интерполяции

Пример 3.1. Заданы значений некоторой функции:

x 0 2 3 3.5

f –1 0.2 0.5 0.8

Требуется найти значение функции при z=1 по кусочно–

постоянной и кусочно–линейной интерполяции.

Решение. Точка z=1 принадлежит первому локальному от-

резку [0, 2], следовательно, по формулам левой кусочно–

постоянной интерполяции F(1) = f0 = –1, по формулам правой

Page 50: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

50

кусочно–постоянной интерполяции F(1)=f1=0.2. Воспользуемся

формулами кусочно–линейной интерполяции:

,6.001

011

xx

ffk 4.016.01)1(,11111 Fxkfl .

Для построения линейной интерполяции в пакете MathCAD

служит встроенная функция linterp.

linterp(x, f, t) – функция, аппроксимирующая

данные векторов x и y кусочно-линейной зависимостью,

где:

x - вектор действительных данных аргумента; элементы

вектора должны быть определены в порядке возрастания;

f - вектор действительных значений заданной табличной

функции в узлах интерполяции xi (размерность f должна

совпадать с размерностью вектора x);

t – значение аргумента, для которого вычисляется интер-

полирующая функция.

На рис. 3.2 приведен листинг программы для решения при-

мера 3.1 с помощью данной функции.

Рис. 3.2. Линейная интерполяция. Решение в MathCAD

В большинстве практических приложений желательно со-

единить экспериментальные точки не ломаной линией, а глад-

кой кривой. Лучше всего для этих целей подходит интерполяция

сплайнами, т.е. отрезками полиномов (чаще всего парабол).

Кусочно–параболическая интерполяция. На каждом i–м

интервале [xi–1, xi], i=1, 2,…, N, функция является параболой ви-

да Fi(z)=ai+bi(z–xi)+ci/2(z–xi)2. Значения коэффициентов ai, bi, ci

Page 51: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

51

находятся из условий интерполяции, непрерывности функции и

ее первой производной в узлах интерполяции.

Кубический интерполяционный сплайн. Название метода

происходит от английского слова spline. Так называлась гибкая

линейка, использовавшаяся корабельными инженерами вместо

лекал. Форма этого универсального лекала на каждом отрезке

описывается кубической параболой. Сплайны широко исполь-

зуются в инженерных приложениях, в частности, в компьютер-

ной графике. Итак, на каждом i–м [xi–1, xi], i=1, 2,…, N, решение

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

Si(x)=ai+bi(x–xi)+ci(x–xi)2/2+di(x–xi)

3/6.

Неизвестные коэффициенты ai, bi, ci, di, i=1, 2,..., N, находим из:

– условий интерполяции: Si(xi)=fi, i=1, 2,..., N; S1(x0)=f0,

– непрерывности функции Si(xi–1)=Si–1(xi–1), i=2, 3,..., N,

– непрерывности первой и второй производной:

Si(xi–1)=Si–1(xi–1), Si(xi–1)=Si–1(x i–1), i=2, 3,..., N.

Для определения 4N неизвестных получаем систему 4N–2 урав-

нений:

ai=fi, i=1, 2,..., N,

bi hi – cihi2/2 + di hi

3/6=fi – fi–1, i=1, 2,..., N,

bi – bi–1 = ci hi – di hi2/2, i=2, 3,..., N,

di hi = ci – ci–1 , i=2, 3,..., N.

где hi=xi – xi–1. Недостающие два уравнения выводятся из допол-

нительных условий: S"(a)=S"(b)=0. Из системы можно исклю-

чить неизвестные bi , di , получив систему N+1 линейных урав-

нений (СЛАУ) для определения коэффициентов ci:

c0 =0, cN =0,

hici–1+2(hi+hi+1)ci+h i+1ci+1=6

1

11

i

ii

i

ii

h

ff

h

ff, i=1, 2,…, N–1.

В случае постоянной сетки hi=h эта система уравнений упроща-

ется. Данная CЛАУ имеет трехдиагональную матрицу и решает-

ся методом прогонки. После этого вычисляются коэффициенты

bi, di: i

iiiiiii

i

iii

h

ffhdhc,b

h

ccd 1

21

62

, i=1, 2,..., N.

Page 52: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

52

Для вычисления значения S(x) в произвольной точке отрезка

z[a, b] необходимо решить систему уравнений на коэффициен-

ты ci, i=1,2,…, N–1, затем найти все коэффициенты bi, di. Далее,

необходимо определить, на какой интервал [xi0, xi0–1] попадает

эта точка, и, зная номер i0, вычислить значение сплайна и его

производных в точке z

S(z)=bi0+ci0(z–xi0)+di0(z–x i0)

2/2, S(z)=ci0+di0(z–x i0).

Кубический интерполяционный сплайн имеет достаточно хо-

рошую точность, и в то же время имеет простую и экономичную

реализацию (решение полученного СЛАУ методом прогонки).

Для построения кубической интерполяции в пакете MathCAD

служит встроенная функция interp(s, x, f, t) - функ-

ция, аппроксимирующая данные векторов x и f кубическими

сплайнами;

x - вектор действительных данных аргумента, элементы которо-

го расположены в порядке возрастания;

f - вектор действительных значений заданной табличной функ-

ции в узлах интерполяции xi (размерность совпадает с размерно-

стью вектора x);

t - значение аргумента, для которого вычисляется интерполи-

рующая функция.

s - вектор вторых производных на граничных точках x0 и xN,

созданный одной из сопутствующих функций cspline,

pspline или lspline;

lspline(x, f) – вектор значений коэффициентов, найден-

ных с помощью линейного сплайна;

pspline(x, f) - вектор значений коэффициентов, найденных

с помощью квадратичного сплайна;

cspline(x, f) - вектор значений коэффициентов, найденных

с помощью кубического сплайна.

Пример 3.2. Задана дискретная функция, представим ее ар-

гументы и значения в виде векторов x и y. Задача – с помощью

кубического сплайна найти значения заданной функции во всех

точках интервала [x0, xN]. Сначала вычисляется вспомогатель-

Page 53: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

53

ный вектор s с помощью функции cspline, служащий вход-

ным параметром для функции interp.

x 0 1 2 3 4 5 6( )T

y 4.1 2.4 3 4.3 3.6 5.2 5.9( )T

s csplinex y( )

A t( ) interps x y t( )

0 52

4

6

7

2

A t( )

y

71 t x

3.3. Глобальная интерполяция

Будем искать интерполирующую функцию в виде полинома

(многочлена) m–ой степени Pm(x)=a0+a1x+a2x2+a3x

3+…+amx

m.

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

всем условиям интерполяции? Допустим, что заданы две точки:

(x0, f0) и (x1, f1). Через эти точки можно провести единственную

прямую, т.е. интерполирующей функцией будет полином пер-

вой степени P1(x)=a0+a1x. Через три точки можно провести па-

раболу P2(x)=a0+a1x+a2x2 и т.д. Рассуждая таким способом,

можно предположить, что искомый полином должен иметь сте-

пень N

Для того, чтобы доказать это, выпишем систему уравнений

на коэффициенты. Уравнения системы представляют собой ус-

ловия интерполяции при каждом x=xi:

NNNNNNNNN

NNN

NNN

fxaxaxaxaaxP

fxaxaxaxaaxP

fxaxaxaxaaxP

33

2210

22323

2222102

11313

2121101

...

Данная система является линейной относительно искомых

коэффициентов a0, a1, a2,…, aN. Известно, что СЛАУ имеет ре-

шение, если ее определитель отличен от нуля. Определитель

данной системы

Page 54: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

54

Nmk

mk

NNN

N

N

xx

xx

xx

xx

0

22

11

1

......

...1

...1

носит имя Вандермонда. Из курса математического анализа из-

вестно, что он отличен от нуля, если xk xm (т.е. все узлы интер-

поляции различные). Таким образом, доказано, что система

имеет решение.

Мы показали, что для нахождения коэффициентов

a0, a1, a2,…, aN надо решить СЛАУ, что является сложной зада-

чей. Но есть другие способы построения полинома N–й степени,

который не требует решения такой системы.

3.4. Полином Лагранжа

Решение ищем в виде zlfzL i

N

i

in

0

, где li(z) – базисные

полиномы N–й степени, для которых выполняется условие:

ki

kixl ki

,0

,1)( . Убедимся в том, что если такие полиномы

построены, то LN(x) будет удовлетворять условиям интерполя-

ции:

iiNNiiiiiik

N

kkin

fxlfxlfxlfxlfxlfxL

......11000

.

Каким образом построить базисные полиномы? Определим

Nii+ii-iii

Ni+i-i

xx...xxxx...xxxx

xz...xzxz...xzxzzl

1110

1110 , i=0, 1,..., N.

Легко понять, что

N

N

N

N

xx...xxxx

xz...xzxzz, l

xx...xxxx

xz...xzxzzl

12101

201

02010

210

и т.д.

Page 55: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

55

Функция li(z) является полиномом N–й степени от z и для нее

выполняются условия «базисности»:

Nki+ki-kkk

Nki+ki-kkkki

xx...xxxx...xxxx

xx...xxxx...xxxxxl

1110

1110 =0, ik;

11110

1110

Nii+ii-iii

Nii+ii-iiiii

xx...xxxx...xxxx

xx...xxxx...xxxxxl .

Таким образом, нам удалось решить задачу о построении ин-

терполирующего полинома N– й степени, и для этого не нужно

решать СЛАУ. Полином Лагранжа можно записать в виде ком-

пактной формулы:

ki ki

kN

iii

N

iiN

xx

xzfzlfzL

)(

)(

00

. Погреш-

ность этой формулы можно оценить, если исходная функция

g(x) имеет производные до N+1 порядка:

],[),()!1(

)()(

1

0

)1(

baxzN

gzr

N

ii

N

.

Из этой формулы следует, что погрешность метода зависит

от свойств функции g(x), а также от расположения узлов интер-

поляции и точки z. Как показывают расчетные эксперименты,

полином Лагранжа имеет малую погрешность при небольших

значениях N<20. При бόльших N погрешность начинает расти,

что свидетельствует о том, что метод Лагранжа не сходится (т.е.

его погрешность не убывает с ростом N).

Для вычисления значений полинома нужно выполнить коли-

чество действий, пропорциональное N 2. В случае небольшого

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

чае если N велико, для вычислений будем использовать ЭВМ.

Полином Лагранжа удобно использовать, если в одних и тех

же узлах надо вычислить значения нескольких функций. В том

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

няются (или добавляются новые узлы), использование формулы

Лагранжа нецелесообразно. В этом случае надо использовать

интерполяционную формулу Ньютона.

Пример 3.3. Для исходных данных, использованных в при-

мере 3.1, требуется найти значение полинома Лагранжа при z=1.

Page 56: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

56

Для этого случая N=3, т.е. полином Лагранжа имеет третий по-

рядок. Вычислим значения базисных полиномов при z=1:

0.7623.0)2)(3.50)(3.5(3.5

3)2)(10)(1(1(1)3

1.6673.5)2)(30)(3(3

3.5)2)(10)(1(1(1)2

1.6673.5)3)(20)(2(2

3.5)3)(10)(1(1(1)1

0.2383.5)3)(02)(0(0

3.5)3)(12)(1(1(1)0

l

l

l

l

.129.03

0)1()1(

3

ii

li

fL

На рис. 3.3 показан листинг программы для нахождения зна-

чения полинома Лагранжа для конкретного значения z. А также

приведен график сравнения с исходной дискретной функцией

f(xi).

3.5. Полином Ньютона

Полином Ньютона есть еще одна форма записи глобального

интерполирующего полинома N–го порядка. Она имеет вид:

PN(z)=f0+F(x0,x1)(z–x0)+F(x0,x1,x2)(z–x0)(z–x1)+…

+F(x0,x1,x2,…xN)(z–x0)(z–x1)…(z–xN–1).

Здесь F(x0,x1), F(x0,x1,x2),…, F(x0,x1,x2,…xN) – разделенные раз-

ности первого, второго,…, N–ого порядков, которые вычисля-

ются по формулам:

.),...,,(),...,,(

),...,,(

,...,),(),(

),,(,),(

0

1102110

xx

xxxFxxxFxxxF

xx

xxFxxFxxxF

xx

ffxxF

N

NNN

ki

kjji

kji

ji

ji

ji

Page 57: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

57

Рис. 3.3. Нахождение полинома Лагранжа в пакете MathCAD

Разделенные разности являются аналогами первой, вто-

рой, …, N–й производной от заданной таблично функции. Их

вычисление удобно проводить в таблице разделенных разно-

стей: x0 f0 – – – –

x1 f! F(x0,x1) – – –

x2 f2 F(x1,x2) F(x0,x1,x2) – –

x3 f3 F(x2,x3) F(x1,x2,x3) F(x1,x2,x3,x4) –

… … … … –

xN fN F(xN–1,xN) F(xN–2,xN–1,xN) F(xN–3,xN–2,xN–1,xN) F(xN,xN–1,…x1, x0)

Порядок узлов при вычислении разделенных разностей не

важен. Если число узлов изменится, то в таблице разделенных

разностей появится еще одна строчка, а в формуле Ньютона –

еще один член, все остальные вычисления повторять не надо.

Page 58: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

58

Поскольку результатом интерполяционных формул Ньютона

и Лагранжа является один и тот же полином N–го порядка, то их

погрешность ведет себя одинаково.

Пример 3.4. Для исходных данных, использованных в при-

мере 3.1, вычислим значение полинома Ньютона. Сначала за-

полним таблицу разделенных разностей:

x F F(xi,xj) F(xi,xj,xk) F(x0,x1,x2,x3) z–xi

0.00 –1 – – – 1.00

2.00 0.2 0.6 – – –1.00

3.00 0.5 0.3 –0.1 – –2.00

3.50 0.8 0.6 0.2 0.085714 –2.50

Используя формулу Ньютона, получим:

P3(1)= –1+0.61+(–0.1)1(–1)+0.08571(–1)(–2)= –0.129.

3.6 Ряды Фурье

Ряд Фурье позволяет изучать как периодические, так и непе-

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

токи и напряжения, смещения, скорость и ускорение кривошип-

но-шатунных механизмов, акустические волны - это типичные

практические примеры применения периодических функций в

инженерных расчетах. В терминах обработки сигналов преобра-

зование Фурье берет представление функции сигнала в виде

временных рядов и отображает его в частотный спектр. То есть

оно превращает функцию времени в функцию частоты; это раз-

ложение функции на гармонические составляющие на различ-

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

изменяющийся во времени, в виде зависимости частоты и ам-

плитуды, также оно даёт информацию о фазе (рис.3.4).

Разложение в ряд Фурье основывается на предположении,

что все имеющие практическое значение функции в интервале

π ≤x≤ π можно выразить в виде сходящихся тригонометрических

рядов (ряд считается сходящимся, если сходится последова-

тельность частичных сумм, составленных из его членов).

Согласно гипотезе Фурье не существует функции, которую

нельзя было бы разложить в тригонометрический ряд. Разложим

функцию f(t) в ряд на отрезке [–π, π]

Page 59: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

59

f(t) = a0/2 + a1cos(t) + a2cos(2t) + a3cos(3t) + …

+ b1sin(t) + b2sin(2t) + b3sin(3t)+…, (3.1)

где n-ые элементы ряда выражаются как

dtnttfan )cos()(

1, (3.2)

dtnttfbn )sin()(

1 (3.3)

Рис. 3.4. Иллюстрация к разложению в ряд Фурье

Коэффициенты an и bn называют коэффициентами Фурье, а

представление функции f(t) по формуле (3.1) – разложением в

ряд Фурье. Иногда разложение в ряд Фурье, представленное в

таком виде, называют действительным разложением в ряд Фу-

рье, а коэффициенты – действительными коэффициентами Фу-

рье (в отличие от комплексного разложения).

Проанализируем выражения (3.2) и (3.3). Коэффициент a0

представляет собой среднее значение функции f(t) на отрезке

[–π, π] или постоянную составляющую сигнала f(t). Коэффици-

енты an и bn (при n > 0) – это амплитуды косинусных и синусных

составляющих функции (сигнала) f(t) с угловой частотой равной

n. Другими словами, данные коэффициенты задают величину

частотных составляющих сигналов. Например, когда мы гово-

рим о звуковом сигнале с низкими частотами (например, звуки

бас-гитары), это означает, что коэффициенты an и bn больше при

меньших значениях n и наоборот – в высокочастотных звуковых

Page 60: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

60

колебаниях (например, звук скрипки) больше при больших зна-

чениях n.

Колебание самого большого периода (или самой низкой час-

тоты), представленное суммой a1cos(t) и b1sin(t) называют коле-

банием основной частоты или первой гармоникой. Колебание с

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

гармоникой, колебание с периодом равным 1/n основной часто-

ты – n-гармоникой. Таким образом, с помощью разложения

функции f(t) в ряд Фурье, мы можем осуществить переход из

временной области в частотную. Такой переход обычно необхо-

дим для выявления особенностей сигнала, которые «незаметны»

во временной области.

Обратим внимание, что формулы (3.2) и (3.3) применимы для

периодического сигнала с периодом равным 2π. В общем случае

в ряд Фурье можно разложить периодический сигнал с перио-

дом T, тогда при разложении используется отрезок [–T/2, T/2].

Период первой гармоники равен T и составляющие примут вид

cos(2πt/T) и sin(2πt/T), составляющие n-гармоники - cos(2πtn/T) и

sin(2πtn/T). Если обозначить угловую частоту первой гармоники

ω0 = 2π/T, тогда составляющие n-гармоники принимают вид

cos(ω0nt), sin(ω0nt) и

1)0sin()0cos(

2

0)(n

ntnbntnaa

tf , (3.4)

где коэффициенты Фурье вычисляются по формулам

2/

2/,)0cos()(

2 T

Tdtnttf

Tna .

2/

2/)0sin()(

2

T

Tdtnttf

Tnb

Разложение в ряд Фурье используется для гармонического

или спектрального анализа периодических сигналов. Для спек-

трального анализа непериодических сигналов используется

преобразование Фурье. Для этого ряд (3.4) представим, ис-

пользуя систему базисных функций в виде экспонент с мнимы-

ми показателями:

n T

ntjnCtf )

2exp()(

(3.5)

Page 61: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

61

2/

2/)

2exp()(

1 T

Tdt

T

ntjtf

TnC

(3.6)

Опустив ряд выкладок, выражение (3.6) запишем в виде

dttjtfC )exp()()( .

Данная формула называется прямым преобразованием Фу-

рье или преобразованием Фурье. Обычно преобразование Фурье

обозначают той же (только прописной) буквой, что и аппрокси-

мируемая функция (которая обычно обозначается строчной бук-

вой)

dttjtfF )exp()()( .

Функция F(ω) называется функцией спектральной плотно-

сти (или просто спектральной плотностью, преобразованием

Фурье, Фурье-образом). Область значений функции F(ω) в об-

щем случае является множество комплексных чисел.

Обратное преобразование Фурье, обеспечивающее восста-

новление исходной функции f(t) по функции спектральной

плотности вычисляется следующим образом

dttjFtf )exp()(

2

1)(

.

Дискретное преобразование Фурье (ДПФ, DFT — Discrete

Fourier Transform) — это одно из преобразований Фурье, широ-

ко применяемых в алгоритмах цифровой обработки сигналов

(его модификации применяются в сжатии звука в MP3, сжатии

изображений в JPEG и др.), а также в других областях, связан-

ных с анализом частот в дискретном (к примеру, оцифрованном

аналоговом) сигнале. Дискретное преобразование Фурье требует

в качестве входа дискретную функцию. Такие функции часто

создаются путём дискретизации (выборки значений из непре-

рывных функций). Недостатком данного алгоритма является

большой объем повторяющихся вычислений. Устранение этих

избыточных операций приводит к так называемому алгоритму

Page 62: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

62

быстрого преобразования Фурье, который обычно и использует-

ся.

Быстрое преобразование Фурье (БПФ, FFT) — алгоритм

быстрого вычисления дискретного преобразования Фурье

(ДПФ). То есть алгоритм вычисления за число действий, мень-

шее чем O(N2), требуемых для прямого (по формуле) вычисле-

ния ДПФ (N — количество значений сигнала, измеренных за

период, а также количество компонент разложения). Иногда под

БПФ понимается один из быстрых алгоритмов, называемый ал-

горитмом прореживания по частоте/времени или алгоритмом по

основанию 2.

Для того чтобы реализовать преобразование Фурье в пакете

MathCAD, необходимо на панели Symbolic выбрать оператор

fourier для прямого преобразования и invfourier - для об-

ратного. Этот оператор нужно поместить следом за функцией,

которую нужно преобразовать, а в качестве единственного па-

раметра нужно указать переменную, относительно которой эта

функция будет преобразована. Примеры использования показа-

ны рис. 3.5 для функции t

etf2

)(

и на рис. 3.6, где к функции

)(tf применяется амплитудно-частотная модуляция, а далее ре-

зультат раскладывается в ряд.

Рис. 3.5. Пример разложения в ряд Фурье с помощью символь-

ной функции fourier

Page 63: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

63

Рис. 3.6. Пример разложения в ряд Фурье с помощью символь-

ной функции fourier

MathCAD содержит функции для быстрого дискретного пре-

образования Фурье (БПФ) и его обращения. Существует два ти-

па функций для дискретного преобразования Фурье: fft и

ifft, cfft и icfft. Эти функции дискретны: они берут в ка-

честве аргументов и возвращают векторы и матрицы.

Функции fft и ifft используются, если выполнены сле-

дующие условия: (1) аргументы вещественные; (2) – вектор

данных имеет 2m

элементов.

Во всех прочих случаях используются функции cfft и

icfft.

Соблюдать первое условие необходимо, потому что функции

fft и ifft используют тот факт, что для вещественных дан-

ных вторая половина преобразования Фурье является комплекс-

но – сопряженной с первой. MathCAD отбрасывает вторую по-

ловину вектора результата, что сохраняет время и память при

вычислениях. Пара функций cfft и icfft не используют

симметрию в преобразовании и могут использоваться для веще-

ственных и комплексных чисел.

Второе условие требуется, потому что пара функций fft и

ifft используют высокоэффективный алгоритм быстрого пре-

образования Фурье. Для этого вектора аргумента, используемо-

Page 64: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

64

го функцией fft, должен состоять из 2m элементов. Алгоритм

функций cfft и icfft допускает в качестве аргументов век-

торы и матрицы произвольного размера. Для двухмерного пре-

образования Фурье используются только эти функции. Функции

fft и ifft, cfft и icfft взаимно обратные друг другу, то

есть справедливо:

v))ifft(fft(v и v(v))icfft(cfft .

На рис. 3.7 проиллюстрировано использование функций

fft(v) и ifft(v) для сигнала синусоидальной формы, на кото-

рый наложены помехи с помощью функции rnd(x), генери-

рующей случайные числа в диапазоне от 0 до x.

Рис. 3.7. Прямое и обратное преобразование Фурье с помощью

функций fft и ifft

На данных графиках приведен Фурье образ сигнала c и срав-

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

Более подробно о Фурье-анализе можно прочесть в [2] и [3].

3.7 Метод наименьших квадратов

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

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

ях, когда исходные данные xi, fi, i=1,…,N, заданы с некоторой

погрешностью , можно требовать лишь приближенное выпол-

Page 65: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

65

нение условий интерполяции: |F(xi) – fi|<. Это условие означа-

ет, что интерполирующая функция F(x) проходит не точно через

заданные точки, а в некоторой их окрестности, так, например, как

это показано на рис. 3.8. Приблизим исходные данные глобальным

полиномом. Если решать задачу интерполяции точно, то полином

должен иметь степень N. При рассмотрении полинома Лагранжа

мы выяснили, что полином N–й степени хорошо приближает

исходную функцию только при небольших значениях N.

x

y

Рис. 3.8. Приближенное выполнение условий интерполяции

Будем искать полином низкой степени, например,

P3(x)=a1+a2x+a3x2+a4x

3. Если N>4, то точная задача решений не

имеет: для четырех неизвестных коэффициентов (a1, a2, a3, a4)

условия интерполяции дают N>4 уравнений. Но теперь точного

выполнения условий интерполяции не требуется, мы хотим,

чтобы полином проходил рядом с заданными точками. Сущест-

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

своим набором коэффициентов. Среди всех возможных полино-

мов этого вида выберем тот, что имеет наименьшее среднеквад-

ратичное отклонение в узлах интерполяции от заданных значе-

ний, т.е. многочлен должен быть самым близким к заданным

точкам из всех возможных многочленов третьей степени в

смысле метода наименьших квадратов (МНК). В i–й точке по-

лином P3(x) отклоняется от значения fi на величину (P3(xi) – fi).

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

i=1, 2,…, N, получим функционал квадратов отклонений:

234

2321

1

2

134321 )())((),,,( iiii

N

i

N

iii fxaxaxaafxPaaaaG

Page 66: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

66

Найдем минимум этого функционала. Для этого приравняем

нулю его частные производные по переменным a1, a2, a3, a4. Ис-

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

0)(2

0)(2

0)(2

0)(2

34

2321

1

3

4

34

2321

1

2

3

1

34

2321

2

1

34

2321

1

iiii

N

ii

iiii

N

ii

N

iiiiii

N

iiiii

fxaxaxaaxa

G

fxaxaxaaxa

G

fxaxaxaaxa

G

fxaxaxaaa

G

Собирая коэффициенты при неизвестных ai, получим СЛАУ

относительно вектора неизвестных (a1, a2, a3, a4):

3

114

6

13

5

12

4

11

3

2

114

5

13

4

12

3

11

2

114

4

13

3

12

2

11

114

3

13

2

121

i

N

ii

N

ii

N

ii

N

ii

N

ii

i

N

ii

N

ii

N

ii

N

ii

N

ii

i

N

ii

N

ii

N

ii

N

ii

N

ii

N

ii

N

ii

N

ii

N

ii

xfaxaxaxax

xfaxaxaxax

xfaxaxaxax

faxaxaxaN

Полученная система называется нормальной. Для ее решения

используют стандартные методы решения СЛАУ. Как правило,

число неизвестных системы (т.е. число коэффициентов интер-

полирующей функции) невелико, поэтому можно использовать

точные методы решения СЛАУ, например, метод Крамера или

метод Гаусса. Метод наименьших квадратов позволяет «прибли-

зить» исходные данные с помощью линейной комбинации лю-

бых элементарных функций. Часто используются приближения

линейной F(x)=a1+a2x,, тригонометрической

F(x)=a1sin(x)+a2cos(x), экспоненциальной F(x)=a1ex+a2 e

–x и т.д.

функциями.

Пример 3.5. Найдем линейную зависимость F(x)=a1+a2x,

приближающую заданную таблично функцию:

Page 67: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

67

x –1 –0.5 0.7 1 1.2

f -0.5 -0.2 0.2 0.5 1

В этом случае N=5, нормальная система имеет вид:

i

N

ii

N

ii

N

ii

N

ii

N

ii

xfaxax

faxaN

112

2

11

1121

Вычисляем

N

iii

N

ii

N

ii

N

ii xffxx

111

2

1

,,, ,

подставляем в нормальную

систему:

44.2218.414.1

124.115

aa

aa

.

Решаем методом Крамера:

,

,

,

,

.

Проверка. Вычисляем значение 2)21

5

1( ifixaa

iG

=0.148.

График функции F(x)=-0.04+0.57x показан на рис. 3.9 сплошной

линией. Точками показаны исходные данные. Можно видеть,

что найденная линейная функция действительно приближает за-

данные точки.

В MathCAD метод наименьших квадратов тесно связан с ли-

нейной регрессией (y(x) = b + ax), поскольку коэффициенты a и

b вычисляют из условия минимизации суммы квадратов ошибок

|b + axi – yi|. Для расчета в MathCAD имеются два дублирующих

друг друга способа:

line (x,y) возвращает вектор из двух элементов коэффици-

ентов линейной регрессии b + ax;

-1

-0.5

0

0.5

1

-1.25 -0.75 -0.25 0.25 0.75

y

x

Рис. 3.9. Подбор линейной

зависимости МНК

Page 68: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

68

intercept (x,y) возвращает коэффициент b линейной рег-

рессии;

slope (x, y) возвращает коэффициент a линейной регрес-

сии;

x - вектор действительных данных аргумента;

y - вектор действительных данных значений того же размера.

Примеры 3.6 и 3.7 иллюстрируют применение этих функций:

здесь x и y – это исходные данные, которые мы аппроксимируем

линейной функцией f(t).

Пример 3.6

x 0 1 2 3 4 5 6( )T

y 4.1 2.4 3 4.3 3.6 5.2 5.9( )T

linex y( )2.829

0.414

f t( ) linex y( )0 linex y( )1 t

Пример 3.7 (другая форма записи).

x 0 1 2 3 4 5 6( )T

y 4.1 2.4 3 4.3 3.6 5.2 5.9( )T

interceptx y( ) 2.829 slope x y( ) 0.414 f t( ) interceptx y( ) slope x y( ) t

0 2 4 62

4

6

7

2

y

f t( )

60 x t

3.9. Заключение

Таким образом, мы познакомились с различными способами

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

имеет свою точность и особенности использования. Можно сде-

лать некоторые общие рекомендации по выбору метода интер-

поляции. Локальные методы, особенно кусочно–постоянный и

Page 69: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

69

кусочно–линейный, имеют достаточно простую реализацию.

Достоинством этих методов является то, что эти методы сходят-

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

Наиболее точным из рассмотренных локальных методов являет-

ся кубический интерполяционный сплайн. Кусочно–линейный,

кусочно–параболический и кусочно–кубический интерполяци-

онные методы можно использовать также и для вычисления

производных.

Глобальный интерполяционный полином, записанный в

форме Лагранжа или Ньютона, дает маленькую погрешность

при небольшом числе узлов (N<20). В этом случае погрешность

гораздо меньше, чем погрешность локальных методов. Однако,

начиная с некоторого N погрешность глобального полинома на-

чинает расти, что может даже привести к аварийному останову

выполнения программы ЭВМ. В случае большого числа узлов

использование глобальных способов нецелесообразно.

С помощью разложения функции f(t) в ряд Фурье, мы можем

осуществить переход из временной области в частотную. Такой

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

ла, которые «незаметны» во временной области.

С помощью МНК можно решить задачу интерполяции при-

ближенно. Метод позволяет приблизить сложные или таблично

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

элементарных функций.

Page 70: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

70

Глава 4. Решение задач оптимизации

В этом разделе рассматриваются инструменты MathCAD, по-

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

максимального или минимального значения функции F(x) в бес-

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

скольку задача о нахождении максимального значения функции

F(x) равнозначна задаче поиска минимального значения функ-

ции –F(x), будем называть задачу поиска экстремума задачей

минимизации.

Если аргумент функции x является вещественным скаляром,

то речь идет о поиске минимума функции одной переменной.

Если аргументом функции является вектор с n компонентами, то

мы имеем дело с поиском минимума функции n переменных.

Если аргумент сам является функцией x=x(t), то необходимо

найти минимум функционала. Если множество значений аргу-

мента ограничено системой дополнительных уравнений или не-

равенств, то говорят о поиске условного экстремума. Если ми-

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

никает задача линейного программирования. Такие задачи

типичны для экономических расчетов, направленных на опти-

мизацию какого-либо экономического показателя (издержек

производства, прибыли, времени и т.д.).

4.1. Поиск экстремума функции одной переменной аналитиче-

ским методом

Проблема поиска минимума включает в себя задачи нахож-

дения глобального и локального минимума. На рис. 4.1. приве-

ден график функции полинома четвертого порядка, имеющего

два локальных минимума, один из них является глобальным, а

второй – локальным.

Локальные минимумы функции одной переменной можно

найти, решив нелинейное в общем случае алгебраическое урав-

нение

0)(

dx

xdF (4.1)

Page 71: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

71

Если функция F(x) задана аналитически, то можно получить

уравнение (4.1) с помощью символьного дифференцирования, а

затем решить его с помощью методов, описанных в главе 1. Со-

ответствующий пример такого решения задачи оптимизации в

MathCAD приведен на рис. 4.2.

Рис. 4.1. График функции с двумя локальными минимумами

Рис. 4.2. Нахождение локальных экстремумов функции одной

переменной с помощью символьного дифференцирования

Здесь f1(x), f2(x) – функции первой и второй производной,

вектор y содержит коэффициенты полинома третьего порядка

f1(x), компонентами вектора z являются корни полинома f1(x).

Для того чтобы определить, при каких значениях x достига-

ется максимум, а при каких – минимум, в последних строках

Page 72: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

72

листинга на рис. 4.2. проводится подстановка найденных корней

в исходное уравнение. Кроме того, выполнена проверка значе-

ний второй производной в точках локальных экстремумов, ко-

торая показала, что в двух точках вторая производная положи-

тельна (локальные минимумы), а в одной – отрицательна (ло-

кальный максимум). Для нахождения глобального минимума

необходимо найти все локальные минимумы, а затем выбрать из

них наименьший. В приведенном примере глобальный минимум

f = -4.014 достигается в точке x = -1.301.

Однако зачастую уравнение (4.1) имеют весьма сложный вид

и для его решения необходимо применять итерационные методы

(см. главу 1), которые к тому же плохо сходятся. Если ищется

минимум функции n переменных, то уравнение (4.1) перейдет в

систему нелинейных уравнений

nix

xF

i

,1,0)(

. (4.1)

При отыскании минимума функционала необходимо решать

дифференциальное или интегро-дифференциальное уравнение.

Поэтому в общем случае решение задач оптимизации проводит-

ся приближенными методами, не связанными с приведением за-

дачи к уравнению вида (4.1). В MathCAD реализованы несколь-

ко так называемых градиентных методов, к которым принад-

лежит, например, описанный в главе 1 метод Ньютона. Суть ме-

тодов состоит в последовательном продвижении по множеству

значений аргумента x с учетом значений градиента минимизи-

руемой функции F(x). Эти же методы положены в основу встро-

енной функции Find, которая использовалась при решении

СЛАУ (см. главу 2). MathCAD предлагает три различных вари-

анта градиентных методов. Более подробно о принципах дейст-

вия, выборе конкретного метода и его параметров см. [4].

4.2. Поиск экстремума функции с помощью встроенных функ-

ций MathCAD

Поиск экстремумов реализован в MathCAD в виде встроен-

ных функций Minimize и Maximize. В качестве аргументов

функций Minimize и Maximize задаются имя функции, ко-

Page 73: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

73

торую необходимо оптимизировать, и список значений аргумен-

тов, по которым производится оптимизация.

Поскольку в основу работы этих функций положены при-

ближенные алгоритмы, перед вызовом функций необходимо за-

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

зависеть найденное значение минимума или максимума. Таким

образом, чтобы найти глобальный экстремум, необходимо не-

сколько раз решить задачу поиска локальных экстремумов с

различными начальными приближениями, а затем «вручную»

выбрать из них максимальное или минимальное значение.

На рис. 4.3. приведено решение задачи поиска локальных

экстремумов для функции, исследованной в предыдущем пара-

графе с помощью аналитического метода. Из примера можно

видеть, что в случае «неудачного» задания начального прибли-

жения для функции Maximize в последнем случае решение не

найдено. Заданное значение x=20 лежит на бесконечно возрас-

тающей ветке решения, и, несмотря на то, что в другой стороне

находится локальный максимум, численный метод не смог его

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

вует о невозможности вывести результат вычислений.

Рис. 4.3. Листинг MathCAD с примерами нахождения экстрему-

мом функции одной переменной

Нахождение экстремума функции нескольких переменных

принципиально не отличается от случая функции одной пере-

менной. На рис. 4.4 приведен фрагмент рабочего листа

MathCAD, на котором построен трехмерный график исследуе-

мой функции Z(x, y) = x3+2xy + y

2, найдены первые и вторые

частные производные. На рис. 4.5 аналитически найдены ста-

ционарные точки, в которых обращаются в ноль первые частные

Page 74: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

74

производные функции Z(x,y), и выполнена проверка достаточ-

ных условий локальных экстремумов:

0,02

xxxyyyxx ZZZZD - точка локального минимума,

0,0 xxZD - точка локального максимума.

Затем (рис. 4.6) выполнен поиск локальных экстремумов с

помощью стандартных функций MathCAD.

Рис. 4.4. Листинг MathCAD с примером графика функции

двух переменных

Рис. 4.5. Листинг MathCAD с примером аналитического ис-

следования функции двух переменных

Page 75: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

75

Рис. 4.6. Листинг MathCAD с примером нахождения локаль-

ного минимума функции двух переменных

Необходимо обратить внимание на то, что при задании в ка-

честве начального приближения значений x=0, y=0 (стационар-

ная точка, не являющаяся локальным экстремумом) обе стан-

дартные функции дают «ложное» решение. При задании в каче-

стве начального приближения значений x, y, не являющихся ко-

ординатами стационарной точки, стандартные функции работа-

ют «правильно». Найденный локальный минимум совпадает с

тем, что найден аналитическим способом, а функция Maximize

не дает результата, что свидетельствует о неограниченности

функции Z сверху.

Поставим теперь задачу нахождения условного экстремума.

Дополнительные условия, за-

писанные в виде логических

выражений, должны быть до-

бавлены на рабочий лист по-

сле служебного слова Given

(Дано). После этого стандарт-

ным образом вызывается

функция Maximize или

Minimize. Листинг, приве-

денный на рис. 4.7 показывает

решение задачи о функции

двух переменных, для кото-

рой выше решена задача без-

условной оптимизации.

Рис. 5.7. Пример решения ус-

ловной задачи оптимизации

функции двух переменных

Page 76: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

76

В заключение данного раздела заметим, что мы рассмотрели

самые простые задачи оптимизации, связанные с нахождением

экстремумов функций. За пределами нашего внимания остались

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

успешно решены с использованием MathCAD. Некоторые до-

полнительные сведения можно найти в [3, 4, 10].

Page 77: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

77

Глава 5. Численное дифференцирование и интегрирование

5.1. Численное дифференцирование

Численное дифференцирование, т.е. нахождение значений

производных заданной функции в заданных точках x, в

отличие от рассматриваемого в следующем параграфе числен-

ного интегрирования, можно считать не столь актуальной про-

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

аналитическим нахождением производных. Однако имеется ряд

важных задач, для которых численное дифференцирование яв-

ляется единственным способом нахождения производной. Это,

например, поиск производной таблично заданной функции или

дифференцирование функции в процессе численного решения,

когда значения этой функции известны только в узлах сетки.

Кроме того, возможно сильное усложнение задачи при аналити-

ческом дифференцировании функции, и использование числен-

ного подхода упрощает задачу.

Существует несколько способов получения формул числен-

ного дифференцирования, которые в конечном итоге могут при-

вести к одним и тем же формулам. Во-первых, можно аппрок-

симировать таблично заданную функцию каким-либо способом

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

и т.д.) и дифференцировать полученную непрерывную функ-

цию, приближающую исходную. Эта задача рассматривалась

выше. Во-вторых, для вывода формул численного дифференци-

рования можно воспользоваться понятием конечных разностей.

Пусть узлы таблицы xi расположены на равных расстояниях:

, fi – соответствующие значения функции; величину

h называют шагом таблицы. Разности fi+1 – fi называют разно-

стями первого порядка. Эти величины обозначают как разность

вперед (+ fi= fi+1- fi), разность назад (– fi+1 = fi+1 – fi = + fi ) и

центральную разность fi = fi+1 – fi–1. Разности высших поряд-

ков образуют при помощи рекуррентных соотношений

. Используя эти формулы, пер-

вую производную можно определить разными способами:

xfy

ihxxi 0

im

im

im

im ffff 1

111

Page 78: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

78

h

ffxf ii

i

1 , (5.1)

h

ffxf ii

i1

, (5.2)

h

ffxf ii

i2

11

. (5.3)

Геометрически вычисление производной по трем этим фор-

мулам эквивалентно замене касательной в точке B прямыми BС,

AB и AC соответственно и поиску тангенса угла наклона этих

прямых вместо тангенса угла наклона касательной (рис. 5.1).

Рис. 5.1. Геометрическая интерпретация разностного

дифференцирования

Изучим вопрос о порядке точности (аппроксимации) этих

формул. Разложим f(x) в ряд Тейлора в окрестности точки xi.

...62

...,62

32

1

32

1 iiiiiiiiii fh

fh

fhfffh

fh

fhff

Подставив эти разложения в (5.1), получаем

...62

...62

2

32

iii

iiiii

i fh

fh

fh

ffh

fh

fhf

xf

Здесь if – первая производная, которую необходимо найти, а

ii fh

fh

62

2

… – погрешность, с которой вычисляется произ-

водная. Видим, что первый член погрешности имеет порядок h,

xi-1

fi-1

A

BC

касательная

xi xi+1

fi-1fi+1

Page 79: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

79

значит, при измельчении шага сетки погрешность будет умень-

шаться пропорционально h 1. Поэтому говорят, что формула

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

мула (5.2) также имеет первый порядок аппроксимации.

Покажем, что формула центральной разности имеет второй

порядок точности. Подставим в (5.3) разложения для fi+1 и fi–1

...6

2

...6262

2

3232

ii

iiiiiiii

i

fh

f

h

fh

fh

fhffh

fh

fhf

xf

Погрешность вычисления производной пропорциональна h2,

значит формула (5.3) имеет второй порядок аппроксимации.

Основываясь на понятии конечных разностей, можно полу-

чить формулы для аппроксимации производных высших поряд-

ков. Покажем это на примере формулы центральной разности

для аппроксимации второй производной.

2

112

112

2

h

fff

h

ffff

h

ffxf iiiiiiiii

i

.

Можно доказать, что эта формула имеет второй порядок точ-

ности (доказать самостоятельно).

Наконец, третьим способом получения формул численного

дифференцирования является метод неопределенных коэффи-

циентов. Представим приближенно в точке х = х0 k–ю произ-

водную таблично заданной функции в виде линейной комбина-

ции ее значений в узлах

N

iii

k xfCxf1

0)( )()( . (5.4)

где Ci – числовые коэффициенты, которые выберем из условия,

чтобы эта формула была точна для многочлена максимально

высокой степени. Иными словами потребуем, чтобы для функ-

ции

m

j

jj xaxP

0

)( приближенное выражение (5.4) было точ-

ным. Для этого необходимо и достаточно, чтобы для любой сте-

Page 80: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

80

пени коэффициенты при aj были равны. Поскольку

kjkj xkjjjx )1()1()(

, получаем линейную систему

уравнений относительно Ci:

mjxkjjjxC kjN

i

jii ,,1,0,)1()1( 0

1

.

Если m = N–1, то число уравнений равно числу неизвестных.

Можно показать, что определитель такой системы не обращает-

ся в нуль. Очевидно, что m k, N k+1. При этом точность вы-

числения производной имеет порядок O(hm+1–k

), хотя при опре-

деленном положении узлов (обычно это симметричное положе-

ние относительно точки xi) порядок многочлена, а следователь-

но, и точность можно повысить на единицу.

Пример 5.1. Задана функция ]1,0[),sin()( xxxf . Вычис-

лить значение производной на правой границе (в точке x = 1) c

первым и со вторым порядком точности (h = 0,1).

Решение. Для вычисления производной составим таблицу

значений функции

i N N–1 N–2

x 1 0.9 0.8

f 0.841 0.783 0.717

Точное значение производной 540.0)cos()(' NN xxf .

Находим производную по формуле «разность назад»:

581.01.0

783.0841.0)(' 1

h

ffxf NN

N .

Как было показано выше, формула имеет первый порядок точ-

ности. Для вычисления производной со вторым порядком вос-

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

чим x на правой границе через xN. Требуется построить метод

второго порядка, поэтому необходимо использовать три точки

xN , xN–1, xN–2, (xN–2 = xN – 2h, xN–1 = xN – h), тогда

)()()()(' 31221 NNNN xfCxfCxfCxf .

Степень полинома будет m = N – 1

P(x) = a0 +a1x + a2x2 , P(xN) =a1+ 2a2xN

Подставляем P(x) в выражение для )(' Nxf

Page 81: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

81

)()(

)()('2

21032

121102

2222101

NNNN

NNN

xaxaaCxaxaaC

xaxaaCxf

.

Собираем коэффициенты при a0 ,a1, a2 и, учитывая, что эти

коэффициенты должны быть равны в выражении для P’(xN) и

)(' Nxf , получаем СЛАУ.

0)()4(,1)()2(,0 22

12

21321 ChChChChCCC .

Отсюда h

Ch

Ch

C2

13,

2

14,

2

1321 , тогда

.

Видно, что формула второго порядка гораздо точнее формулы

первого порядка.

С помощью MathCAD можно вычислять производные ска-

лярных функций любого количества аргументов, от 0-го до 5-го

порядка включительно. И функции, и аргументы могут быть как

действительными, так и комплексными. Невозможно дифферен-

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

Вычислительный процессор MathCAD обеспечивает превос-

ходную точность численного дифференцирования. При этом

символьный процессор позволяет вычислять производные гро-

моздких функций, поскольку, в отличие от всех других опера-

ций, символьное дифференцирование выполняется успешно для

подавляющего большинства аналитически заданных функций.

Первая производная

Для того чтобы продифференцировать функцию f(x) в неко-

торой точке:

1. Определяем точку x, в которой будет вычислена производ-

ная, например, x:=1.

2. Вводим оператор дифференцирования нажатием кнопки

Derivative (Производная) на панели Calculus (Вычис-

ления) или вводим с клавиатуры вопросительный знак <?>.

3. В появившихся местозаполнителях вводим функцию, зави-

сящую от аргумента x, т.е. f(x), и имя самого аргумента x.

542.01.02

717.0783.04841.03

2

43 21

h

fffxf NNN

N

Page 82: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

82

4. Вводим оператор численного <=> или <> символьного

вывода для получения ответа.

Пример 5.2. На листинге ниже приведен пример численного

и символьного дифференцирования:

Для численного дифференцирования MathCAD применяет

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

лоссальной точностью до 7-8 знака после запятой. Этот алго-

ритм (метод Риддера) описан во встроенной справочной системе

MathCAD, доступной через меню Help (Справка). Погрешность

дифференцирования не зависит от констант TOL или CTOL, в

противоположность большинству остальных численных мето-

дов, а определяется непосредственно алгоритмом.

Производные высших порядков

MathCAD позволяет численно определять производные выс-

ших порядков от 0-го до 5-го включительно. Чтобы вычислить

производную функции f(x) N-го порядка в точке x, нужно проде-

лать те же самые действия, что и при взятии первой производ-

ной, за тем исключением, что вместо оператора производной

необходимо применить оператор N-й производной

(Nth Derivative). Этот оператор вводится с той же панели

Calculus (Вычисления), либо с клавиатуры <Ctrl> + <?>, и со-

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

число N. «Производная» при N = 0 по определению равна самой

функции, при N =1 получается обычная первая производная.

Важно перед оператором дифференцирования не забывать при-

Page 83: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

83

сваивать аргументу функции значение, для которого будет вы-

числяться производная.

Чтобы вычислить производную порядка выше 5-го, следует

последовательно применить несколько раз оператор N-й произ-

водной подобно тому, как вводятся операторы кратного интег-

рирования. Однако для символьных вычислений этого не требу-

ется — символьный процессор умеет считать производные по-

рядка выше 5-го.

Пример 5.3. Рассмотрим образец численного и символьного

вычисления второй производной:

Расчет производных высших порядков производится тем же вы-

числительным методом Риддера, что и расчет первых производ-

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

точность до 7-8 значащих разрядов числа, а при повышении по-

рядка производной на каждую единицу точность падает при-

мерно на один разряд.

Частные производные

С помощью символьного и численного процессоров

MathCAD можно вычислять производные функций любого ко-

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

Чтобы вычислить частную производную, необходимо ввести

оператор производной с панели Calculus (Вычисления) и в

соответствующем местозаполнителе напечатать имя перемен-

ной, по которой должно быть осуществлено дифференцирова-

ние.

Пример 5.4. Символьное и численное вычисление частных

производных в пакете MathCAD выглядит следующим образом:

Page 84: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

84

Как показано в примере, в первой строке определена функ-

ция двух переменных, а в двух следующих строках символьным

образом вычислены ее частные производные по обеим перемен-

ным x и y соответственно. Чтобы определить частную производ-

ную численным методом, необходимо предварительно задать

значения всех аргументов. При этом частные производные выс-

ших порядков рассчитываются точно так же, как и обычные

производные высших порядков.

Также имеется возможность выбора формы записи частной

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

служит лишь более привычной формой представления расчетов.

Для того чтобы изменить вид оператора дифференцирования на

представление частной производной, следует:

1. Вызвать контекстное меню из области оператора дифферен-

цирования нажатием правой кнопки мыши.

2. Выбрать в контекстном меню верхний пункт View

Derivative As (Показывать производную как).

3. В появившемся подменю выбрать пункт Partial

Derivative (Частная производная).

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

выберите в подменю пункт Default (По умолчанию) либо, для

представления в обычном виде — Derivative (Производная).

5.2. Численное интегрирование

Интегрирование функций является составной частью многих

научных и технических задач. Поскольку аналитическое интег-

f x y( ) x2y

cos x( ) y

xf x y( )

2 x

2y

y

x sin x( ) y

yf x y( )

2 x

2y ln x( ) cos x( )

x 1 y 0.1

yf x y( )

0.54

yf x y( )

cos 1( )

Page 85: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

85

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

численного интегрирования.

Математическая постановка задачи: необходимо найти зна-

чение определенного интеграла

b

a

dxxfI )( ,

где a, b – конечны, f(x) – непрерывна на [а, b]. Из математиче-

ского анализа хорошо известна формула Ньютона–Лейбница

для нахождения определенного интеграла c помощью первооб-

разных. Однако первообразную можно найти не для всех функ-

ций, для некоторых элементарных функций первообразной во-

обще не существует. Поэтому строятся формулы приближенно-

го интегрирования, которые называются квадратурными фор-

мулами.

При решении практических задач часто бывает, что интеграл

неудобно или невозможно взять аналитически: он может не вы-

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

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

няют методы численного интегрирования.

Известно, что определенный интеграл численно равен значе-

нию площади фигуры, ограниченной подынтегральной функци-

ей, осью х, прямыми x=a и x=b (рис. 5.2). Общий подход к вы-

числению интеграла численными методами сводится к нахож-

дению этой площади. Чаще всего интервал [а, b] разбивают на

множество меньших интервалов. Находят приблизительно пло-

щади каждой части и потом сумму всех площадей.

Хорошо известно, что для функций, допускающих на проме-

жутке [a, b] конечное число точек разрыва первого рода, такое

значение существует единственно и может быть формально по-

лучено по определению:

))((lim 11

ii

n

ii

nxxfI , (5.5)

где xi — произвольная упорядоченная система точек отрезка

[a, b], а i — произвольная точка элементарного промежутка

[xi–1, xi].

Page 86: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

86

Рис. 5.2. К объяснению геометрического смысла

определенного интеграла

Простейшие квадратурные формулы выводятся непосредст-

венно из определения интеграла, т.е. из представления (5.5). За-

фиксировав некоторое n 1, будем иметь

n

iiii xxfI

11))(( (5.6)

Это приближенное равенство назовем общей формулой прямо-

угольников. Геометрически площадь криволинейной трапеции

приближенно заменяется площадью ступенчатой фигуры, со-

ставленной из прямоугольников, основаниями которым служит

[xi–1, xi], высотами - ординаты .

Рассмотрим ряд наиболее употребительных квадратурных

формул. Условимся в дальнейшем пользоваться равномерным

разбиением отрезка [a, b] на n частей точками xi с шагом

, полагая x0 = a, xi = xi–1 + h, xn = b. При таком разбие-

нии формула (5.6) приобретает вид

n

iiiii xxfhI

11 ],[),( . (5.7)

Теперь дело за фиксированием точек )( if на элементарных

отрезках[xi–1, xi]. Рассмотрим три случая.

if

n

abh

Page 87: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

87

1) Положим i = xi–1. Тогда из (5.7) получаем

1

111 )()(

n

ii

n

ii xfhxfhI . Эта формула называется форму-

лой левых прямоугольников. Ее геометрическая интерпрета-

ция приведена на рис. 5.3.

Рис. 5.3. Геометрическая интерпретация формулы

левых прямоугольников

2) Пусть i = xi. Тогда имеем

n

iixfhI

1

)( .

Это формула правых прямоугольников.

3) Фиксируем )(2

11 iii xx . В результате получим квадра-

турную формулу средних прямоугольников:

n

ii

n

ii

hxfh

hxfhI

1

1

1

)2

()2

( .

Покажем, что эта формула имеет второй порядок точности.

Рассмотрим сначала вычисление интеграла на отрезке [-h/2, h/2],

2/

2/

0)(h

h

hfdxxf ,

где f0 = f(0). Пусть

x

hFFdxxfxF0

21 )2(,)()( ;

2

2

)2()2()(

h

h

hFhFdxxf .

a b x

Page 88: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

88

Разлагая в ряд Тейлора с остаточным членом в форме Лагранжа,

имеем

)(4882

"3

'0

2

021 fh

fh

fh

F ,

где – некоторые точки такие, что 22 hh . Тогда

2),(

24)(

2

2

"3

0

hf

hhfdxxf

h

h

. Для всего интервала [a, b]

формула имеет вид:

bafhab

fhdxxfb

a

n

ii

),(

24

)()( "2

021 .

Таким образом, ошибка численного интегрирования по фор-

муле средних прямоугольников убывает пропорционально квад-

рату шага h, т.е. формула имеет второй порядок точности. Не-

трудно убедится, что погрешность численного интегрирования

по формулам левых и правых прямоугольников убывает лишь

по линейному закону.

Подстановка в интеграл b

a

dxxf )( вместо функции f(x) ее ин-

терполяционного многочлена Лагранжа той или иной степени

приводит к семейству квадратурных формул, называемых фор-

мулами Ньютона–Котеса. Однако использование в этих фор-

мулах многочленов высоких порядков может быть оправдано

только для достаточно гладких подынтегральных функций. Ча-

ще используются квадратурные правила, получающиеся путем

дробления промежутка интегрирования на большое число мел-

ких частей. Интегрирование на каждой из частей производится с

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

Приведем два таких правила – трапеций и Симпсона.

Простейшая формула трапеций получается, если на каждом

отрезке [xi–1, xi] участок кривой (fi–1, fi) интерполировать линей-

ной зависимостью. Эта формула имеет второй порядок точности

и может быть записана в виде

Page 89: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

89

b

a

n

ii

n fff

hdxxf1

1

0

2)( .

Если на каждом отрезке [xi–1, xi, xi+1] участок кривой

(fi–1, fi, fi+1) интерполировать параболой, то придем к формуле

Симпсона, имеющей четвертый порядок точности:

).14223422140()( nfnfnfffffdxxfb

a

Пример 5.4. Вычислить интеграл с помощью метода трапе-

ций

n = 4,

6.3

0.221

2dx

x

xI .

Решение при помощи пакета MathCAD в приведенном ниже

листинге включает задание числа отрезков разбиения n, вычис-

ление шага интегрирования h, задание дискретной переменной i

и массива координат узлов разбиения xi, описание подынте-

гральной функции и расчет значения интеграла по формуле тра-

пеций:

Для проверки можно вычислить интеграл при помощи встро-

енных возможностей MathCAD и убедиться в соответствии зна-

чений:

n 4

h3.6 2

40.4

i 0 n

xi

2 i h

f x( )x 2

1 x2

I h

f x0 f x

n

21

n 1

i

f xi

2.601

Page 90: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

90

.

Оператор интегрирования

Интегрирование устроено в MathCAD по принципу «как пи-

шется, так и вводится». Чтобы вычислить определенный инте-

грал, следует напечатать его обычную математическую форму в

документе. Делается это с помощью панели Calculus (Вычис-

ления) нажатием кнопки со значком интеграла или вводом с

клавиатуры сочетания клавиш <Shift>+<7> (или символа «»,

что то же самое). Появится символ интеграла с несколькими ме-

стозаполнителями, в которые нужно ввести нижний и верхний

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

менную интегрирования: .

Численное и символьное вычисление определенного интеграла

Интегрирование функции двух переменных по разным пере-

менным

:=2

x := 1

2

3.6

xf x( )

d 2.599

0

sin( ) 2x dx

0

sin( ) 2x dx

0

sin( ) 4x dx

0

sin( ) 42.074x d

Page 91: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

91

Использование оператора интегрирования в функции пользо-

вателя

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

равенства или символьного равенства. В первом случае интег-

рирование будет проведено численным методом, во втором – в

случае успеха, будет найдено точное значение интеграла с по-

мощью символьного процессора MathCAD. Ниже показаны оба

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

для небольшого круга подынтегральных функций.

Пример 5.5. Продемонстрируем нахождение интеграла в па-

кете MathCAD численными методами, описанными в разде-

ле 5.2.

В качестве подынтегральной функции выберем f(x)=sin(x),

интервал интегрирования [0,π/2].

Точное решение в этом случае будет равно:

Сначала зададим пространственную сетку xi и вычислим зна-

чения функции в узловых точках yi:

.

Вычислим интегралы по формулам правых прямоугольников

(S_pr), левых прямоугольников (S_l) и трапеций (S_tr):

g 0

x sin x( )

d

i 1 5

g i( )

2

4

6

8

10

St

0

2

xsin x( )

d 1

Page 92: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

92

Сравнение с точным решением результатом помогает оце-

нить погрешность каждого из методов.

Результат численного интегрирования – это не точное, а при-

ближенное значение интеграла, определенное с погрешностью,

которая зависит от встроенной константы TOL. Чем она мень-

ше, тем с лучшей точностью будет найден интеграл, но и боль-

ше времени будет затрачено на расчеты. По умолчанию TOL =

0.001. Для того чтобы ускорить вычисления, можно установить

меньшее значение TOL. Кроме того, пользователь имеет воз-

можность выбирать сам алгоритм численного интегрирования.

Для этого:

1. Щелкните правой кнопкой мыши в любом месте на левой

части вычисляемого интеграла.

2. В появившемся контекстном меню выберите один из четы-

рех численных алгоритмов.

При этом возможны четыре численных метода интегрирова-

ния:

Romberg (Ромберга) – для большинства функций, не содержа-

щих особенностей;

Adaptive (Адаптивный) – для функций, быстро меняющихся

на интервале интегрирования;

Infinite Limit (Бесконечный предел) – для интервалов с

бесконечными пределами;

Singular Endpoint – для интегралов с сингулярностью на

конце. Модифицированный алгоритм Ромберга для функций, не

определенных на одном или обоих концах интервала интегриро-

вания.

Page 93: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

93

Итерационный алгоритм Ромберга (применяется, если по-

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

ния слишком быстро и не обращается на нем в бесконечность).

Его основные идеи:

1. Сначала строится несколько интерполирующих полиномов,

которые заменяются на интервале интегрирования подынте-

гральную функцию f(x). В качестве первой итерации поли-

номы вычисляются по 1, 2 и 4 интервалам. Например, пер-

вый полином, построенный по 1 интервалу, - это прямая ли-

ния, проведенная через две граничные точки интервала ин-

тегрирования, второй – квадратичная парабола и т.д.

2. Интеграл от каждого полинома с известными коэффициен-

тами легко вычисляются аналитически. Таким образом, оп-

ределяется последовательность интегралов от интерполи-

рующих полиномов: I1, I2, I4…. Например, по правилу трапе-

ций I1 = (b – a)(f(a)+f(b))/2 и т.д.

3. Из-за интерполяции по разному числу точек вычисленные

интегралы I1, I2, … несколько отличаются друг от друга.

Причем чем больше точек используется для интерполяции,

тем интеграл от интерполяционного полинома ближе к ис-

комому интегралу, стремясь к нему в пределе бесконечного

числа точек. Поэтому определенным образом осуществляет-

ся экстраполяция последовательности I1, I2, I4…. до нулевой

ширины элементарного интервала. Результат этой экстрапо-

ляции J принимается за приближение к вычисляемому инте-

гралу.

4. Осуществляется переход к новой итерации с помощью еще

более частого разбиения интервала интегрирования, добав-

ления нового члена последовательности интерполирующих

полиномов и вычисления нового (N-го) приближения Ром-

берга JN.

5. Чем больше количество точек интерполяции, тем ближе

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

гралу и, соответственно, тем меньше оно отличается от при-

ближения предыдущей итерации. Как только разница между

двумя последними итерациями JN - J

N-1 становится мень-

Page 94: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

94

ше погрешности TOL или меньше TOLJN, итерации пре-

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

интегрирования.

О расходящихся интегралах

Если интеграл расходится (равен бесконечности), то вычис-

лительный процессор MathCAD может выдать сообщение об

ошибке, выделив при этом оператор интегрирования красным

цветом. Чаще всего ошибка будет иметь тип «Found a number

with a magnitude greater than 10^307» (Найдено число, превы-

шающее значение 10307

) или «Can’t converge to a solution» (Не

сходится к решению), как, например, при попытке вычислить

интеграл

0

1dx

x. Тем не менее, символьный процессор справ-

ляется с этим интегралом, совершенно правильно находя его

бесконечное значение.

Кратные интегралы

Для вычисления кратного интеграла:

1. Вводится, как обычно, оператор интегрирования.

2. В соответствующих местозаполнителях вводится имя первой

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

этой переменной.

3. На месте ввода подынтегральной функции вводится еще

один оператор интегрирования.

4. Точно также вводится вторая переменная, пределы интегри-

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

ный) или следующий оператор интегрирования (если более

чем двукратный) и т.д., пока выражение с многократным инте-

гралом не будет введено окончательно.

Ниже приведен пример символьного и численного расчета

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

вольный процессор вычисляет точное значение интеграла , а

вычислительный определяет его приближенно и выдает в виде

числа 3,142. Пример символьного и численного вычисления

кратного интеграла:

Page 95: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

95

Пример символьного вычисления кратного интеграла:

.

y

xex

2y

2

d

d

y

xex

2y

2

d

d 3.142

a

b

y

1

1

xx y3

d

d1

2b

4

1

2a4

a

b

x

1

1

yx y3

d

d b2

a2

Page 96: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

96

Глава 6. Решение обыкновенных дифференциальных

уравнений

Зачастую при рассмотрении прикладных задач механики,

физики, химии и техники приходится решать обыкновенные

дифференциальные уравнения (ОДУ), представляющие собой

математическое упрощение исходной постановки. ОДУ описы-

вают движение системы взаимодействующих материальных то-

чек, химической кинетики, электрических цепей, моделируют

статический прогиб упругого стержня (сопротивление материа-

лов) и многие другие процессы. Ряд важных задач для уравне-

ний в частных производных также сводится к задачам для ОДУ.

Так бывает, если многомерная задача допускает разделение пе-

ременных, например, задачи на нахождение собственных коле-

баний упругих балок и мембран простейшей формы.

6.1. Задача Коши

6.1.1. Постановка задачи

Требуется найти решение ОДУ первого порядка

yxfdx

dy, . (6.1)

Известно, что общее решение (6.1) содержит произвольную

константу С, т.е. является однопараметрическим семейством

интегральных кривых Cdxyxfxy , .

Для выбора конкретной интегральной кривой следует опре-

делить значение константы С, для чего достаточно задать при

каком–либо значении x = x0 значение

00 yxy . (6.2)

Поэтому задача Коши, или задача с начальными данными,

позволяющая получить единственное решение уравнения (6.1),

формулируется так: найти y(x) - решение уравнения (6.1) с на-

чальным условием (6.2).

В случае точного решения ОДУ мы получаем аналитиче-

ское представление искомой функции. Несмотря на внешнюю

простоту уравнения (6.1) решить его аналитически, т.е. найти

Page 97: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

97

общее решение Cxyy , с тем, чтобы затем выделить из него

интегральную кривую xyy , проходящую через точку

00 , yx , удается лишь для некоторых специальных типов урав-

нений. Поэтому большое значение приобретают приближенные

способы решения начальных задач ОДУ. При численном же

решении мы будем искать приближенное решение в узлах рас-

четной сетки niihxxi ,...,1,0,0 с шагом n

xxh n 0 . Т.е.

вместо непрерывной зависимости y(x) мы найдем приближен-

ные значения в узлах сетки yi=y(xi).

Для построения численных методов решения ОДУ проин-

тегрируем уравнение на отрезке 1, ii xx . Получим

1

,1

i

i

x

x

ii dxyxfyy . (6.3)

Для того чтобы найти все значения iy , нужно каким-то образом

вычислить интеграл, стоящий в правой части (6.3). Применяя

различные квадратурные формулы, будем получать методы ре-

шения задачи (6.1), (6.2) разного порядка точности.

6.1.2. Метод Эйлера

Если для вычисления интеграла в (6.3) воспользоваться

простейшей формулой левых прямоугольников первого порядка

ii

x

x

yxhfdxyxfi

i

,,1

,

то получим явную формулу Эйлера:

iiii yxhfyy ,1 , 1,...,1,0 ni , (6.4)

имеющую первый порядок аппроксимации.

Реализация метода. Поскольку 0000 ,,, yxfyx известны,

последовательно применяя (6.4), определим все yi:

0001 , yxhfyy , 1112 , yxhfyy , ….

Геометрическая интерпретация метода Эйлера (рис. 6.1.):

Page 98: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

98

Пользуясь тем, что в точке 0x известно решение 00 yxy и

значение его производной 000 ,

0

yxfdx

dyxy

xx

, можно за-

писать уравнение касательной к графику искомой функции

xyy в точке 00, yxf : 0000 , xxyxfyy . При достаточно

малом шаге h ордината 0001 , yxhfyy этой касательной,

полученная подстановкой в правую часть значения hxx 01 ,

должна мало отличаться от ординаты решения xy зада-

чи Коши. Следовательно, точка 11, yx пересечения касательной

с прямой 1xx может быть приближенно принята за новую на-

чальную точку. Через эту точку снова проведем прямую

1111 , xxyxfyy , которая приближенно отражает поведе-

ние касательной к xy в

точке 11, xyx . Подстав-

ляя сюда hxx 12 (т.е.

пересечение с прямой

), получим при-

ближенное значение xy

в точке 2x :

1112 , yxhfyy и т.д. В

итоге для i -ой точки по-

лучим формулу Эйлера.

Если в (6.3) использо-

вать формулу правых

прямоугольников, то по-

лучим неявный метод Эйлера

111 , iiii yxhfyy , 1,...,1,0 ni . (6.5)

Этот метод называют неявным, поскольку для вычисления

неизвестного значения 11 ii xyy по известному значению

ii xyy требуется решать уравнение, в общем случае нели-

Рис. 6.1. Геометрическая интерпре-

тация метода Эйлера

Page 99: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

99

нейное. Неявный метод Эйлера также имеет первый порядок

аппроксимации.

6.1.3. Модифицированный метод Эйлера

В данном методе вычисление 1iy состоит из двух этапов:

iiii yxhfyy ,~1 ,

111~,,

2 iiiiii yxfyxf

hyy . (6.6)

Данная схема называется также методом предиктор-

корректор. Это английское название, означающее «предсказать-

исправить». Действительно, на первом этапе, совпадающим с

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

первым порядком точности, а на втором этапе это значение кор-

ректируется, так что в результате схема имеет второй порядок

точности.

6.1.4. Методы Рунге-Кутты

Идея построения явных методов Рунге-Кутты p -го порядка

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

xy по

формуле вида hyxhyy iiii ,,1 , где

q

n

innii hkchyx

1

,,

iii yxfhk ,1 ,

hkyhxfhk iii

i12122 , ,

hkhkyhxfhk iiii

i23213133 , ,

hkhkyhxfhk iqqq

iqiqi

iq 11,11 ..., .

Здесь , , 0n nj j n q – некоторые фиксированные числа

(параметры), которые подбирают таким образом, чтобы полу-

чить нужный порядок аппроксимации p. Как правило, для каж-

дого p существует не одна схема Рунге-Кутты порядка p, а целое

Page 100: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

100

параметрическое семейство. Так, схемы Рунге-Кутта второго

порядка точности образуют однопараметрическое семейство

.1

2,

2,,

21

2

1

11

iiii

iii

iii

i

akkahyy

ka

hy

a

hxfkyxfk

(6.7)

Выделим из семейства методов (6.7) два наиболее простых и

часто используемых частных случая. При 21a получаем

формулы

..210,2

,,,

21

12

1

1

,.,,ikkh

yy

hkyhxfkyxfk

iiii

iii

iii

i

, (6.8)

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

Эйлера (6.6). При a=1 выводим новый простой метод

..210,

2,

2,,

21

121

,.,,ihkyy

kh

yh

xfkyxfk

iii

iii

iii

i

,

который называется методом средней точки.

Схема Рунге-Кутта четвертого порядка точности. При p=4

можно получить один из вариантов метода:

,...2,1,0,226

,,,2

,2

,2

,2

,,

43211

342

3

121

ikkkkh

yy

hkyhxfkhk

yh

xfk

hky

hxfkyxfk

ii

iiii

iiii

(6.9)

6.1.5. Функции MathCAD для решения ОДУ

Стандартные функции

В пакете MathCAD существуют инструменты для решения

ОДУ, основанные на применении различных численных мето-

дов. Для решения задачи Коши используется встроенная проце-

Page 101: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

101

дура с названием Odesolve. При этом стоит учитывать неко-

торые ограничения, налагаемые на вид ОДУ: член с высшей

производной должен быть линейным и количество начальных

условий должно равняться порядку ОДУ.

При использовании данной процедуры необходимо создать

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

функция Odesolve. Блок начинается с задания самого ОДУ и

начальных условий, чему предшествует ключевое слово Given.

Пример 6.1. Дано ОДУ первого порядка, для него поставлена

задача Коши:

, .

Необходимо найти реше-

ние на заданном интервале.

Блок решения будет выгля-

деть, как показано на рис. 6.2.

Для данной задачи сущест-

вует аналитическое решение,

которое просто находится:

.

При создании блока реше-

ния необходимо использовать

логическую операцию равенства (из панели «Булева алгебра»)

для определения самого ОДУ и его начальных условий (жирное

равенство). В данном примере в качестве входных параметров

Odesolve используются: t — аргумент функции, b — правая

граница интервала по t, и 10 — число шагов. Последний пара-

метр указывать не обязательно, в этом случае пакет сам выберет

оптимальное число разбиений отрезка.

Рис. 6.2. Пример использо-

вания ПФ Odesolve

Given

tu t( )

d

d

3 t2

u t( )

u 1( ) 1

u Odesolve t b 10( )

Page 102: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

102

По умолчанию для

решения ОДУ использу-

ется метод Адамса [7] или

его модификация BDF

для случая жестких сис-

тем, о которых будет рас-

сказано ниже. Также для

решения можно исполь-

зовать метод Рунге-Кутта

четвертого порядка точ-

ности с постоянным или

адаптивным шагом. Имеется

опция выбора метода Радау

для решения жестких систем.

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

кой метод используется в текущий момент, необходимо нажать

правой кнопкой мыши на операторе Odesolve, и выпадающее

меню отобразит доступные опции решателя.

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

которую можно визуализировать графически и сравнить с точ-

ным решением, выписанном выше, как показано на рис. 6.3.

Здесь решение получено с помощью метода Рунге-Кутты с по-

стоянным шагом.

Пользовательские функции

Для реализации методов решения задачи Коши, не включен-

ных в стандартные функции MathCAD, например, метода Эйле-

ра, удобно воспользоваться возможностями программирования

в среде MathCAD. При этом создаваемая процедура-функция

(ПФ) будет работать для различных входных условий (границ

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

ОДУ), и может быть отлажена (протестирована) на примере

известного аналитического решения с тем, чтобы

использоваться в дальнейшем для более сложных уравнений.

Пример такой ПФ, реализующей метод Эйлера, приведен на

рис. 6.4.

Рис. 6.3. Сравнение точного

(сплошная линия) и приближен-

ного (маркеры) решения для

примера 6.1

0 10 20 30 400

100

200

300

400

u x( )

ut x( )

x

Page 103: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

103

Входными условиями

для этой ПФ с названи-

ем Euler служат границы

a и b интервала измене-

ния аргумента (для

уравнения (6.1) это пе-

ременная x), количество

разбиений отрезка и на-

чальное условие y0 (6.2).

В первой строке проце-

дуры-функции задается

шаг изменения аргумен-

та h, во второй строке —

начальное условие, т.е.

значение искомой функции в первой точке. Отметим, что опера-

тор ORIGIN:=1 в этом случае определен выше в документе, для

совпадения индексов массива и вычисляемой дискретной функ-

ции. Если ORIGIN равен 0 (что происходит по умолчанию), не-

обходимо изменить цикл программы соответствующим образом.

В первом операторе тела цикла for, где переменная цикла соот-

ветствует номеру элемента массива искомой функции, вычисля-

ется текущее значение аргумента xi. Понятно, что аргумент в

цикле будет меняться от a до b-h с шагом h. Затем используется

формула для расчета искомой функции в точке xi по методу Эй-

лера (6.4). При этом функция f(x,u), стоящая в правой части

ОДУ (6.1), должна быть предварительно описана. В результате

работы процедуры-функции Euler формируется вектор-

столбец u, который и является выходным параметром ПФ.

Используя аналогичный алгоритм, можно запрограммировать

любой из вышеприведенных методов решения задачи Коши.

Пример 6.2.

Как и в примере 6.1, задано ОДУ первого порядка, для него

поставлена задача Коши:

,

Необходимо найти решение при помощи метода Эйлера.

Рис. 6.4. Процедура-функция,

реализующая метод Эйлера

Euler a b n y0( ) hb a

n 1

u1

y0

xi

a i 1( ) h

ui 1

ui

h f xi

ui

i 1 n 1for

xn

b

u

Page 104: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

104

Листинг программы приведен ниже на рис. 6.5.

a 1

Рис. 6.5. Листинг документа MathCAD для решения примера

6.2. методом Эйлера

Процедура-функция

analyt вычисляет ана-

литическое решение

данного ОДУ. Здесь же

приведена ПФ Euler,

рассмотренная выше, с

небольшими видоизме-

нениями, сделанными

для удобства вывода ре-

зультатов. Результат

расчета по методу Эйле-

ра и точное решение за-

писываются в перемен-

ные a1 и b1, соответственно. В последующем можно просмот-

реть их числовые значения, или, что более наглядно, построить

график, как показано на рис. 6.6. Пунктирной линией приведено

точное решение, сплошной линией — численное решение по

методу Эйлера. Можно видеть, что ошибка растет по мере уве-

личения аргумента. Причины этого были описаны выше.

ORIGIN 1

f t u( )3t

2

u

Euler a b n y0( ) hb a( )

n 1

u1

y0

xi

a i 1( ) h

ui 1

ui

h f xi

ui

i 1 n 1for

xn

b

augment x u( )

analyt a b n y0( ) hb a( )

n 1

u1

y0

xi

a i 1( ) h

ui

2 xi

3 1

i 1 nfor

augment x u( )

b 20 n 11 y0 1

a1 Eulera b n y0( ) b1 analyt a b n y0( )

Рис. 6.6. Сравнение точного (штрихо-

вая линия) и приближенного (сплош-

ная линия) решений примера 6.2

0 5 10 15 200

50

100

150

a1i 2

b1i 2

a1i 1 b1i 1

Page 105: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

105

6.1.6. Задача Коши для систем ОДУ и ОДУ высших порядков

Рассмотренные выше методы решения задачи Коши для од-

ного уравнения могут быть использованы также для решения

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

ференциальных уравнений более высокого порядка.

Пусть задана задача Коши для системы двух уравнений пер-

вого порядка:

,,,

,,,

zyxdx

dz

zyxdx

dy

(6.10)

для которой известны начальные условия 0000 , zxzyxy .

Обобщим формулы явного метода Эйлера (6.4) для этой систе-

мы, записав схему для каждого уравнения (6.10):

iiiii zyxhyy ,,1 ,

iiiii zyxhzz ,,1 .

Модифицированный метод Эйлера (6.6) примет вид:

,,,~

,,,~

1

1

iiiii

iiiii

zyxhzz

zyxhyy

,~,~,,,2

,~,~,,,2

111

111

iiiiiiii

iiiiiiii

zyxzyxh

zz

zyxzyxh

yy

а схема Рунге-Кутта четвертого порядка точности (6.9):

,llllh

iziz

,kkkkh

iyiy

43222161

43222161

Page 106: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

106

.hli,zhkih,yixψ,lhli,zhkih,yixk

,hl

i,zhk

i,yh

ixψ,lhl

i,zhk

i,yh

ixk

,hl

i,zhk

i,yh

ixψ,lhl

i,zhk

i,yh

ixk

,i,zi,yixψ,li,zi,yixk

334334

2

2

2

2

232

2

2

2

23

2

1

2

1

222

1

2

1

22

21

Вычисления приближенного решения проводятся путем после-

довательного применения этих формул для каждого узла рас-

четной сетки.

Также аналогичным способом можно решить ОДУ высокого

порядка. Например, рассмотрим задачу Коши для уравнения

второго порядка

00002

2

,,,, zxdx

dyyxy

dx

dyyxf

dx

yd

.

Введем обозначение dx

dyxz . Тогда исходная задача Коши для

уравнения второго порядка сводится к следующей задаче для

системы двух ОДУ первого порядка:

.,

,,,

,

0000 zxzyxy

zyxfdx

dz

zdx

dy

Можно заметить, что эта запись эквивалентна системе (6.10) при

zzyx ,, и zyxfzyx ,,,, . Таким образом, полученная

система решается вышеописанным способом при помощи одно-

го из методов решения задачи Коши.

Пример 6.3. Найти решение задачи Коши:

00,10,22

2

dx

dyyxxy

dx

dy

dx

yd на отрезке 1,0 .

Page 107: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

107

Для данного ОДУ известно точное решение:

223 xxeexy xx .

Проверим, что точное решение удовлетворяет уравнению:

xxexedx

ydxxexedx

dy 22

2,12 ,

0100,1200030

2231222

22

2

edx

dyey

xxxxexexxexexxexe

xydx

dy

dx

yd

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

енными средствами MathCAD и при помощи пользовательских

функций.

6.1.7. Решение ОДУ 2-го порядка и систем ОДУ в MathCAD

Решение ОДУ второго порядка

Для решения ОДУ высокого порядка также применяется

функция Odesolve, с созданием аналогичного блока решения.

Для примера 6.3 блок расчета и результат в виде графика пред-

ставлены на рис. 6.7.

При необходимости реализации метода, не являющегося

стандартным, необходимо следовать процедуре, описанной вы-

ше, для решения систем ОДУ первого порядка. Для этого вве-

дем функцию dx

dyxz и получим следующую задачу Коши

для системы двух ОДУ первого порядка:

.00,10,2, zyxyzdx

dzz

dx

dy (6.11)

Page 108: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

108

Стандартные функции для решения систем ОДУ

Систему (6.11) можно решить при помощи метода Рунге-

Кутты (rkfixed или Rkadapt) или Булирша-Штера

(Bulstoer). Принципиальным отличием от решения одного

ОДУ является использование векторов в качестве входных и

выходных условий в ПФ.

С целью перехода к записи в обозначениях MathCAD, пере-

пишем (6.11), обозначив функции y и z через u1 и u2, элементы

вектора решения. Тогда система примет вид

xuudx

duu

dx

du 1222,2

1 и

.002

,101

u

u

Из правых частей системы составим вектор D, а из началь-

ных значений — вектор u0. Поскольку наша система состоит из

двух уравнений, то и векторы будут иметь по два элемента.

Пример решения системы (6.11) при помощи метода Рунге-

Кутты с постоянным шагом представлен на рис. 6.8. Здесь опи-

саны вектор правых частей D и вектор начальных данных u0, а

зетем получен вектор решения u.

Рис. 6.7. Решение ОДУ второго порядка из примера 6.3 средст-

вами MathCAD

0 0.2 0.4 0.6 0.8 10.8

0.85

0.9

0.95

1

u t( )

t

Page 109: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

109

Входными параметрами

для ПФ rkfixed в данном

примере служит вектор на-

чальных данных u0, начало

отрезка 0 и конец отрезка 1,

количество разбиений отрезка

10 и вектор правых частей

системы. Результатом являет-

ся матрица u, состоящая из

трех столбцов — аргумент,

первая неизвестная функция,

вторая неизвестная функция — и 11 строк, поскольку заданное

число разбиений 10. Понятно, что решение для первой искомой

функции должно совпадать с решением на рис. 6.7.

Пользовательские функции для решения систем ОДУ

Приведем формулы для решения системы (6.11) с помощью

вышеописанных методов. Конечно-разностное представление

будет иметь вид:

iii hzyy 1 ,

iiiii xyzhzz 21 ,

0,1 00 zy ,

для модифицированного метода Эйлера:

iiiii

iii

xyzhzz

hzyy

2~

~

1

1

,

,~~222

,~

2

1

1111

11

hxx

xyzxyzh

zz

zzh

yy

ii

iiiiiiii

iiii

и четырехэтапного метода Рунге – Кутты:

Рис. 6.8. Листинг решения

системы (6.11) с помощью

стандартной ПФ

Page 110: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

110

,21,1

43222161

43222161

ixiyizlizk

llllh

iziz

kkkkh

iyiy

,22

12122,

21

2h

ixhk

iyhl

izlhl

izk

.3324,34

,22

22223,

22

3

hixhkiyhlizlhlizk

hix

hk

iyhl

izlhl

izk

Программа для решения примера 6.3 методом Эйлера приве-

дена на рис. 6.9.

Рис. 6.9. Листинг решения системы (6.11) с помощью пользова-

тельской ПФ, реализующей метод Эйлера

g x y z( ) 2 z y x

Euler_systa b N u0( ) ORIGIN 1

hb a

N 1

u1 1 u01

u1 2 u02

xi a i 1( ) h

u i 1( ) 1 ui 1 h ui 2

u i 1( ) 2 ui 2 h g xi ui 1 ui 2

i 1 N 1for

xN b

augmentx u( )

u01

0

A1 Euler_syst0 1 N u0( ) i 1 N

Page 111: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

111

Здесь используется ПФ Euler_syst, входными данными в

которую служат границы отрезка, число разбиений отрезка и

вектор начальных данных. Выходным результатом является

объединенная матрица, состоящая из вектора значений аргумен-

та и матрицы решений. Процедура расчета решения аналогична

ПФ Euler, только для системы число расчетов увеличивается

пропорционально числу ОДУ в системе.

6.1.8. Жесткие ОДУ

До сих пор мы имели дело с ОДУ, которые надежно реша-

лись явными численными методами Рунге-Кутты. Однако име-

ется класс так называемых жестких (stiff) систем ОДУ, для кото-

рых явные методы практически не применимы, поскольку их

решение требует исключительно малого значения шага числен-

ного метода. Рассмотрим пример такой жесткой задачи.

Пример 6.4. Решить задачу Коши

y' = –100y + 100, y(0) = 2

Точным решением задачи является функция y = 1+e–100x

,

имеющая очень большой градиент вблизи точки x=0. Действи-

тельно, y=2 при x=0 (в силу начальных данных), однако уже при

малых положительных значениях x решение близко к своему

асимптотическому значению y = 1. Получим численное решение

этой задачи явным методом Эйлера (6.4) с шагом h = 0,02.

2,1,...,1,0,21001001 01 yniyhyhy iii .

Решение будет представлять собой последовательность

...,006.0,204.0,002.0,20 yyyy

что не соответствует точному. При h = 0.01 первая же вычис-

ленная точка y1 = 1 попадает на асимптоту решения, и после-

дующие вычисления не изменяют значения приближенного ре-

шения. Существенно более мелкий шаг, например h = 0.001, по-

зволит получить вполне удовлетворительное соответствие меж-

ду приближенным и точным решением. Однако вычисления с

таким мелким шагом потребуют больших вычислительных за-

трат. ...,81.1002.0,9.1001.0,20 210 yyyyyy

Page 112: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

112

Воспользуемся неявным методом Эйлера:

2,1,...,1,0,1001

10001

yni

h

yhy i

i

с шагом h = 0.1. Получим последовательность

...,0007.13.0,008.12.0,091.11.0,20 yyyy

Даже при очень крупном шаге h = 0.99 приближенное реше-

ние, полученное неявным методом Эйлера, получается качест-

венно правильным. ...,0001.1,01.1,2 210 yyy

Данный пример показывает, что получить приближенное реше-

ние данной задачи гораздо рациональнее с помощью неявного ме-

тода Эйлера.

В приведенном выше примере коэффициенты уравнения раз-

личаются на порядки, причем коэффициент при старшей произ-

водной меньше остальных. Рассмотрим уравнение

0)0(,0,1,0, yyxydx

dy , (6.12)

с точным решением xeyy

0 . Поскольку при <0 точное реше-

ние является убывающим, для численного решения должна вы-

полнятся цепочка неравенств

011 ... yyyy iii ,

известных из теории разностных схем как принцип максимума.

Методы, решения которых удовлетворяют этим условиям, назы-

ваются А-устойчивыми методами.

Запишем для уравнения (6.12) явный метод Эйлера и двух-

этапный метод Рунге-Кутты.

iiiii yyhyhyy 11 1

iiiiii yyhhhyyhyy 222

1 212 .

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

каждое yi через предыдущее, тогда

2,1,...,2,1,0,01

1 kiyy i

i k

Для выполнения принципа максимума 0

1

1yy i

i k

необходимо

и достаточно, чтобы выполнялось условие 10 k . Отсюда

Page 113: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

113

сразу следуют ограничения на шаги интегрирования для явных

методов. Например, для явного метода Эйлера 1h , для

двухэтапного метода Рунге-Кутты 2h .

Рассмотрим теперь простейший неявный метод Эйлера для

решения уравнения (6.12):

iiiii yhyyhyy 111 .

Можно видеть, что условие 10 выполняется для любых ,

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

метод Эйлера не имеет ограничения по на шаг интегрирова-

ния и является A–устойчивым. Неявный метод Эйлера может

быть обобщен на систему жестких ОДУ.

6.1.9. Решение жестких ОДУ в пакете MathCAD

Решение жестких систем ОДУ в пакете MathCAD можно

осуществить с помощью встроенной функции Stiffb (y0, t0, t1, M, F, J)

где y0 — вектор начальных значений в точке t0; t0, t1 — началь-

ная и конечная точка расчета; M — число шагов численного ме-

тода; F — векторная функция F(t, y) размера 1×N (N — размер-

ность системы), задающая правую часть системы ОДУ; J —

матричная функция J(t, y) размера N×(N+1), составленная из

вектора производных функции F(t, y) по t (правый столбец) и ее

якобиана (N левых столбцов). Решение выдается в виде матри-

цы.

Далее показано решение жесткой системы ОДУ в

MathCAD. Пусть задана система ОДУ первого порядка с на-

чальными условиями

132

13

212

01

212

00

10

10101.0

101.0

ydx

dy

yyyydx

dy

yyydx

dy

,

0

0

10y

при x0=0 (6.13)

Page 114: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

114

Видно, что коэффициенты при слагаемых в правой части

данной системы имеют сильно различающиеся порядки. Жест-

кость системы характеризуется матрицей Якоби (якобианом)

данной системы, т.е. матрицей, составленной из частных произ-

водных правой части по y0, y1 и y2. Чем ближе определитель

матрицы Якоби к нулю, тем жестче система. Используя функ-

ции MathCAD, найдем якобиан системы ОДУ с начальными

данными (6.13) при помощи средств пакета:

F x y( )

0.1 y0

100 y1

y2

0.1y0

100 y1

y2

1000y1

1000y1

,

y0

1

0

0

J x y( )

tF t

y0

y1

y2

0

tF t

y0

y1

y2

1

tF t

y0

y1

y2

2

tF x

t

y1

y2

0

tF x

t

y1

y2

1

tF x

t

y1

y2

2

tF x

y0

t

y2

0

tF x

y0

t

y2

1

tF x

y0

t

y2

2

tF x

y0

y1

t

0

tF x

y0

y1

t

1

tF x

y0

y1

t

2

Получим Якобиан вида

. Первый столбец матрицы J – это вектор производных функции

F(x, y

) по x, а три правых столбца - якобиан системы (6.13).

J x y( )

0

0

0

0.1

0.1

0

100 y2

100 y2 1000

1000

100 y1

100 y1

0

Page 115: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

115

Теперь воспользуемся функцией Stiffb для получения реше-

ния: D:=Stiffb(y0,0,50,200,F,J).

Графики функций y0(x), y1(x) и y2(x), составляющих вектор

полученного решения, представлен на рис. 6.11.

Для решения этого же примера с помощью методов Рунге-

Кутты потребовался бы шаг на два порядка меньше, чем при ис-

пользовании функции Stiffb.

6.2. Краевая задача для ОДУ второго порядка

6.2.1. Постановка краевой задачи

Дано дифференциального уравнения второго порядка

],[),()()( battfutgutpu . (6.14)

Здесь )(),(),( tftgtp заданные функции коэффициентов.

Уравнение можно свести к системе двух ОДУ первого порядка:

)()()(),,(

),,(

tfutgvtpvutgv

vvutfu. (6.15)

Для определения единственного решения необходимо задать два

дополнительных условия на искомую функцию u(t). Если оба

условия заданы в одной точке t=t0, то мы имеем задачу Коши,

которая может быть решена методами, описанными в предыду-

щем разделе. Допустим теперь, что два дополнительных усло-

вия поставлены в разных точках: x=a и x=b:

Рис 6.11 Приближенное решение жесткой системы ОДУ

0 10 20 30 40 500

0.5

11

0

y0

103

y1

y2

47.50 x

Page 116: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

116

Bbumbum

Aaukauk

)()(

)()(

21

21, (6.16)

где A, B, k1, k2, l1, l2 – заданные константы. Задача (6.14), (6.16)

называется краевой, для приближенного решения которой ис-

пользуют методы:

конечных разностей;

сведение краевой задачи к задаче Коши (стрельбы, диф-

ференциальной прогонки, редукции);

балансов (конечных объемов);

коллокации;

проекционные (Галеркина);

вариационные (наименьших квадратов, Ритца);

проекционно-сеточные (конечных элементов).

Ниже рассмотрим некоторые из перечисленных методов.

6.2.2. Конечно–разностный метод

Введем на отрезке [a, b] разностную сетку (t0, t1, t2, ..., tM),

ti=a+ i, i=0, 1,..., M, =(b–a)/M, M – число точек разностной

сетки (параметр задачи). Вместо точного решения u(t) будем

отыскивать приближенное решение в узлах разностной сетки:

yi=y(ti). Используя формулы приближенного дифференцирова-

ния: ,2

)(,2

)( 11

2

11

ii

iiii

i

yytu

yyytu заменим исход-

ное уравнение и краевые условия разностной схемой:

.

,

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

)(2

121

1201

11

2

11

Byy

mym

Ayy

kyk

Mitfytgyy

tpyyy

MMM

o

iii

ii

iiii

В

итоге получили следующую систему M+1 линейных алгебраи-

ческих уравнений на вектор неизвестных (y0, y1, y2, ..., yM): –С0y0

+B0 y1 =F0

Page 117: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

117

Ai yi–1 – Ciyi + Biyi+1= Fi, i=1, 2,..., M–1

AMyM–1–CM yM = FM

где Ci=2–g(ti)2, Ai= 1–p(ti) Bi=1+p(ti) Fi =

2f(ti),

C0 =k2–k1, B0= k2, F0=A CM =m2+m1, AM= m2, FM=–B Выпишем систему в матричном виде:

M

M

M

M

MM

MMM

F

F

F

F

F

y

y

y

y

y

CA

BCA

BCA

BCA

BC

1

2

1

0

1

2

1

0

111

222

111

00

......

0....00

...00

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

0...0

0...0

0...00

.

Поскольку матрица СЛАУ имеет трехдиагональный вид, то сис-

тема решается методом прогонки, описанным в главе 2.

Метод прогонки является точным методом решения СЛАУ,

следовательно, погрешность в приближенное решение вносится

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

конечно-разностными соотношениями. Оценку погрешности

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

формулы приближенного дифференцирования (центральная

разность для первой производной и симметричная аппроксима-

ция для второй производной) имеют второй порядок точности. В

то же время при замене краевых условий (6.15) на разностные

соотношения в приближенное решение вносится погрешность

порядка (именно такую погрешность имеют формулы раз-

ность «вперед» и разность «назад»). Следовательно, суммарная

погрешность аппроксимации уравнения и краевых условий бу-

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

условия не входит производная, т.е. k2=0, l2=0, то краевые усло-

вия для приближенного решения выполняются точно, и тогда

метод имеет погрешность порядка τ2

6.2.3. Метод стрельбы

Этот метод основан на сведении краевой задачи к задаче Ко-

ши для системы (6.14). Пусть краевые условия имеют вид:

Page 118: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

118

u(a)=u0, u(b)=u1.

Для того чтобы свести исходную краевую задачу к задаче

Коши, необходимо в точке t=a задать дополнительное краевое

условие u(a)=v0. Вели-

чина v0 имеет геомет-

рический смысл тан-

генса — угла наклона

касательной к решению

в начальной точке.

Графическая иллюст-

рация метода стрельбы

приведена на рис. 6.11.

Задачу Коши для

системы (6.14) можно

решить, например, ме-

тодом Рунге-Кутты.

Поскольку решение задачи Коши зависит от выбора , можно

записать: u=u(t,). Требуется подобрать значение , обеспечи-

вающее «попадание», т.е. выполнение условия u(t,)=u1. Понят-

но, что при произвольном выборе полученное решение может

не удовлетворять краевому условию на правом конце отрезка

t=b. Может быть получено, что u(t,1)t=b=B1>u1 («перелет») или

u(t,1)t=b=B2<u1 («недолет») (рис. 6.11). Задачу подбора нужно-

го угла можно рассматривать как решение нелинейного алгеб-

раического уравнения u(t,)t=b=u1, особенностью которого яв-

ляется то, что F(x), определяющая нелинейное уравнение, не за-

дана явно, а определен только способ нахождения u(t,)t=b.

6.2.4. Решение краевой задачи конечно-разностным методом в

пакете MathCAD

Рассмотрим реализацию метода конечных разностей в среде

MathCAD на примере ОДУ 2-го порядка вида (6.14):

]1,0[,02cos)( xtuuttgu

с краевыми условиями , .

x

u

a b

u(t,1)

u0

B1

u(t,2)

u(t,)

2

1

B2

u1

Рис. 6.12. Иллюстрация метода

стрельбы

Page 119: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

119

Процедура-функция, реализующая вышеописанный метод,

представлена на рис. 6.13. Входными параметрами ПФ kr слу-

жат число разбиений отрезка M, начало и конец отрезка a и b, и

вектор начальных данных u0.

Алгоритм ПФ включает вычисление шага сетки (tau), в пер-

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

гональной матрицы A, B, C и F, описанные в параграфе 6.2.1.

Затем вычисляются прогоночные коэффициенты α и β и далее

реализуется обратный ход методы прогонки (см. главу 2), где

вычисляются значения искомой функции в заданных точках

сетки. Выходными данными является массив y решения ОДУ.

Для данной задачи имеется точное решение вида

, .

Рис. 6.13 Листинг процедуры-функции, реализующей конечно-

разностный метод решения краевой задачи

ut t( ) cos sin t( )( ) C1sin sin t( )( )C1

10 cos sin 1( )( )

sin sin 1( )( )

kr M a b( ) taub a

M

ti

a i tau

aai

1 p ti

tau

2

bbi

1 p ti

tau

2

cci

2 g ti tau

2

ffi

f ti tau

2

i 0 Mfor

al1

0

bet1

1

ali 1

bbi

cci

ali

aai

beti 1

aai

beti

ffi

cci

ali

aai

i 1 M 1for

yM

10

i M 1

yi

ali 1

yi 1

beti 1

i i 1

i 1while

y

kr M a b( ) taub a

M

ti

a i tau

aai

1 p ti

tau

2

bbi

1 p ti

tau

2

cci

2 g ti tau

2

ffi

f ti tau

2

i 0 Mfor

al1

0

bet1

1

ali 1

bbi

cci

ali

aai

beti 1

aai

beti

ffi

cci

ali

aai

i 1 M 1for

yM

10

i M 1

yi

ali 1

yi 1

beti 1

i i 1

i 1while

y

Page 120: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

120

Используя точное решение, можно вычислить погрешность

приближенного решения

в каждой точки заданно-

го интервала и отобра-

зить ее графически. Для

M=10 график показан на

рис. 6.14. Видно, что на

концах отрезка, где из-

вестны краевые условия,

погрешность равна ну-

лю, и достигает макси-

мума к середине интер-

вала, но значение его

невелико.

6.2.5. Метод коллокаций

Запишем краевую задачу для ОДУ второго порядка в опе-

раторном виде:

tfLu , Aaul 0 , Bbul 1 , (6.17)

где tqdt

dtp

dt

dL

2

2

, dt

dkkl 210 ,

dt

dmml 211 .

Зададим на [a, b] некоторую систему базисных функций

0(t), 1(t), ...,n(t), таких, что 0(t) удовлетворяет краевым усло-

виям Aal 00 , Bbl 01 , а остальные k(t) удовлетворяют од-

нородным краевым условиям 00 al k , 01 bl k , k = 1,...,n.

Представим приближенное решение задачи (6.17) в виде линей-

ной комбинации базисных функций:

tatatatty nnn ...22110 (6.18)

с неизвестными пока коэффициентами a1, a2, ..., an. При этом

yn(t) при любых значениях a1, a2, ..., an удовлетворяет краевым

условиям. Подействуем на (6.18) оператором L. Функция

k

n

kknn LatftLtftLyaaat

1

021 ,...,,,

Рис. 6.14. Погрешность прибли-

женного решения краевой задачи

методом конечных разностей

0 0.2 0.4 0.6 0.8 10

1 103

2 103

3 103

4 103

yy i ut ti

ti

Page 121: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

121

называется невязкой уравнения. Если =0, то yn(t) – точное ре-

шение задачи (6.17). Подберем параметры a1, a2, ..., an так, чтобы

невязка была минимальной.

Зафиксируем на [a, b] n точек t1, t2, ..., tn, называемых точ-

ками коллокации, и потребуем, чтобы в этих точках

0,...,,, 21 naaat . Получается система n линейных алгебраи-

ческих уравнений

1011122111 ... tLtftLatLatLa nn

2022222211 ... tLtftLatLatLa nn

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

nnnnnnn tLtftLatLatLa 02211 ... ,

решение которой дает a1, a2, ..., an. Между точками коллокации

0,...,,, 21 naaat , и поэтому решение будет приближенным.

Заметим, что на выбор точек tj никаких условий не накладыва-

ется и их можно сгущать в предполагаемых местах больших

градиентов решения. Это позволяет получить хорошую точ-

ность при небольшом количестве точек коллокации.

6.2.6. Вариационные методы

Вариационное исчисление — это раздел математики, кото-

рый изучает задачи на нахождение экстремумов функционалов.

Примером функционала является, например интеграл

1

0)()( dxxyxyI ,

значение которого зависит от того, какая функция в него под-

ставлена: ,)( xxy то 2

1)( xyI , ,)( 2xxy 3

1)( xyI и т.д.

Функционалы и вариационные принципы широко использу-

ются в механике и физике (принцип наименьшего действия Га-

мильтона). Каждому линейному уравнению

fLu , (6.19)

где L — положительно определенный оператор, можно поста-

вить в соответствие функционал энергии

ufuLuuJ ,2),()( . (6.20)

Page 122: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

122

Доказано, что если функция u является решением уравнения

(6.19), то на ней функционал (6.20) достигает экстремума, и на-

оборот, функции, поставляющие экстремум функционала (6.20)

являются решениями (6.19). Существуют также другие функ-

ционалы, связанные с уравнением (6.19), например,

),()( fLufLuuI ,

представляющий собой квадрат нормы невязки уравнения.

Таким образом, вместо того, чтобы искать решение уравне-

ния, можно отыскивать функции, на которых тот или другой

функционал достигает экстремума.

Пример 6.5.

Рассмотрим задачу о шарнирно опертой по концам балке, на-

ходящейся под действием равномерно распределенной нагрузки

Q(x). Дифференциальное уравнение, описывающее этот про-

цесс, имеет вид

)()(

2

2

xQdx

xud . (6.21)

Будем искать приближенное решение v в виде комбинации n

линейно-независимых базисных функций xi

:

n

iii xcxv

1

. (6.22)

где ic - неизвестные коэффициенты, которые должны быть оп-

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

нормы невязки и потребуем, чтобы он был минимален

b

adxQ

dx

vdvG min

2

2

2. (6.23)

Подставим (6.22) в (6.23):

b

a

n

iii

dxQdx

xcdvG

2

21

2 .

Page 123: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

123

Поскольку искомые коэффициенты не зависят от x, можно

вынести их из-под знака дифференцирования, и переписать вы-

ражение в виде

b

adxQ

b

aQdx

dx

xdicdx

b

adx

xd

dx

xdcc

b

adxQ

dx

xid

icQdx

xdicvG

in

i

jin

ij

n

ji

n

i

in

i

2

2

2

12

2

2

2

1 1

2

2

12

2

1

2

.

Введем обозначения:

b

a

jiij dx

dx

xd

dx

xdA

2

2

2

2 ,

b

a

ii Qdx

dx

xd2

2 ,

b

a

dxQ2 .

Тогда

i

n

iiij

n

ij

n

ji cAccvG

11 1

2 .

По условию минимума функционала G его производные по

коэффициентам ci должны равняться нулю:

011

n

iiij

n

ji

i

Acc

G .

Таким образом, мы получили СЛАУ из n уравнений

cA . (6.24)

Поскольку матрица А симметрична и положительно опреде-

лена, как следует из способа ее задания, система (6.24) имеет

решение. Решим СЛАУ каким-либо из описанных выше мето-

дов, и, подставляя коэффициенты ci в (6.22), получим прибли-

женное решение уравнения (6.21).

Допустим, что Q(x)=1, длина балки 1. В этом случае одним

из возможных вариантов решения может стать предложенное на

рис. 6.15. Число разбиений M в данном случае для простоты

равно 2. Вид базисных функций определен в gg(x,i). Процедура-

функция mas определяет массив А, процедура-функция vec вы-

числяет вектор

из формулы (6.24). Полученная СЛАУ в дан-

ном случае состоит всего из двух уравнений, что позволяет най-

ти ее решение точным методом обратной матрицы.

Page 124: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

124

Рис. 6.15. Листинг программы расчета уравнения (6.21) вариа-

ционным методом

ORIGIN 1

M 2 LL 1 q x( ) 1

gg x i( ) xi

LL x( )

mas M LL( )

KKk i

0

LL

xgg x k( )2

x

gg x i( )d

d

2

d

i 1 Mfor

k 1 Mfor

KK

KK mas M LL( )

KK0.333

0.167

0.167

0.133

vec M LL( )

Fi

0

LL

xgg x i( ) q x( )

d

i 1 Mfor

F

FF vec M LL( )

FF0.167

0.083

CC KK1

FF

fi x( )

1

M

i

CCi

gg x i( )

x x 1( )

2

CC

0.5

1.155 1014

fiLL

2

0.125

Page 125: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

125

В итоге мы получаем функцию fi(x), которая и есть реше-

ние исходного уравнения по вариационному методу. Ее анали-

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

Значение прогиба балки в центральной точке вычислено в по-

следней строке программы. Точное решение, вид которого для

уравнения (6.21) при заданном Q и условии, что изгибающий

момент на концах балки равен нулю, предлагается найти само-

стоятельно, дает значение 0,125.

6.2.7. Проекционные методы

Пусть задано уравнение вида fLu , где L — линейный

оператор. Скалярное произведение функций u(t), v(t), заданных

на отрезке [0,T], можно определить как T

dttvtuvu0

0, .

Решение уравнения можно представить в виде

1k

kkcu .

Подставив приближенное решение в исходное уравнение,

получим невязку Lvf . Запишем тождество:

fLv .

По теореме о разложении следует, что невязка должна быть

ортогональна всем базисным функциям njj ,...,2,1, , т.е. их

скалярное произведение должно быть равно нулю:

njfcLfLv j

n

kkkjj ,...2,1,0),(),(),(

1

.(6.25)

В силу линейности оператора L из (6.25) получим систему n

линейных алгебраических уравнений для определения коэффи-

циентов kc : njfLc jj

n

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

1

.

Так же, как и в ранее описанном вариационном методе Ритца,

решение сводится к нахождению решения СЛАУ вида (6.24),

где коэффициенты матрицы A и вектора правых частей опре-

деляются как

Page 126: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

126

ijij La , , ii f , , (6.26)

что также совпадает с приведенными выше формулами вариа-

ционного метода Ритца.

В качестве базисных функций можно выбрать, например,

степенной 1 ixi , или тригонометрический базис

2sin

i

ab

axi , i=1,..., n.

Недостатком этих базисов является то, что матрица системы

(6.24) является заполненной, и расчетные затраты растут про-

порционально n3, что ограничивает применение методов для

больших n.

6.2.8. Метод конечных элементов

Как отмечено выше, проекционные и вариационные методы

решения краевой задачи (6.17) приводят к одинаковой системе

линейных алгебраических уравнений с коэффициентами и пра-

выми частями, заданными (6.26). Заполненность матрицы зави-

сит от вида базисных функций. В методе конечных элементов в

качестве базисных выбираются финитные функции, отличные

от нуля на некотором ограниченном интервале отрезка [a, b].

Основное отличие метода конечных элементов от вышепри-

веденных проекционных и вариационных состоит в том, что

вместо нахождения глобальной функции решения на всей об-

ласти последняя разбивается на отдельные элементы, в каждом

из которых выбирается своя базисная функция (или функция

формы). Вид этих функции может быть довольно простым

(включая постоянные значения и линейные функции). Затем на

каждом элементе используется один из алгоритмов минимиза-

ции функционала (метод Галеркина, Ритца и т.п.) и в итоге ре-

шение собирается (ассамблируется) из отдельных решений. Т.е.

метод конечных элементов является в некотором роде симбио-

зом вариационных методов и методов конечных разностей, где

также производится разбиение области решения.

Page 127: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

127

Метод конечных элементов широко применяется в современ-

ной инженерной практике, в частности, при решении задач

строительства и используются во многих современных расчет-

ных пакетах. Отметим, что метод конечных элементов впервые

нашел свое приложение в задачах строительства, расчета стерж-

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

интерпретация данного метода, основанного на методе переме-

щений. Отсюда же идет терминология, используемая в методе,

например, матрица жесткости системы. Здесь мы приводим ма-

тематическую формулировку метода, полностью согласующую-

ся с физическим подходом.

Приведем пример решения уравнения (6.17) с нулевыми

краевыми условиями u(a)=u(b)=0 методом конечных элементов.

Для этого разобьем отрезок [a, b] на n-1 частей и запишем ба-

зисные финитные функции в виде

.,,0

,,,

,,,

11

1

1

1

1

1

1

ii

ii

ii

i

ii

ii

i

xxx

xxxxx

xx

xxxxx

xx

i

Предположим, что размер элементов постоянен и равен h:

.,,0

,,,

,,,

11

11

11

ii

iii

iii

i

xxx

xxxh

xx

xxxh

xx

(6.27)

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

.,,0

,,,1

,,,1

11

1

1

ii

ii

ii

i

xxx

xxxh

xxxh

(6.28)

Page 128: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

128

График одной базис-

ной функции показан на

рис. 6.16. Т.е. функции

подбираются таким об-

разом, чтобы в узле рас-

сматриваемого элемента

ее значение равнялась

единице, а на соседних

элементах — нулю. Бу-

дем искать приближен-

ное решение в виде

(6.22). Тогда значения

неизвестных коэффици-

ентов принимают смысл

значений функции в уз-

лах элементов. Найдем правые части системы согласно (6.26)

1

1

1n

kk

xi

b

aii dxxxfdxxxf

kx

.

Подставив сюда выражение (6.26), получим

dx

x

xxxxfdx

x

xxxxf

h

dxx

x h

xxxfdx

x

x h

xxxf

i

i

i

i

i

i

i

i

ii

i

ii

1

1

1

11

1

1

11

. (6.29)

Зная функцию f(x), выражение (6.29) можно проинтегриро-

вать и получить конкретный вид правых частей CЛАУ. В тех

случаях, когда аналитическое решение невозможно, необходимо

воспользоваться методами численного интегрирования.

Теперь получим коэффициенты матрицы СЛАУ

b

ai

j

i

j

ijij dxdx

d

dx

dLa

2

2

2

2

,, ,

и, применяя интегрирование по частям, имеем

Рис. 6.16. Базисная функция в МКЭ

Page 129: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

129

b

aijjiji

b

aij

b

ajiij

dxxxaabb

dxxxxxa

.

Как видно из определения базисных функций, на концах от-

резка ba, все они обращаются в ноль. Поэтому два первых

члена в этом выражении равны нулю и

n

k

k

k

ij

b

aijij

x

x

dxxxdxxxa1

1

.

Согласно (6.28), производные базисных функций равны нулю

везде, кроме соседних с исследуемой точкой отрезках (элемен-

тах). Т.е. 0 xj

при 11 iji . Отсюда следует вывод,

что полученная нами матрица A является трехдиагональной.

Элементы главной диагонали (i=j) определяются как

hdxdx

h

dxh

dxh

dxa

i

i

i

i

i

i

i

i

k

k

x

x

x

x

x

x

x

x

n

k

x

x

iii

21

11

1

1

1

1

1

2

2

21

2

.

На соседних с главной диагональю

hdx

hdxdx

hhdxa

i

i

i

i

k

k

x

x

x

x

n

k

x

x

iiii

1111 111

21

11,

,

hdx

hhdxa

i

i

k

k

x

x

n

k

x

x

iiii

111

1

1

111,

.

Таким образом, матрицу A можно записать как

Page 130: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

130

hh

hhh

hh

hhh

hh

210...00

121...00

00...210

0...0121

0...0012

A .

Матрица коэффициентов этой системы называется также

матрицей жесткости. Систему

cA можно решить точным

экономичным методом прогонки, описанным в главе 2. В других

случаях возможно применение итерационных методов решения

СЛАУ.

В случае если краевые условия имеют более сложный вид,

необходимо ввести замену переменных с тем, чтобы привести

их к виду u(a)=u(b)=0. Более подробно о методе, его вариациях,

обобщении на многомерные задачи можно узнать из литературы

[4, 6].

Согласно примеру решения МКЭ, показанному выше, можно

создать алгоритм решения краевой задачи методом конечных

элементов. Например, такой:

1. Разбить область на подобласти (в общем случае, это могут

быть неравномерные трехмерные элементы);

2. Выбрать вид базисной функции;

3. Для каждого элемента построить функционал и применить

процедуру минимизации. Таким образом, определяются ло-

кальные коэффициенты СЛАУ;

4. Объединить локальные матрицы каждого элемента в гло-

бальную матрицу жесткости (ансамблирование) и создать

вектор правых частей;

5. Учесть граничные условия;

6. Решить трехдиагональную СЛАУ численно.

Пример 6.6. Рассмотрим задачу из примера 6.5, но примем,

что наша нагрузка линейно изменяется в пространстве. Предпо-

ложим, что Q есть линейная функция u. Для простоты положим

Q=u. В качестве граничных условий возьмем u(0)=0 и u(1)=1.

Page 131: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

131

Тогда решение методом конечных элементов можно получить,

следуя алгоритму, приведенному выше:

1. Разбиваем отрезок [0,1] на M равных частей (формируем

массив x)

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

ление, так что в узле каждого элемента соответствующая

ему функция равнялась 1, а в остальных местах – нулю. Та-

ким образом, на каждом элементе будут присутствовать две

функции, соответствующие левому и правому его узлу (N1

и N2, соответственно)

3. В цикле процедуры ansmb, входным параметром которой

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

элемента и строятся локальные матрицы.

4. В этой же ПФ происходит ансамблирование коэффициентов

и создание матрицы жесткости K, которая является выход-

ным параметром работы ansmb. Далее создается вектор

правых частей f.

5. В процедуру-функцию solv пересылаются количество уз-

лов, вектор правых частей, граничные условия

6. Здесь же решается трехдиагональная СЛАУ методом про-

гонки (см. главу 2) и результат записывается в массив.

Невязка полученного решения для M=3 приведена на

рис. 6.17. Можно убедиться, что порядок ошибки мал по срав-

нению с решением.

Page 132: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

132

Рис. 6.17. Листинг решения примера 6.6. методом конечных

элементов (начало)

M 3 i 1 M 1 a 0 b 1

hb a

M0.333 x

i0 i 1( ) h

fi1 0 fiM 1

N1 i y( )

xi 1

y xi

xi 1

xi

N2 i y( )

y

xi 1

xi

ansmb M( )

Ki j

0

j 1 Mfor

i 1 Mfor

hj xi 1

xi

ke1 2

0

hj

yy

N1 i y( )d

d yN2 i y( )

d

d N1 i y( ) N2 i y( )

d

ke2 1

ke1 2

ke1 1

0

hj

yy

N1 i y( )d

d

2

N1 i y( )( )2

d

ke2 2

ke1 1

Ki 1 m i 1 l

Ki 1 m i 1 l

kem l

l 1 2for

m 1 2for

i 1 M 1for

K

KK ansmb M 1( )

Page 133: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

133

Рис. 6.17. Листинг решения примера 6.6 методом конечных эле-

ментов (окончание)

f1

1

x2

x1

f

M 1

1

xM 1

xM

i 2 Mf

i0

solv M KK FF fl fr( ) L M

CCi

KKi i

BBi

KKi i 1

AAi

KKi i 1

i 2 L 1for

3

KK2 3

KK2 2

3

FF2

KK2 2

i 1

BBi

CCi

i

AAi

i 1

AAi

i FF

i

CCi

i

AAi

i 3 L 1for

fiL

fr

fii

i 1

fii 1

i 1

i L 1 1for

fi

a1 solv M 1 KK f fi1 fiM( )

Page 134: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

134

Глава 7. Решение уравнений в частных производных

7.1. Основные понятия. Постановка задачи

Для описания реального физического процесса (прогиба бал-

ки под действием нагрузки, движения газа в некотором объеме,

распространение электромагнитных волн и пр.) строятся физи-

ко-математические модели, на основе которых можно анализи-

ровать процессы качественно и количественно. Задачи описания

движения сплошных сред (газа, жидкости, твердых тел), а также

задачи теплопроводности, теории упругости, электрических и

магнитных полей, и многие другие приводят к дифференциаль-

ным уравнениям. Независимыми переменными в физических

задачах являются время t и пространственные координаты x, y, z.

В качестве зависимых переменных в разных задачах использу-

ются компоненты скорости частиц среды, плотность, давление,

температура, упругие напряжения, деформации и др. характери-

стики.

Допустим, что требуется найти решение на временном про-

межутке [t0, t1] в некоторой области изменения независимых пе-

ременных G(x,y,z). Математическая постановка задачи состоит

из дифференциального уравнения (уравнений), а также допол-

нительных условий, позволяющих выделить единственное ре-

шение среди семейства всех решений данного уравнения. До-

полнительные условия, заданные при t=t0 называются началь-

ными данными, а условия, заданные на границе области

G(x,y,z) – граничными или краевыми условиями. В качестве на-

чальных и краевых условий, как правило, задают значения ис-

комых функций и их производных. Задачи, у которых имеются

только начальные условия, называются задачей Коши. Задачи с

начальными данными и граничными условиями называют сме-

шанной краевой задачей или нестационарной краевой задачей.

При исследовании установившихся состояний или стацио-

нарных (не зависящих от времени) процессов используются

уравнения, не зависящие от времени. В этом случае решение

ищется в области G(x,y,z), на границе которой задаются гранич-

ные условия. Такие задачи называются краевыми.

Page 135: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

135

Особым вопросом в теории дифференциальных уравнений

является корректность постановки начальных и смешанных за-

дач. Корректной называется такая постановка дополнительных

(начальных и граничных) условий, при которой решение задачи

в целом существует, единственно и непрерывно зависит от этих

данных и коэффициентов уравнения. Требование непрерывной

зависимости необходимо, чтобы небольшие изменения коэффи-

циентов уравнения, начальных данных и краевых условий не

приводили к сильным изменениям решения задачи. В механике

и физике существуют задачи, решение которых неустойчиво.

Изучению таких некорректных задач занимается специальный

раздел математики. Здесь мы будем рассматривать только кор-

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

тойчивости, связанной с исходными уравнениями.

7.1.1. Характеристики. Типы уравнений.

Многие физические задачи приводят к решению уравнений

второго порядка, которые достаточно хорошо изучены в теоре-

тическом плане и для которых разработаны стандартные методы

приближенного решения. В случае одной пространственной ко-

ординаты уравнение в частных производных второго порядка

можно записать в виде

FxEutDuxxCutxButtAu .

Здесь u(t, x) – искомая функция, t, x – независимые перемен-

ные, A, B, C, D, E и F – коэффициенты уравнения, которые, во-

обще говоря, могут зависеть от t, x и u.

Если все коэффициенты являются константами, то это ли-

нейное уравнение с постоянными коэффициентами. Если коэф-

фициент F – линейная функция от неизвестной u, а остальные

коэффициенты от u не зависят, то такое уравнение называется

линейным с переменными коэффициентами. Если все коэффи-

циенты зависят от u, то такие уравнения называются квазили-

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

комых функций, но и от ее производных, уравнение будет нели-

нейным.

Page 136: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

136

Если коэффициенты A, B, С – нулевые, а D0 и E0, то урав-

нение имеет первый порядок и называется уравнением переноса

(адвекции). Если хотя бы один из коэффициентов A, B, С отли-

чен от нуля, уравнение имеет второй порядок и может быть

классифицировано по типам аналогично кривым второго поряд-

ка. Классификация уравнений связана с наличием характери-

стик – особых направлений, вдоль которых исходное уравнение

может быть записано в виде полного дифференциала, и, следо-

вательно, может быть проинтегрировано. Уравнение характери-

стик для уравнения в частных производных второго порядка

имеет вид

A

ACBB

dt

dx

2

42 .

Количество характеристик зависит от знака дискриминанта

B2 – 4 A C. Если он положителен, то уравнение (7.1) имеет две

вещественных характеристики и называется гиперболическим.

В случае нулевого дискриминанта уравнение имеет одну веще-

ственную характеристику и является параболическим. Эллипти-

ческие уравнения не имеют вещественных характеристик (дис-

криминант отрицателен).

Физические процессы, описываемые уравнениями перечис-

ленных типов, корректные постановки начально-краевых задач

и свойства решений существенно отличаются друг от друга.

7.1.2. Аппроксимация и устойчивость

Как правило, уравнения в частных производных не могут

быть решены аналитически (точно), и для нахождения решений

используются приближенные методы, которые можно разделить

на три основные группы: методы конечных разностей, методы

конечных объемов и методы конечных элементов.

В конечно-разностных методах приближенное решение

ищется в узлах специально построенной разностной сетки, по-

крывающей область решения исходной дифференциальной за-

дачи. Дифференциальная задача с помощью формул прибли-

женного дифференцирования заменяется системой алгебраиче-

Page 137: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

137

ских уравнений (разностной схемой), которая далее решается с

помощью точных или приближенных методов решения СЛАУ.

При этом необходимо использовать такие разностные схемы,

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

стной задачи к решению исходной дифференциальной при

уменьшении шага сетки.

Аппроксимация (от англ. approximation — приближение)

характеризует, насколько хорошо разностная задача приближает

исходную дифференциальную, и зависит от точности формул

разностного дифференцирования и, конечно же, размеров раз-

ностной сетки. Для простых задач аппроксимация может быть

исследована аналитически с помощью оценки главного члена

погрешности разностной схемы при подстановке в нее точного

решения. В более сложных случаях аппроксимацию исследуют

экспериментально, с помощью оценки поведения погрешности

при измельчении сетки.

Устойчивость характеризуют способность решения не нака-

пливать ошибку. Другими словами, устойчивость - это непре-

рывная зависимость решения от входных данных: коэффициен-

тов, правых частей, начальных данных и краевых условий. При

этом следует различать устойчивость решения исходной диффе-

ренциальной задачи и устойчивость приближенного метода.

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

задачу с начальными данными и краевыми условиями:

Lu , 00 vu , lu ,

с помощью конечно-разностной схемы:

hhhuL , 00 vhu , hhhul .

Рассмотрим также конечно-разностную задачу с «возмущен-

ными» правыми частями, начальными данными и краевыми ус-

ловиями:

hhhuL ~~ , 00 v~~ u , hhhul ~~ .

Говорят, что решение разностной задачи непрерывно зависит

от входных данных задачи, если существуют такие константы

M1>0, M2>0, M3>0, не зависящие от t и h, что

Page 138: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

138

00321 v~v~~)(~)( MMMtutu hhhhhh (7.0)

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

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

части, т.е. для линейных операторов Lh, lh достаточно показать,

что

00 v~v)(~)( Mtutu hh .

Если независимых переменных несколько (например, x и t),

то вводится понятие условной и безусловной устойчивости. Ус-

тойчивость называется безусловной, если соотношение (7.0)

имеет место при произвольном соотношении между шагами

разностной сетки и h. Схема будет условно устойчивой, если

для выполнения (7.0) шаги по независимым переменным долж-

ны подчиняться дополнительным соотношениям.

В теории разностных схем доказана теорема Лакса о том, что

если разностная задача аппроксимирует дифференциальную и

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

чи сходится к решению дифференциальной.

Подробнее о свойствах аппроксимации и устойчивости будет

рассказано ниже при рассмотрении примеров уравнений в част-

ных производных.

7.2. Параболические уравнения

7.2.1. Постановка задачи

К параболическим уравнениям приводят задачи теплопро-

водности, диффузии и некоторые другие. Рассмотрим уравнения

этого типа на примере одномерного (т.е. с одной пространст-

венной переменной) линейного уравнения теплопроводности с

постоянными коэффициентами, описывающими распростране-

ние тепла в тонких однородных стержнях:

)..(2

2

txFx

uA

t

u

(7.1)

Здесь А>0 – константа (коэффициент теплопроводности),

u(x,t) – искомое решение, F(x,t) – правая часть. Будем искать

Page 139: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

139

решение в области 0xL, 0 t T. Корректная постановка зада-

чи кроме уравнения (7.1) включает в себя начальные данные:

u(x,0) = u0(x) (7.2)

и краевые условия. Наиболее хорошо изучены линейные задачи,

в которых краевые условия, так же как и само уравнение, ли-

нейны. Существует три типа краевых условий, которые называ-

ют условиями первого, второго и третьего рода. Условия перво-

го рода означают, что на границах области задана зависимость

температуры от времени:

u(0,t)=11(t), u(L,t) = 12(t). (7.3)

Условия второго рода задают тепловые потоки (производные

от температуры) через границы области:

ux(0,t)=21(t), ux(L,t) = 22(t). (7.3)

И, наконец, условия третьего рода задают на границе линей-

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

u(0,t)+ 1ux(0,t) =31(t),

(7.3)

u(L,t)+ 2ux(L,t) = 32(t) t i

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

ние (7.1) с начальными данными (7.2) и краевыми условиями

(7.3), или (7.3), (7.3) имеет единственное решение. Рассмот-

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

7.2.2. Конечно-разностные схемы для одномерного уравнения

Введем в области ре-

шения прямоугольную

равномерную разностную

сетку. Для этого разобьем

отрезок [0,T] на М равных

частей: ti=i, а

отрезок [0, L] – на N рав-

ных частей: xj=jh, hL Вместо точного решения

u(x,t), будем искать при-

x=L

t

x0

t=T

uji

x=xj

t=ti

Рис. 7.1. Расчетная область и сетка

Page 140: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

140

ближенное решение, заданное в узлах сетки uij=u(xj, t

i). Область

решения и построенная сетка представлены на рис. 7.1. На ли-

ниях t=0, x=0 и x=L решение определено начальными данными

и краевыми условиями, во всех остальных узлах сетки решение

должно быть найдено из разностных аналогов уравнения (7.1).

Приблизим (аппроксимируем) исходную дифференциальную

задачу конечно-разностной. Для этого заменим все входящие в

уравнение (7.1) и краевые условия (7.3), (7.3) производные их

конечно-разностными аналогами:

.),(,),(

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

),(

,),(),(

),(

101

2

11

2

11

2

2

11

h

uutx

x

u

h

uutx

x

u

h

uuu

h

txutxutxutx

x

u

uutxutxutx

t

u

i

M

i

MiM

iii

o

i

j

i

j

i

ji

ji

ji

jij

i

j

i

ji

ji

jij

Подставляя выражения для производных в уравнение, полу-

чим разностную схему:

),(2

2

111

ij

ij

ij

ij

ij

ij

txFh

uuuA

uu

(7.4)

На первом временном слое решение известно:

u0

j=u(xj, t0)=u(xj,0) = u0(xj). Во всех внутренних точках расчетной

области оно находится из явных формул, которые легко полу-

чаются из схемы (7.4):

..1,...,1,0,1,...,2,1

),,(2

2

111

MjNi

txFh

uuuAuu i

j

i

j

i

j

i

ji

j

i

j

Для нахождения решения в крайних точках отрезка [0,L] не-

обходимо использовать краевые условия. Если заданы краевые

условия первого рода, можно сразу определить значения иско-

мых функций: uio=11(t

i), u

iM = 12(t

i). Для условий второго рода

получим: ).(),( 122

11

1121

1

11

0

iiM

i

Miii thuuthuu

Пусть u(t,x) – точное решение. Исследуем, насколько числен-

ное решение, полученное по схеме (7.4) отличается от точного.

Page 141: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

141

Для этого разложим u(ti,x j1), u(t

i+1,xj) в ряд Тэйлора в окрестно-

сти точки (xj,t i):

,)(2

)(),(

,)(24

)(6

)(2

)(),(

21

432

1

ijtt

ijt

ijj

iij

ijxxxx

ijxxx

ijxx

ijx

ijj

iij

uuuxtuu

uh

uh

uh

uhuhxtuu

и подставим эти выражения в разностную схему (7.4):

.)(12

)(2

),()()(

),(

)(24

)(6

)(2

)(

2)(24

)(6

)(2

)(

...)(2

)(

),(2

2

2

432

2

432

2

2

111

ijxxxx

ijtt

ij

ijxx

ijt

ij

ijxxxx

ijxxx

ijxx

ijx

ij

ij

ijxxxx

ijxxx

ijxx

ijx

ij

ij

ijtt

ijt

ij

ij

ij

ij

ij

ij

ij

uh

AutxFuAu

txFh

uh

uh

uh

uhu

h

uuh

uh

uh

uhu

A

uuuu

txFh

uuuA

uu

Первые три члена являются невязкой этого уравнения в точке

(t i, xj,) и равны 0, поскольку u(x,t) – решение уравнения (7.1).

Следовательно, погрешности этой схемы равна

ijxxxx

ijtt u

hAu )(

12)(

2

2

,

т.е. схема является схемой первого порядка аппроксимации по

времени и второго порядка – по пространству. Преимуществом

явной схемы является то, что решение может быть найдено по

явным алгебраическим формулам. Однако, как показали расче-

ты, приближенное решение, полученное с помощью явной схе-

мы, может быть неустойчивым. Неустойчивость приводит к бы-

строму (экспоненциальному) росту погрешностей, вносимых в

Page 142: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

142

численное решение за счет ошибок округления. Исследование

устойчивости, выполненное на простейших решениях в виде

единичной гармоники (Фурье-анализ) показывает, что эти ре-

шения будут устойчивы если

=2

12

hA

. (7.5)

Параметр называется числом Куранта. При нарушении ус-

ловия (7.5) в численном решении возникают пилообразные ос-

цилляции, амплитуда которых быстро растет, и за несколько

временных шагов решение «разваливается».

Для иллюстрации приведем пример решения в пакете

MathCAD уравнения (7.1), A=1, F(x,t)=0, c нулевыми краевыми

условиями первого рода 0),1(),0( tutu и с начальными дан-

ными в виде гауссоиды, центрированной относительно точки

x=1/2: 222 )5.0(20)5.1(20)5.0(20)0,( xxx eeex (7.6)

Задача имеет точное решение

)(801

1),( 801

)5.0(20

801

)5.1(20

801

)5.0(20 222

t

x

t

x

t

x

eeet

txu

,

график которого приведен на рис. 7.2.

Рис. 7.2. Точное решение (7.1), (7.6) на различные моменты

времени

0

0.2

0.4

0.6

0.8

1

0 0.2 0.4 0.6 0.8 1

0

0.01

0.05

0.1

0.2

Page 143: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

143

Как показывает рис. 7.2, точное решение монотонно убывает

со временем. Воспользуемся для решения явной схемой (7.4) на

сетке h=0,1, =0,02. Легко проверить, что в этом случае условие

(7.5) нарушается. Действительно, 2

12

01.0

02.02

h

A

, и следует

ожидать, что решение будет неустойчиво. Приведенный на

рис. 7.3 пример показывает, что уже через несколько временных

шагов численное решение становится немонотонным, и в даль-

нейшем его график приобретает характерный «пилообразный»

вид. Амплитуда «осцилляций» быстро растет, что приводит к

переполнению арифметического устройства.

На практике условие (7.5) означает, что расчет приходится

вести с очень маленьким шагом по временной переменной, что

существенно ограничивает применение явных схем для решения

уравнения теплопроводности. Действительно, пусть h=10-2

, A=1,

тогда, согласно (7.5), для получения устойчивого решения необ-

ходимо соблюдать условие <510-5

. Если решение надо полу-

чить на момент времени T=1, то для этого надо сделать N=2104

временных шагов. Если же решение надо получить на более

подробной сетке по пространственной переменной, например

h=10-3

, то число временных шагов возрастет до N=2106, и ис-

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

мым.

Применим для решения задачи (7.1)-(7.3) неявную схему:

),(2

2

11

111

1

ij

ij

ij

ij

ij

ij

txFh

uuuA

uu

. (7.7)

Исследование аппроксимации показывает, что эта схема так-

же имеет погрешность порядка 1+h

2. Схема устойчива при лю-

бом соотношении шагов , h. Это означает, что расчет можно

вести со сколь угодно большим временным шагом. Такие схемы

называют абсолютно устойчивыми.

Для получения решения необходимо на каждом временном

шаге решить СЛАУ с трехдиагональной матрицей:

uio=11(t

i),

Page 144: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

144

),()21( 11

111

ij

ij

ij

ij

ij txFuuuu

, i=1,2,…N-1. (7.8)

uiM = 12(t

i)

Рис. 7.3. Решение уравнения теплопроводности с помощью

явной схемы

TN

0

0

1

2

3

4

5

6

7

8

9

10

0

0.21

0.483

0.62

0.442

0.275

0.442

0.62

0.483

0.21

0

0 0.5 1

0

0.5

1

TN i

ui

xi

k

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

k 1 M

TN

tn tn tau

u1j

uj

a

tau uj 1

2 uj

uj 1

h2

j 1 N 1for

u10

psi1 tn( )

u1N

psi2 tn( )

up

u1p

p 0 Nfor

k 1 Mfor

u

tn 0

ui

0

0.04

0.165

0.449

0.819

1

0.819

0.449

0.165

0.04

0

xi

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

i

0

1

2

3

4

5

6

7

8

9

10

начальные данныеui

fi0 xi x

ii hi 0 1 N

шаги сеткиtau 0.02tauT

Mh 0.1h

L

N

правое краевое условиеpsi2 t( ) 0

левое краевое условиеpsi1 t( ) 0

fi0 x( ) exp 20 x 0.5( )2

exp 20 x 0.5( )2

exp 20 x 1.5( )2

a 1T 1L 1.0M 50N 10

Page 145: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

145

Решение системы (7.8) находится с помощью метода прогон-

ки, описанного в главе 2.

На рис. 7.4. приведен листинг программы на MathCAD, где

для решения задачи (7.1), (7.6) использована неявная схема (7.8).

Как показывает пример, неявная схема позволяет получить

близкое к точному решение при достаточно большом значении

шага по времени =0,067.

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

вое и последнее уравнения (7.8), из которых определяются зна-

чения первых прогоночных коэффициентов и решения в по-

следнем узле сетки.

Схемы (7.4) и (7.7) являются представителями семейства

двухслойных схем

),,(2

)1(2

2

11

2

11

111

1

ij

ij

ij

ij

ij

ij

ij

ij

ij

txFh

uuuA

h

uuuA

uu

(7.9)

где 10 – параметр, который можно подбирать таким обра-

зом, чтобы добиться улучшения тех или других свойств схемы.

При =0 схема (7.9) переходит в явную схему (7.4), а =1 – в

чисто неявную схему (7.6).

При всех других значениях в каждом разностном уравне-

нии будет завязано значения неизвестной функции в 6 разных

точках, в отличие от схем (7.4), (7.8), в которых завязано по че-

тыре различных точки. Графическое представление точек рас-

четной области, входящих в каждое разностное уравнение, на-

зывается шаблоном конечно-разностной схемы. Шаблоны схем

(7.4), (7.8) и (7.9) при 0 представлены на рис. 7.5 а-в, соответ-

ственно.

Как было указано выше, за счет выбора параметра , можно

добиться, чтобы схема имела более высокий порядок аппрокси-

мации. В частности, легко показать, что при =0,5 схема будет

иметь порядок аппроксимации 2+h

2. Кроме того, за счет специ-

Page 146: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

146

ального выбора весового параметра

A

h

122

1 2

можно добить-

ся, чтобы схема имела порядок аппроксимации 2+h

4.

Рис. 7.4. Решение уравнения теплопроводности

с помощью неявной схемы

Нахождение решения разностных схем типа (7.9) при 0

аналогично случаю чисто неявной схемы. Система трехточеч-

ных уравнений, связывающих решение в точках верхнего (i+1)-

го слоя, имеет вид: ff

0

0

1

2

3

4

5

6

7

8

9

10

0

0.101

0.211

0.328

0.427

0.467

0.427

0.328

0.211

0.101

0

0 0.5 1

0

0.5

1

ff i

ui

xi

ff

tn tn tau

al1

0

bet1

psi1 tn( )

FF ui

ali 1

BB

CC aliAA

beti 1

FF AA beti

CC al

iAA

i 1 Nfor

u1N

psi2 tn( )

u1i

ali 1

u1i 1

beti 1

i N 1 1for

u2i

u1i

i 0 Nfor

k 1 Mfor

u2

tn 0CC 14.333CC AA BB 1

BB 6.667BB AAAA 6.667AA atau

h2

i

0

1

2

3

4

5

6

7

8

9

10

ui

0

0.04

0.165

0.449

0.819

1

0.819

0.449

0.165

0.04

0

xi

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

правое краевое условиеpsi2 t( ) 0uifi0 x

i xii hi 0 1 N

левое краевое условиеpsi1 t( ) 0tau 0.067

tauT

Mh 0.1h

L

N

функция начальных данных

fi0 x( ) exp 20 x 0.5( )2

exp 20 x 0.5( )2

exp 20 x 1.5( )2

a 1T 1L 1.0M 15N 10

Page 147: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

147

t=ti

x=xj

t=ti+1

x=xj+1x=xj-1

a)

t=ti

x=xj

t=ti+1

x=xj+1x=xj-1

б)

t=ti

x=xj

t=ti+1

x=xj+1x=xj-1

в)

Рис. 7.5. Шаблоны схем

семейства (7.9)

2

1111

111

2)1()21(

h

uuuuuuu

ij

ij

iji

jij

ij

ij

),( ij txF , i=0,1,..,M-1;

j=1,2,…N-1.

Она отличается от уравне-

ния (7.8) только правой ча-

стью, и, следовательно, также

решается методом прогонки.

7.2.3. Конечно-разностные

схемы для двумерной задачи

Пусть G=[0,Lx][0,Ly] –

прямоугольная область на

плоскости (x, y), G – граница

области G, u(x,y,t) – функция,

определенная в области

G[0,T]. Рассмотрим задачу

нахождения u(x,y,t), удовле-

творяющего уравнению

),,,(2

2

2

2tyxF

y

u

x

uA

t

u

дополненного начальными данными

u(x,y,0) = u0(x,y)

и краевыми условиями первого рода:

u(x,y,t)G =(t).

Введем в области G[0,T] конечно-разностную сетку с шага-

ми hx=Lx./Nx, hy=Ly./Ny и tn=n, xi=ihx, yj=j hy. Построим

семейство двухслойных конечно-разностных схем:

Page 148: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

148

x

y

x

yt

t=tn

t=tn+1

x=xi x=xi+1x=xi-1

y=yj+1

y=yj

y=yj-1

Рис. 7.6. Шаблон схемы для

двумерного уравнения тепло-

проводности

).,,(22

)1(

22

2

11

2

11

2

11

111

2

11

111

1

nji

y

nij

nij

nij

x

nji

nij

nji

y

nij

nij

nij

x

nji

nij

nji

nij

nij

tyxFh

uuu

h

uuuA

h

uuu

h

uuuA

uu

Можно видеть, что шаблон схемы, представленный на рис. 7.6,

включает 9 точек на неизвестном, n+1 временном слое, и 9 точек

на известном n-м слое. При =0 схема является явной, и ее ре-

шение можно найти по формулам:

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

222

11

2

111

MnNyjNxityxF

h

uuu

h

uuuAuu

nji

y

nij

nij

nij

x

nji

nij

njin

ijnij

(7.10)

Явная схема имеет порядок

аппроксимации +hx2+hy

2. Од-

нако, как и в случае одной

пространственной перемен-

ной, схема является условно-

устойчивой. Для того, чтобы

получить устойчивое прибли-

женное решение, шаги разно-

стной сетки должны удовле-

творять условию Куранта:

2

122

yx hhA

. Свойством

безусловной устойчивости

схема будет обладать при ).,max(,42

1 2

yx hhhA

h

При 0 шаблон схемы (7.10) будет включать 9 точек на

верхнем временном слое. Для нахождения решения необходимо

для каждого tn решать СЛАУ с заполненной матрицей, для кото-

Page 149: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

149

рых экономичный метод прогонки не применим. В этом случае

используются так называемые методы дробных шагов [7], в ко-

торых процесс нахождения решения на новом n+1 временном

слое разбивается на несколько промежуточных (дробных) шагов

таким образом, чтобы на каждом шаге по одному из пространст-

венных направлений схема была явной, а по другому – неявной.

Неявность схемы по выбранному направлению делает ее безус-

ловно устойчивой. В то же время, для нахождения решения на

новом временном слое не требуется решать СЛАУ с заполнен-

ной матрицей, а можно найти решение с помощью нескольких

прогонок. Эта методика широко используется при решении

многомерных уравнений теплопроводности. Существует много

различных схем в дробных шагах. Приведем одну из возможных

схем для двумерного уравнения теплопроводности.

).,,(22

2/

),,(22

2/

2

1

2

11

111

2

2

1

12

1

2

1

12

1

1

2

11

2

2

1

12

1

2

1

12

1

n

ji

y

nij

nij

nij

x

n

ji

n

ij

n

ji

n

ijnij

nji

y

nij

nij

nij

x

n

ji

n

ij

n

jinij

n

ij

tyxFh

uuu

h

uuuA

uu

tyxFh

uuu

h

uuuA

uu

Сначала из первого разностного уравнения с помощью про-

гонки по направлению x надо найти решение на промежуточном

n+1/2 временном слое. Затем из второго уравнения, также с по-

мощью прогонки определяется решение на n+1 временном слое.

Пример 7.1. Предположим, что мы знаем распределение

температуры плоской пластины в начальный момент времени.

Заданы граничные условия на краях пластины. Нам необходимо

решить нестационарную задачу, чтобы оценить поведение тем-

пературы в пластине на разные моменты времени. Такой про-

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

производных, неявная схема расчета которого методом дробных

шагов приведена выше.

Page 150: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

150

Итак, мы решаем уравнение вида

.

Здесь u — это температура, x и y — пространственные коорди-

наты, t — время. Коэффициент a полагается равным 1.

Листинг программы MathCAD для решения этой задачи при-

веден на рис. 7.7. Полученное распределение температуры на

последний момент времени показано на рис. 7.8.

Рис. 7.7. Поведение ошибки (невязки) в примере 7.1.

0 0.2 0.4 0.6 0.8 10

1 103

2 103

3 103

4 103

5 103

Ri

xi

Page 151: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

151

Рис. 7.8. Программа расчета двумерного уравнения теплопро-

водности (пример 7.1) (начало)

Page 152: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

152

Рис. 7.8. Программа расчета двумерного уравнения теплопро-

водности (пример 7.1) (окончание)

Page 153: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

153

Рис. 7.9. Решение двумерного уравнения теплопроводности

(пример 7.1)

7.3. Гиперболические уравнения

7.3.1. Постановка задачи

Типичным представителем уравнений гиперболического типа

является так называемое волновое уравнение, описывающее

распространение различных волн:

.,,2 txfutxgu xxtt (7.11)

Пусть требуется решить уравнение в области G:

Ttx ,0,1,0 .

Дополним уравнение начальными данными

)()0,();()0,( 21 xxuxxu t (7.12)

и краевыми условиями

).(,1),1(

)(),0(),0(

10

10

tBtustus

tAtuptup

x

x

(7.13)

7.3.2. Явная конечно-разностная схема

Для приближенного решения будем использовать конечно-

разностный метод. Для этого введем в области G разностную

сетку, в качестве которой используем совокупность точек пере-

сечения прямых x= ih, t= j, i= 0, 1, ... , N; j= 0, 1, ... , M, где h и

— шаги сетки по пространственной и временной координатам.

utt

Page 154: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

154

Если положить, что шаги h и связаны соотношением = rh,

r=const, то сетка будет зависеть только от одного параметра h.

Через uij обозначим значение сеточной функции в точке

(xi, t j). Аппроксимируем входящие в (7.11)-(7.13) производные

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

сти:

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

),(

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

),(

211

211

2

2

2

11

2

11

2

2

h

uuu

h

txutxutxutx

x

u

uuutxutxutxutx

t

u

ji

ji

ji

ji

ji

jij

i

j

i

j

i

j

ij

ij

ij

iji

Подставив эти выражения в (7.11), получим явную разност-

ную схему:

ji

ji

ji

jij

i

ji

ji

ji f

h

uuug

uuu

2112

2

11 2)(

2

(7.14)

Схеме (7.14) отвечает шаблон

типа “крест”, изображенный на

рис. 7.10. Он иллюстрирует тот

факт, что для вычисления значе-

ния искомой функции на вре-

менном слое j+1 необходимо

знать значения этой функции на

двух предыдущих слоях j и j-1.

Следовательно, для того, чтобы

начать расчет, необходимо знать

Рис. 7.10. Шаблон явной схе-

мы для волнового уравнения

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

Решение на временном слое t = t0 определено начальными дан-

ными (7.12): ).(10

ii xu Для того чтобы вычислить решение

при t=t1, воспользуемся формулой Тэйлора, а также начальными

данными (7.12) и уравнением (7.11):

.),()(

),(2

)()(

...),(6

),(2

),(),(),(

30

2

12

022

21

03

02

001

Cxtfdx

xdxtgxx

xtuxtuxtuxtuxtu tttttt

(i, j+1)

(i-1, j)

(i+1,j)

(i,j-1)

Page 155: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

155

Для нахождения значений сеточной функции uij во внутрен-

них точках xi=ih, i=1,…, N-1 на временных слоях tj, j=2,3,…M,

используем разностную схему (7.14): j

i

j

i

j

i

j

i

j

i

j

i

j

ifuuugruuu 2

11

2211 )2(2

, i=1, 2,…N-1. (7.15)

Для определения искомой сеточной функции на линиях x=x0,

x=xN, воспользуемся краевыми условиями. В случае первой

краевой задачи (p1= 0, s1= 0) значения функции в граничных

точках задаются точно: ).(),(0jj

Njj tButAu Если p1 0, s1 0

(вторая или третья краевая задачи), производные в соотношени-

ях (7.13) необходимо заменить конечно-разностными соотноше-

ниями. Используем формулы первого порядка аппроксимации:

,,1

10

01

100j

j

N

j

Nj

Nj

jj

jB

h

uususA

h

uupup

откуда

.,...3,2,,10

11

01

110 Mj

shs

ushBu

hpp

hAupu

jN

jjN

jjj

(7.16)

Можно показать, что схема (7.15) имеет второй порядок ап-

проксимации относительно h. Однако соотношения (7.16) имеют

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

ет общую точность полученного приближенного решения. Для

того чтобы общий порядок аппроксимации задачи не понижал-

ся, для аппроксимации производных в граничных условиях

(7.13) необходимо использовать соотношения второго порядка

аппроксимации (см. раздел 4.1):

,2

43,

2

43 2110

210100

jjN

jN

jNj

Nj

jjjj B

h

uuususA

h

uuupup

откуда легко получить выражения для jN

j uu ,0 , имеющие второй

порядок аппроксимации.

7.3.3. Исследование устойчивости разностной схемы

Для того чтобы решение задачи (7.15) сходилось к решению

исходной задачи, требуется, чтобы эта схема была устойчивой.

Page 156: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

156

Опишем один из методов исследования устойчивости. Рассмот-

рим задачу Коши:

,),()0,(

),()0,(

,,0,,0

21

2

2

2

2

2

xxt

xuxxu

constgTtxx

ug

t

u

(7.17)

которую аппроксимируем разностной схемой

...,1,0),(),(

1,...,2,1

,022

2

01

10

2

112

2

11

mxuu

xu

Mj

h

uuug

uuu

mmm

mm

jm

jm

jm

jm

jm

jm

(7.18)

Для устойчивости разностной схемы относительно возмуще-

ния начальных данных необходимо, чтобы решение задачи

(7.18) удовлетворяло условию

,,...,1,0,maxmax 0 MjuCu mm

jm

m

(7.19)

при произвольной ограниченной функции )(1 mx , в частности,

для mie 1 , где - вещественный параметр. Тогда решение

задачи (7.17) можно искать в виде mijj

meu (7.20)

где )( . Условие (7.20) выполняется, если числа )( ле-

жат внутри круга единичного радиуса, т.е.

1 (7.21)

Неравенство (7.21) выражает необходимое условие устойчи-

вости Неймана. Подставив (7.20) в (7.18), для определения

получим уравнение

01)2

sin21(2 2222

gr (7.22)

По теореме Виета произведение корней этого уравнения рав-

но 1, т.е. для выполнения условия (7.21) требуется, чтобы корни

Page 157: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

157

2,1 уравнения (7.22) были комплексно-сопряженными и лежали

на единичной окружности. Для этого, в свою очередь, необхо-

димо, чтобы дискриминант D уравнения (7.22) был отрица-

телен:

.012

sin2

sin4 222222

grgrD

Данное неравенство выполняется при всех , если 1gr .

Следовательно, условием устойчивости схемы (7.18) будет

g

h (7.23)

Пусть теперь g=g(x,t) const. В этом случае применяется

принцип “замороженных коэффициентов”, в соответствии с ко-

торым необходимое условие устойчивости Неймана можно за-

писать в виде

),(max,,

*

*

txggg

h

tx (7.24)

В заключение отметим, что вопрос влияния граничных усло-

вий на устойчивость разностной схемы здесь не рассматривает-

ся.

7.3.4. Неявная разностная схема

При построении схемы (7.14) производная uxx была заменена

на конечную разность на временном слое tj= j. Если же исполь-

зовать значения с временного слоя tj+1, то получим схему

12

2

1

1

11

121

2

11 22

j

i

j

i

j

i

j

ij

i

j

i

j

i

j

i fh

uuug

uuu

(7.25),

которой соответствует шаблон, изображенный на рис. 7.11.

Из уравнения (7.25) невозможно явно выразить 1j

iu через

значения функции u с предыдущих слоев по времени (j и j-1),

поскольку в (7.22) наряду с 1j

iu входят неизвестные 1

1

j

iu и

1

1

j

iu . Поэтому данная схема называется неявной. Анализ устой-

чивости показывает, что неявная схема безусловно устойчива,

Page 158: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

158

Рис. 7.11. Шаблон неявной схе-

мы для волнового уравнения

т.е. обеспечивает сходимость разностной задачи к решению со-

ответствующей дифференциальной при любом отношении /h.

Решение на первых двух временных слоях определяется из на-

чальных данных так же, как это сделано для явной схемы. Обо-

значив ,221 rg j

i

перепишем (7.25) в виде

1,...,2,1,2)21( 12111

111

Nifuuuuu ji

ji

ji

ji

ji

ji (7.26)

Дополнив (7.26) фор-

мулами, аппроксими-

рующими краевые усло-

вия, получим СЛАУ с

трехдиагональной мат-

рицей, которая решается

с помощью метода про-

гонки (см. главу 2).

7.4. Приближенные методы решения уравнения Пуассона

В качестве классического представителя уравнений эллипти-

ческого типа рассмотрим двумерное уравнение Пуассона:

),(2

2

2

2yxF

y

u

x

uu

, (7.27)

F(x, y) – функция источников. Уравнение Пуассона описыва-

ет, например, распределение электростатического поля или ста-

ционарное распределение температуры. Частным случаем этого

уравнения является уравнение Лапласа 0u .

Пусть требуется определить решение в некоторой области G

на плоскости (x,y). Корректная постановка задачи требует зада-

ния граничных условий на границе этой области G .

В одномерном случае уравнение Пуассона не что иное, как

краевая задача первого рода для ОДУ второго порядка, решение

которой было рассмотрено в главе 6.

Сравнивая уравнение Пуассона и рассмотренное выше дву-

мерное уравнение теплопроводности, можно понять, что урав-

Page 159: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

159

нение Пуассона является стационарным, т.е. независящим от

времени вариантом уравнения теплопроводности. Поэтому для

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

метод установления. Для этого в правую часть уравнения (7.27)

добавляют слагаемое tu , и решают полученное уравнение

теплопроводности с помощью описанных в предыдущем пара-

графе методов до тех пор, пока решение не выйдет на стацио-

нар, т.е. не перестанет изменяться в зависимости от времени.

Время в этой задаче является фиктивным, и в разностных схе-

мах надо использовать максимально возможный шаг. Решение

нестационарной задачи стремится к решению стационарной не-

зависимо от выбора начальных данных. Процесс установления

решения может занять продолжительное время, особенно если

используются явные схемы, имеющие жесткое ограничение на

временной шаг. В этом случае применение схем дробных шагов

помогает существенно сократить время решения.

Кроме того, для решения уравнения Пуассона используются

и другие методы, не связанные со сведением его к уравнению

теплопроводности. Эти методы положены в основу стандартных

функций пакета MathCAD.

Решение будем искать на плоской квадратной области, со-

стоящей из (M+1)x(M+1) точек, при этом требуется, чтобы M

было степенью числа 2, т.е. M=2n, где n- некоторое целое число.

Граничные условия должны быть определены пользователем на

четырех сторонах квадрата. Простейший вариант – нулевые

граничные условия. В этом случае можно использовать встро-

енную функцию: Multigrid(F,ncycle)

Здесь F – матрица размера (M+1)x(M+1), содержащая правую

часть уравнения (7.27) в узлах разностной сетки, ncycle – па-

раметр численного алгоритма (количество циклов в пределах

каждой итерации). Параметр ncycle в большинстве случаев

можно выбрать равным 2. На рис. 7.10 приведен листинг про-

граммы с использованием функции multigrid для решения

краевой задачи для уравнения Пуассона на сетке из 33x33 узлов.

Функция правой части F(x,y) представляет собой так называе-

Page 160: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

160

мый точечный источник тепла, т.е. F(x,y)=0 всюду, кроме одной

точки с номером (15, 20), в которой она принимает значение 104.

Для решения краевой задачи с ненулевыми краевыми усло-

виями можно использовать встроенную функцию

relax(a,b,c,d,e,F,v,r). M=32

FM,M =0

F15,20=104

G=multigrid(-F,2)

Рис. 7.12. Решение уравнения Пуассона с помощью

функции multigrid

Здесь параметры a, b, c, d, e – квадратные матрицы

коэффициентов разностной схемы, аппроксимирующей уравне-

ние, F – квадратная матрица, задающая правую часть уравнения,

v – квадратная матрица граничных условий и начального при-

ближения к решению. Последний параметр r, характеризующий

скорость сходимости метода, должен лежать на интервале (0,1).

На рис. 7.13 приведен пример программы на MathCAD, иллюст-

рирующий применение этой функции для решения уравнения

(7.27), правая часть которого представляет собой три точечных

источника, заданных в точках сетки с номерами (15, 20), (25, 30)

и (10, 10).

G

Page 161: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

161

Рис. 7.13. Решение уравнения Пуассона с помощью

функции relax

решение уравнения Пуассона

M 32 FM M

0 F15 20

15

F25 10

8 F10 10

10

i 0 M k 0 M

ai k

1 b a c a

vi k

0d a e 4 a

G relax a b c d e F v 0.95( )

G

Page 162: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

162

Заключение

В учебном пособии приведены методы приближенного ре-

шения нелинейных алгебраических уравнений, систем линей-

ных алгебраических уравнений, методы интерполяции, оптими-

зации, численного дифференцирования и интегрирования, вы-

числительные подходы к решению задач Коши и краевых задач

для обыкновенных дифференциальных уравнений, а также ко-

нечно-разностные методы решения уравнений в частных произ-

водных. Даны примеры реализаций данных численных подхо-

дов как на основе стандартных функции пакета MathCAD, так и

с помощью средств программирования данной среды.

Тем не менее, читатель должен понимать, что приведенные в

данном пособии методы являются лишь частью методик вычис-

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

полняемого набора численных подходов, разрабатываемых для

широкого круга задач практики. Вводное знакомство с ними,

предложенное в данном пособии, поможет начинающему иссле-

дователю или инженеру сориентироваться в данной тематике и

приступить к самостоятельному изучении необходимых числен-

ных технологий, используя литературные источники, некоторые

из которых приведены ниже в списке рекомендованной литера-

туры.

Page 163: И.А. ФЕДОРЧЕНКО › files › kis › Численные_методы_на_MathCAD.pdf · Методы решения нелинейных алгебраических

163

Список рекомендованной литературы 1. Беклемишев Д.В. Курс аналитической геометрии и линейной ал-

гебры / Д.В. Беклемишев. М.: ФИЗМАТЛИТ, 2005. – 304 с.

2. Портал DspSys.org: Системы цифровой обработки сигналов и дан-

ных [Электронный ресурс] / Режим доступа:

http://dspsys.org/fourier/56-fourier-transf (дата обращения:

01.10.2013).

3. Поршнев С.В. Численные методы на базе Mathcad: учеб. Пособие /

С.В. Поршнев, И.В. Беленкова. – СПб.: БХВ-Петербург, 2005. –

456 с.

4. Кирьянов Д.В. MathCAD 14. –СПб.: БХВ – Петербург, 2007. 704 с.

5. Метод конечных элементов и САПР / Сабоннадьер Ж.-К., Кулон

Ж.-Л. – М.: Мир, 1989. – 190 с.

6. Зенкевич О. Конечные элементы и аппроксимация / О. Зенкевич, К.

Морган. М.: Мир, 1986. — 318 с.

7. Вержбицкий В.М. Основы численных методов: учебник для

ВУЗов / В.М. Вержбицкий. М.: Высшая школа, 2009. – 840 с.

8. Численные методы решения инженерных задач в пакете MathCAD /

И.А. Бедарев, О.Н. Белоусова, Н.Н. Федорова; - Новосиб. гос. архи-

тектур.-строит. ун-т. – Новосибирск, 2005. – 96 c.

9. Ильин В.П. Численные методы решения задач строительной меха-

ники: справ. Пособие / В.П. Ильин, В.В. Карпов, А.М. Масленнки-

ов. – Минск: Вышэйшая школа, 1990. – 349 с.

10. Воскобойников Ю.Е. Решение инженерных задач в пакете

MATHCAD: учеб. пособие / Ю.Е. Воскобойников, А.Ф. Задорож-

ный, Л.А. Литвинов, Ю.Г. Черный. – Новосибирск: НГАСУ (Сиб-

стрин), 2013. – 120 с.

11. Воскобойников Ю.Е. Основы вычислений и программирования в

пакете MathCAD: Учеб. Пособие / Ю.Е. Воскобойников, А.Ф. Задо-

рожный, Л.А. Литвинов, Ю.Г. Черный. – Новосибирск: НГАСУ

(Сибстрин), 2012. – 212 с.

12. Бахвалов Н.С., Н.П., Жидков, Г.М Кобельков Численные методы /

Н.С. Бахвалов, Н.П. Жидков, Г.М. Кобельков. – М.: Бином. Лабора-

тория знаний, 2008. – 640 с.

13. Методы вычислений: учеб. пособие / И.А. Бедарев, Ю.В. Кратова,

Н.Н. Федорова; - Новосиб. гос. архитектур.-строит. ун-т. – Новоси-

бирск, 2009. – 112 c.

14. И.А. Бедарев, Н.Н. Федорова, И.А. Федорченко Компьютерное мо-

делирование в задачах строительства. Учебное пособие. Новоси-

бирск: НГАСУ (Сибстрин), 2012. - 152 с.