elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК...

91
3 Министерство образования Республики Беларусь Учреждение образования «Белорусский государственный педагогический университет имени Максима Танка» А. А. Морозов ЧИСЛЕННЫЕ МЕТОДЫ И ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА MATHCAD Учебное пособие Минск 2003 РЕПОЗИТОРИЙ БГПУ

Upload: others

Post on 28-Jun-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

3

Министерство образования Республики Беларусь

Учреждение образования

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

имени Максима Танка»

А. А. Морозов

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

И ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА

MATHCAD

Учебное пособие

Минск 2003

РЕПОЗИТОРИЙ БГ

ПУ

Page 2: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

4

УДК 518 (075.8)

ББК 22.191 я 73

Печатается по решению редакционно-издательского совета

БГПУ им. М. Танка

Рецензент: А. И. Астровский, кандидат физико-математических наук, доцент

Морозов А. А.

М 801 Численные методы и вычислительная система Mathcad: Учеб. пособие.

– Мн.: БДПУ, 2003. – 89 с.

ISBN 985-435-443-1

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

числительной математики. Основное внимание уделено их практической реали-

зации с использованием компьютерной вычислительной системы Mathcad.

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

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

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

тики и информатики.

УДК 518 (075.8)

ББК 22.19я73

ISBN 985-435-443-1 А.А.Морозов, 2003

УИЦ БГПУ, 2003

РЕПОЗИТОРИЙ БГ

ПУ

Page 3: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

5

Предисловие

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

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

тематики. Сюда вошли простые способы решения нелинейных уравнений, ли-

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

ного интегрирования и дифференцирования, поиска экстремальных значений

функций одной переменной, решения задачи Коши и граничных задач для

обыкновенных дифференциальных уравнений.

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

педуниверситетов, изучающим методы вычислений. Предполагается, что чита-

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

матики, например, по книгам [9], [10], [12], [13], [18].

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

граммы Mathcad1 – универсальной вычислительной системы для аналитиче-

ского и численного решения научных и инженерно-технических задач. Система

отличается простотой и удобством работы. Совмещая формулы, графику и

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

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

проникнуть в суть изучаемого метода.

Основное внимание уделено примерам решения задач в виде закончен-

ных рабочих документов Mathcad. В ряде случаев алгоритмы численных мето-

дов реализованы на интуитивно ясном алгоритмическом языке системы. Ре-

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

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

решений.

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

ся, с ними можно ознакомиться по книгам [7], [17], [21]. В конце дан список

встроенных функций, которые встречаются в рабочих документах.

Пособие можно использовать на курсах повышения квалификации и пе-

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

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

мирования. Часть материала вполне доступна и учащимся средних школ в клас-

сах с углубленным уровнем изучения математики и информатики.

1 Сокращение от Mathematical computer added design. Разработка фирмы Mathsoft.

РЕПОЗИТОРИЙ БГ

ПУ

Page 4: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

6

1. Табулирование функций

Таблицы значений и графики функций широко используются в приложе-

ниях. Построение таблиц функций обычно называют табулированием.

П о с т а н о в к а з а д а ч и. Пусть требуется получить таблицу из n, n > 1

значений функции y = f(x) при изменении аргумента x с постоянным шагом h на

некотором отрезке [a, b].

Полагая h = (b – a)/(n – 1), возьмем ряд точек (узлов) xi = a + ih, где

i = 0, 1,…, n–1, x0 = a, xn–1 = b, в которых будем вычислять значения функции.

Если задан шаг h, то размер таблицы можно определить по формуле

n = [(b – a)/h] + 1, где [x] обозначает целую часть вещественного x.

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

ления p(x), кПа от высоты подъема x, км с шагом 1 км с расчетом по формуле

p(x) = 101.3(1– 6.5x/288)5.125

.

Д о к у м е н т M a t h c a d.

Здесь trunc(x) – функция, которая вычисляет целую часть аргумента x,

augment(H, P) – матрица, полученная присоединением к вектору H вектора P.

1.Определим функцию: p x( ) 101.3 16.5 x

288

5.125

2.Границы отрезка табулирования и шаг: a 0 b 10 x 1

3.Размер таблицы: n truncb a

x

1

4.Таблица и график зависимости:

i 0 n 1 Hi a i x Pi p Hi TAB augment H P( )

TABT 0

101.3

1

90.12

2

79.95

3

70.72

4

62.38

5

54.84

6

48.06

7

41.96

8

36.51

9

31.64

10

27.31

1 0 1 2 3 4 5 6 7 8 9 10 1120

30

40

50

60

70

80

90

100

110110

20

P

P

b xa x H

РЕПОЗИТОРИЙ БГ

ПУ

Page 5: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

7

2. Решение нелинейных уравнений

П о с т а н о в к а з а д а ч и. Пусть y = f(x) – функция действительной пе-

ременной x, a ≤ x ≤ b. Корнем или решением уравнения

f(x) = 0 (1)

называется такое значение x*, при котором f(x*) = 0. Задача состоит в прибли-

женном (с погрешностью TOL1) вычислении вещественных корней уравнения

(1), расположенных на заданном отрезке [a, b].

Геометрически корни соответствуют точкам пересечения или касания гра-

фика функции y = f(x) с осью Ox. Например, для функции y = (x + 1)2(x – 1)(x

– 2)

= x4 – x

3 – 3 x

2 + x + 2, график которой изображен на рис.2.1, уравнение (1) име-

ет кратный корень x1 = –1 и простые корни x2 = 1, x3 = 2.

Существует много различных методов

нахождения вещественных корней. Обычно

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

указываются отрезки, содержащие только

один корень. Затем на каждом таком отрез-

ке выбираются некоторые начальные при-

ближения, которые используются для уточ-

нения корней.

Если x′ – вычисленное значение корня

уравнения (1), то значение f(x′) называют

невязкой. Если в окрестности корня производная функции f(x) близка к нулю

(график y = f(x) пологий), то абсолютная величина ошибки '* xx может

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

шения только по значению невязки нельзя.

П р и м е р. Рассмотрим функцию 5 9( ) 10f x x . Ее производная 4( ) 5f x x . Пусть x = 0.01 – некоторое приближение к корню. Значение произ-

водной в этой точке (тангенс угла наклона касательной) равно 85 10 . Точка

x = 0.01 находится на относительно большом расстоянии от точки решения

x =5 910 , в то же время значение 9(0.01) 1.1 10f весьма близко к нулю.

Д о к у м е н т M a t h c a d.

1 TOL – от английского tolerance – допустимое отклонение, допуск

1.Определим функцию: f x( ) x5

109

2.График функции на отрезке [-0.03,0.03]:

Рис. 2.1

РЕПОЗИТОРИЙ БГ

ПУ

Page 6: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

8

Метод деления пополам

Предположим, что функция f(x) непрерывна на отрезке [a, b] и на концах

его имеет противоположные знаки. Для определенности считаем, что f(a) > 0.

Для нахождения корня уравнения f(x) = 0 будем сужать отрезок.

1. Делим [a, b] пополам точкой m = (a + b)/2;

2. Выбираем ту из половин [a, m] или [m, b], на концах которой функция

y = f(x) имеет разные знаки: если f(m) > 0, то полагаем a = m, в противном слу-

чае берем b = m;

3. Повторяем эти действия до тех пор, пока длина отрезка [a, b], содер-

жащего корень, не станет меньше погрешности TOL;

4. За приближенное значение корня принимаем середину получившегося

отрезка [a, b].

Метод деления пополам применим при любой длине исходного отрезка,

однако, его сходимость (по сравнению с другими методами) – медленная.

П р и м е р. Найдем корни уравнения f(x)= x2– sin(x)–1 = 0 на отрезке

[1, 2]. Так как f(1) < 0, то полагаем a = 2 и b = 1. Чтобы проследить за сходимо-

стью приближений, сведем их в таблицу, размер которой n можно изменять.

Д о к у м е н т M a t h c a d.

0.02 0.01 0 0.01 0.02

2 108

2 108f 0.03( )

f 0.03( )

f x( )

0.030.03 x

3.Точка решения: x05

109

x0 0.0158489319

4.Погрешность приближения: x0 0.01 0.026

1.Определим функцию и построим график: f x( ) x2sin x( ) 1

2 1 0 1 2 3

2

f x( )

x

РЕПОЗИТОРИЙ БГ

ПУ

Page 7: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

9

2.Границы отрезка,содержащего корень: a 2 b 1

f a( ) 2.090703 f b( ) 0.841471

3.Программа,которая формирует таблицу приближений:

Таблица f a b n( )

M ia b

2

a M i f M i 0if

b M i otherwise

i 0 nfor

Mreturn

4.Таблица приближений:

n 16 (количество шагов) M Таблица f a b n( )

MT 0 1 2 3 4 5 6 7 8 9

0 1.5 1.25 1.375 1.4375 1.40625 1.42188 1.41406 1.41016 1.4082 1.40918

MT 10 11 12 13 14 15 16

0 1.40967 1.40942 1.40955 1.40961 1.40964 1.40962 1.40963

5.График сходимости: i 0 n

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 171.2

1.3

1.4

1.5

1.6

M i

i

6.Программа метода деления пополам:

Bisection f a b TOL( ) iter 0

iter iter 1

ma b

2

a m f m( ) 0if

b m otherwise

b a TOLwhile

iter

a b

2

return

РЕПОЗИТОРИЙ БГ

ПУ

Page 8: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

10

Здесь функция root(f(x), x, a, b) вычисляет корень x уравнения f(x) = 0, ко-

торый принадлежит отрезку [a, b].

З а м е ч а н и я. На каждом шаге алгоритм вычисляет только одно значе-

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

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

Метод итераций

Метод итераций1 называют также методом последовательных прибли-

жений. Допустим, что уравнение f(x) = 0 можно записать в виде

x = g(x). (2)

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

ней) начальное значение x0 и вычислим x1 = g(x0), затем x2 = g(x1) и т. д. При

определенных ограничениях на функцию g(x) последовательность итераций

1 ( )k kx g x , k = 0, 1, … сходится к корню уравнения (2).

Сходимость метода основывается на следующей теореме о существова-

ния корня. Если функция g(x) дифференцируема на отрезке [a, b] и |g´(x)| ≤ q < 1

при всех a < x < b, то приближения x0, x1, x2, … сходятся к корню x* уравнения

x = g(x) независимо от начального значения a ≤ x0 ≤ b.

Чем ближе к нулю величина q, тем выше скорость сходимости. Если

q ≥ 1, то итерации могут дать расходящуюся последовательность значений.

Справедлива следующая оценка погрешности решения:

1*1

k k k

qx x x x

q

, k = 0, 1, …

1 Итерация (от латинского iteratio – повторение) – результат неоднократного вычисле-

ния по каким-либо формулам.

7.Поиск корней:

a 2 b 1 TOL 106

iter

x1

Bisection f a b TOL( ) iter

x1

20

1.409624

f x1( ) 1.0133 106

a 1 b 0

iter

x2

Bisection f a b TOL( ) iter

x2

20

0.636733

f x2( ) 1.5068 107

8.Проверка решения с помощью встроенной функции:

root f x( ) x 1 2( ) 1.409624 root f x( ) x 1 0( ) 0.636733

РЕПОЗИТОРИЙ БГ

ПУ

Page 9: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

11

Отсюда, в частности, следует, что если 1

2q , то 1* k k kx x x x .

Для метода итераций выбор функции g(x) существен. Например, уравне-

ние x3+ x – 3 = 0 можно преобразовать в x = 3 - x

3, или 3 3x x , или

2

1 3x

x x , 0x и т. п. Выгодно то представление x = g(x), при котором на

отрезке, содержащем корень, верно неравенство ( ) 1g x q (желательно с

наименьшим значением q). В общем случае уравнение f(x) = 0 записывают в

виде равенства ( )x f x x , где 0 (при этом его корни не изменяются).

Число λ можно подобрать так, чтобы соблюдались условия сходимости

( ) 1 1f x q .

П р и м е р. На отрезке [1, 2] найти действительный корень уравнения

x3 + x – 3 = 0. Уравнение можно записать так: x = 3 – x

3. Модуль производной

2 2( ) 3 3g x x x . Однако, на рассматриваемом отрезке 23 3x , то есть

условия сходимости метода итераций не выполняются.

Теперь запишем исходное уравнение в виде x = λ(x3 + x – 3) + x. Имеем

2( ) (3 1) 1 1g x x . Отсюда 22 (3 1) 0x , 2

2 20.5

3 13 1x

и 0 . Полагая, например, 0.2 получим, что 3( ) 0.2( 3)g x x x x .

П р и м е р. Рассмотрим сходящуюся итерацию 1 cos( )k kx x , x0 = 0.7.

Чтобы проследить за сходимостью приближений к корню уравнения x = cos(x),

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

Д о к у м е н т M a t h c a d.

1.Определим функции: g x( ) cos x( ) p x( )x

g x( )d

dsin x( )

2.Вспомогательные графики:

0 0.3 0.6 0.9 1.2 1.50

0.5

1

g x( )

p x( )

x

x

РЕПОЗИТОРИЙ БГ

ПУ

Page 10: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

12

Рассмотрим наглядный способ графического изображения процесса ите-

раций в виде орбит сходимости. Геометрически корень уравнения x = g(x) – это

точка пересечения кривой y = g(x) и прямой y = x. Соединим на графиках этих

функций прямыми линиями точки (x0, 0), (x0, x0), (x0, x1), (x1, x1), (x1, x2) и т. д.

В общем случае, чтобы построить орбиту, перемещаемся из точки (xk–1, xk–1) в

(xk–1, xk), k = 1, 2, ….

П р и м е р. Исследуем итерацию xk+1 = xk2

для начальных приближений

x0 = 1.4, x0 = –1.4, x0 = 0.7 и x0 = –0.8.

Д о к у м е н т M a t h c a d.

3.Укажем отрезок,содержащий корень: a 0.6 b 0.9

4.Найдем максимальное значение производной: q p b( ) q 0.7833

5.Количество итераций и начальное приближение: n 20 x0 0.7

6.Таблица приближений: k 0 n 1 X 0 x0 X k 1 g X k

XT 0 1 2 3 4 5 6 7 8

0 0.7 0.76484 0.72149 0.75082 0.73113 0.74442 0.73548 0.74151 0.73745

7.Погрешность решения: X n X n 1 0.000035 X n 0.73907

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

XY - таблица точек

орбиты сходимостиОрбита g x0 n( ) XY

0 x0

0

XYk x0

x0

XYk 1 x0

g x0( )

x0 g x0( )

k 1 3 nfor

XYT

return

РЕПОЗИТОРИЙ БГ

ПУ

Page 11: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

13

Из полученных рисунков ясно, что для x0 > 1 или x0 < –1 орбита неогра-

ниченно удаляется от корня x = 0. Если же 0 < x0 < 1 или –1 < x0 < 0, то она

приближается к корню.

1.Орбита для g x( ) x2

x0 1.4

XY Орбита g x0 5( )

1 0 1 2 3 4

1

1

2

3

4

5

x

g x( )

XY1

x x XY0

2.Орбита для g x( ) x2

x0 1.4

XY Орбита g x0 5( )

2 1 0 1 2 3 4 5

2

1

1

2

3

4

5

x

g x( )

XY1

x x XY0

3.Орбита для g x( ) x2

x0 0.7

XY Орбита g x0 5( )

0.5 0 0.5 1 1.5

0.5

0.5

1

1.5

x

g x( )

XY1

x x XY0

4.Орбита для g x( ) x2

x0 0.8

XY Орбита g x0 7( )

1 0.2 0.6 1.4

1

0.2

0.6

1.4

x

g x( )

XY1

x x XY0

РЕПОЗИТОРИЙ БГ

ПУ

Page 12: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

14

Орбиты сходимости или их части могут иметь вид спиралей. Для примера

снова возьмем итерацию 1 cos( )k kx x для x0 = 0.55.

Д о к у м е н т M a t h c a d.

Метод итераций удобен для программирования. Очередное приближение

находят по формуле xk+1 = g(xk). Вычисления завершают, если для двух послед-

них значений xk и xk+1 справедливо неравенство 11

k k

qx x TOL

q

. Если из-

вестно, что 1

2q , то достаточно проверить неравенство 1k kx x TOL .

Если 1

12

q , то величина 1* kx x может быть большой, хотя величи-

на 1k kx x – мала. Несмотря на это, упрощенное условие 1k kx x TOL ча-

сто используют на практике без оценки максимального значения q производ-

ной. В этом случае, если при поиске решения количество итераций превысит

некоторое заданное значение (например, равное 50), то вычисления останавли-

вают. Это значит, что метод не сходится или сходится слишком медленно.

П р и м е р. Возьмем уравнение 2 1x x , x > 1, которое имеет решение

2x . Здесь ( ) 2 1g x x , 1

( )1

g xx

и (2) 1g . Теорема о существовании

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

приближения 1 ( )k kx g x очень медленно сходятся к решению.

Д о к у м е н т M a t h c a d.

Орбита для g x( ) cos x( ) x0 0.55

XY Орбита g x0 13( )

0.4 0.5 0.6 0.7 0.8 0.9 10.6

0.7

0.8

0.9

x

g x( )

XY1

x x XY0

1.Определим исходную функцию: g x( ) 2 x 1

2.Начальное приближение и погрешность: x0 2.5 TOL 105

РЕПОЗИТОРИЙ БГ

ПУ

Page 13: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

15

Здесь LIM обозначает предельное количество итераций, iter – их фактиче-

ское количество.

Метод Ньютона

Метод Ньютона (или Ньютона-Рафсона, или метод касательных) явля-

ется одним из лучших общих способов решения уравнения f(x) = 0, где f(x) –

дифференцируемая функция.

Пусть корень x* принадлежит отрезку [a, b]. Предположим, что функция

f(x) либо строго возрастает, либо строго убывает на этом отрезке, то есть произ-

водная ( )f x не меняет знак на [a, b]. Если xk – некоторое приближение к ре-

шению x*, то за новое приближение принимают точку пересечения касатель-

ной, проведенной в точке (xk, f(xk)) к графику функции f(x), с осью Ox. Последо-

вательные приближения находят по формуле

1

( ), 0,1,

( )

kk k

k

f xx x k

f x

Если в качестве x0 взять один из концов отрезка, для которого

0 0( ) ( ) 0f x f x , то итерации очень быстро приводят к решению. Алгоритм

3.Программа метода итераций:

Iteratio g x0 TOL LIM( ) iter 0

x1 g x0( )

x1

iter

return x1 x0 TOLif

x0 x1

iter iter 1

iter LIMwhile

"No solution found"return

4.Поиск решения:

Iteratio g x0 TOL 50( ) "No solution found" (решение не найдено)

y Iteratio g x0 TOL 1000( ) y2.006322

628

Невязка: y0 g y0 9.961234 106

Погрешность: y0 2 6.322246 103

5.Решение с помощью встроенной функции(для сравнения):

z x0 root z g z( ) z( ) 2.00457

РЕПОЗИТОРИЙ БГ

ПУ

Page 14: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

16

метода Ньютона ничем не отличается от алгоритма решения уравнения x = g(x)

по методу итераций, где ( )

( )( )

f xg x x

f x

.

Рисунок 2.2 иллюстрирует применение метода к уравнению x3 – x = 0,

корнями которого являются x = –1, x = 0,

x = 1. Рассмотрим отрезок [0.6, 1.8], со-

держащий наибольший корень. Так как

(1.8) (1.8) 0f f , то для x0 можно взять

значение 1.8. При погрешности 10 –5

программа Iteratio дает решение x = 1

всего за пять итераций.

З а м е ч а н и е. Если условие

0 0( ) ( ) 0f x f x не выполнено, то при-

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

чительно медленнее, либо сходиться к

значению, которое не является решени-

ем, либо вообще не сходиться.

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

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

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

Пусть выбраны два начальных приближе-

ния x0 и x1. За новое приближение x2 при-

нимают точку пересечения секущей, про-

веденной через точки (x0, f(x0)) и (x1, f(x1))

графика функции f(x), с осью Ox. Затем

проводят секущую через точки (x1, f(x1))

и (x2, f(x2)) и т. д. Очередные приближе-

ния вычисляют по формуле

11

1

( ) , 1,2,( ) ( )

k kk k k

k k

x xx x f x k

f x f x

Метод секущих сходится при выбо-

ре x0, x1 в пределах отрезка [a, b], содер-

жащего корень. Часто удобно взять x0 = a,

x1 = b, хотя это и не обязательно. Вычисления можно прекратить, как только

расстояние между xk и xk+1 станет меньше TOL.

Рис. 2.2

0.4 1 1.60.4

0.4

1.2

2

2.8

3.6

4.4

0.4

f x( )

Y

2.20.4 x X

Рис. 2.3

1 1.5 2 2.5 3

5

10

15

18

1

f x( )

Y i

31 x X i

РЕПОЗИТОРИЙ БГ

ПУ

Page 15: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

17

Рисунок 2.3 передает особенности применения метода секущих

к уравнению x3 – 3x + 1 = 0 на отрезке [1.5, 3]. Здесь x0 = 2.9, x1 = 2.2.

Упражнения и задачи

1. Дана функция g(x). Можно ли использовать метод итераций для

нахождения корня (или корней) уравнения x = g(x)?

a) 0( ) 6 , 7g x x x ; б) 0( ) 2 , 0.5xg x x ;

в) 0( ) (1 ), 0.6g x x x x ; г) cos( )0 0( ) , 1.2, 0.9x xg x x x x ;

д) 0( ) (1 ), 0.3g x x x x ;

Построить орбиту сходимости для заданного начального приближения x0.

2. Методом итераций вычислить с точностью TOL = 10 –6

корень уравне-

ния f(x) = 0, если задано начальное приближение x0:

а) 0

sin( )1 0, 0

2

xx x ; б) 3

01000, 9.42x x x ;

в) 05 8ln( ) 8, 4.32x x x ; г) 0

sin( ) 0.25, 1.17x x x ;

3. Методом Ньютона вычислить с точностью TOL = 10 –6

корень уравне-

ния f(x) = 0, если задано начальное приближение x0:

а) 0( ) 0, 4.67tg x x x ; б) 3 206 20 0, 2.31x x x ;

в) 4

0

1.8 sin(10 ) 0, 0.22x x x ;

5. Реализовать метод Ньютона в виде программы.

а) Применить программу к уравнению 2 0x a для нахождения квад-

ратных корней a , где 0a . Вычислить 2, 3 , 5 .

б) Применить программу к уравнению 3 0x x . Начать с x0 = 2. По-

строить на отрезке [0.5, 2.1] орбиту сходимости, соединив на графике функции

y = f(x) точки (x0, 0), (x0, f(x0)), (x1, 0), (x1, f(x1)), (x2, 0), (x2, f(x2)) и т. д.

6. Сравнить метод деления отрезка пополам и метод Ньютона, поочеред-

но используя их для решения одного и того же уравнения f(x) = 0, если

TOL = 0.001, 0.0001, 0.00001. Применяя метод Ньютона, для x0 выбирать под-

ходящий конец отрезка [a, b]. Расчеты закончить, как только будет получено

такое приближение x*, для которого ( *)f x TOL .

а) 3 2 3 0, 0.6, 1.4x x a b б) 5 0.2 0, 0.9, 1.1x x a b

7. Недостатком метода Ньютона является необходимость вычисления

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

можным. Иногда пользуются итерационной формулой модифицированного ме-

тода Ньютона 10

( )

( )

kk k

f xx x

f x

, скорость сходимости которой несколько

РЕПОЗИТОРИЙ БГ

ПУ

Page 16: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

18

ниже (по сравнению с основной формулой). Реализовать этот метод в виде про-

граммы и применить ее к уравнению 2 2 0x .

8. Применить метод секущих к уравнению ( ) sin( ) 0.2 0xf x x e .

Начать с x0 = 3, x1 = 2.4 и найти x2, x3. На графике y = f(x) провести секущие че-

рез точки (x0, f(x0)), (x1, f(x1)) и (x1, f(x1)), (x2, f(x2)). Показать также точки (x0, 0),

(x1, 0), (x2, 0), (x3, 0).

9. Методом деления пополам и секущих вычислить с точностью

TOL = 10 –6

корень уравнения f(x) = 0, который принадлежит отрезку [a, b].

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

каждым из методов.

а) 2(4 )( ) 18, a 1.2, 1.3x xx e e b б) 2 sin(5 ) 0, a 0.5, 0.6x x b

10. Реализовать метод секущих в виде программы и применить ее к урав-

нению 2 2 0x . Начать с x0 = 1, x1 = 2.

11. Для метода секущих возможны варианты. Если ( ) ( ) 0f b f b и

начальное приближение x0 = a, то новое приближение вычисляют по формуле

1 ( )( ) ( )

kk k k

k

x bx x f x

f x f b

,

если ( ) ( ) 0f a f a и x0 = b, то – по формуле

1 ( )( ) ( )

kk k k

k

x ax x f x

f x f a

.

Реализовать метод секущих по указанным итерационным формулам в ви-

де программы. Применить ее к уравнению 2 2 0x .

12. Построить таблицу значений неявной функции y = f(x), заданной

уравнением 3 3( , ) 2 0F x y y x xy . Для нахождения значений y для

x = 0, – 0.1, – 0.2, …, – 1 можно использовать встроенную функцию root. Уста-

новить TOL = 0.0001.

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

уравнения 2 2 2 2( ) 7( ) 0x y x y дан на рисунке.

3 2 1 0 1 2 3

1

11

1

XY1

33XY

0

РЕПОЗИТОРИЙ БГ

ПУ

Page 17: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

19

3. Решение систем линейных уравнений

Решение систем линейных уравнений – одна из наиболее важных задач,

встречающихся в практике научных вычислений.

П о с т а н о в к а з а д а ч и. Имеется система n линейных уравнений с

вещественными коэффициентами и n неизвестными:

11 1 12 2 1 1

21 1 22 2 2 2

1 1 2 2 .

n n

n n

n n nn n n

a x a x a x b

a x a x a x b

a x a x a x b

(1)

Требуется найти такие числа x1, x2, … , xn, которые удовлетворяют всем

этим соотношениям и называются корнями или решениями данной системы.

Систему (1) кратко можно записать в виде матричного уравнения

AX = B, (2)

где ,[ ], , 1,2, ,i jA a i j n обозначает квадратную матрицу коэффициентов,

[ ], 1,2, ,jB b j n – вектор правых частей, [ ], 1,2, ,jX x j n – вектор не-

известных. Если определитель матрицы A не равен нулю (матрица невырож-

денная), то решение линейной системы существует и единственно.

Пусть X* – какое-то приближение к решению системы AX = B. Вектор

X – X* называют вектором ошибки, а вектор B – AX* = AX – AX* = A(X – X*) –

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

правой, если подставить в нее найденные значения корней. Если значение

определителя A не слишком близко к нулю, то и невязка, и погрешность полу-

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

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

ях важна именно малая величина невязки.

Различают прямые и итерационные методы решения линейных систем.

Первые дают точные корни (если не учитывать ошибок округления результатов

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

чения с некоторой заданной точностью.

Верхняя треугольная система линейных уравнений

Матрица [ ], , 1,2, ,ijA a i j n называется верхней треугольной, если aij

= 0 для всех i > j. Рассмотрим линейную систему с верхней треугольной матри-

цей коэффициентов:

РЕПОЗИТОРИЙ БГ

ПУ

Page 18: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

20

11 1 12 2 1 1

22 2 2 2

.

n n

n n

nn n n

a x a x a x b

a x a x b

a x b

Такую систему нетрудно решить по методу обратной подстановки.

Из последнего уравнения находим /n n nnx b a , из предпоследнего полу-

чаем 1 1 1 1 1( ) /n n n n n n nx b a x a и т. д. В общем случае

1

/ , 1, 2, , 1n

i i ij j iij i

x b a x a i n n

.

Решение существует и единственно, если 0iia , 1,2, ,i n .

П р и м е р решения верхней треугольной системы AX = B.

Д о к у м е н т M a t h c a d.

Функция lsolve(A, B) дает вектор решений системы AX = B линейных ал-

гебраических уравнений.

1.Определим исходную систему уравнений:

ORIGIN 1

A

4

0

0

0

1

2

0

0

2

7

6

0

3

4

5

3

B

20

7

4

6

2.Формируем вектор решений системы:

n rows A( ) i n 1 1

X nBn

An n X i

1

Ai iBi

i 1

n

j

Ai j X j

3.Невязка,проверка решения с помощью встроенной функции:

X

3

4

1

2

B A X

0

0

0

0

lsolve A B( )

3

4

1

2

РЕПОЗИТОРИЙ БГ

ПУ

Page 19: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

21

Метод Гаусса

Метод Гаусса, или метод исключения неизвестных, является одним из

самых распространенных способов решения линейных систем общего вида. Он

относится к группе точных методов. Сначала матрица A системы AX = B при-

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

Гаусса. Затем (обратный ход) рассматривается эквивалентная система с верх-

ней треугольной матрицей, которую легко решить.

Прямой ход состоит из однотипных действий: с помощью первого урав-

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

уравнения исключить x2 из всех уравнений, начиная с третьего и т. д. Перед ис-

ключением неизвестного xk сначала выбирают среди уравнений k, k+1, … , n

уравнение p, в котором находится наибольший по модулю (главный) коэффици-

ент при xk. Причем, если окажется, что все такие коэффициенты равны нулю, то

система либо не имеет решения, либо имеет бесконечное количество решений.

Если p не равно k, то переставляют уравнения p и k. Правило главного коэффи-

циента позволяет избежать деления на нуль (если матрица содержит нулевые

значения), и повышает точность окончательного результата.

В общем случае, чтобы исключить xk, коэффициенты уравнения i, где

i = k+1, k+2, … , n, пересчитывают по формулам

, 1, 2, , , , 0ik ikij ij kj i i k ik

kk kk

a aa a a j k k n b b b a

a a .

Обратный ход последовательно находит корни треугольной системы.

П р и м е р преобразования линейной системы AX = B в систему тре-

угольного вида (прямой ход метода Гаусса).

Д о к у м е н т M a t h c a d.

1.Определим исходную систему уравнений:

A

10

3

5

7

2

1

0

6

5

B

7

4

6

A 155

2.Прямой ход метода Гаусса:

ORIGIN 1

РЕПОЗИТОРИЙ БГ

ПУ

Page 20: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

22

Функция rows(A) вычисляет количество строк матрицы A, а функция sub-

matrix(A, r1, r2, c1, c2) дает часть матрицы A от строки r1 до строки r2 и от

столбца c1 до столбца c2.

ПрямойХод A B n( )

t Ak k

p k

p m Am k tif

m k 1 nfor

"error"return A p k 0if

t Ak m

Ak m A p m

A p m t

m k nfor

t Bk

Bk Bp

Bp t

k pif

tAi k

Ak k

Ai k 0

Ai j Ai j t Ak j

j k 1 nfor

Bi Bi t Bk

i k 1 nfor

k 1 n 1for

augment A B( )return

3.Найдем эквивалентную треугольную систему:

n rows A( ) AB ПрямойХод A B n( )

A submatrix AB 1 n 1 n( ) B submatrix AB 1 n n 1 n 1( )

A

10

0

0

7

2.5

0

0

5

6.2

B

7

2.5

6.2

РЕПОЗИТОРИЙ БГ

ПУ

Page 21: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

23

Метод квадратных корней

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

AX = B,

где A – симметричная положительно определенная матрица. Системы уравне-

ний такого типа часто встречаются в приложениях.

Симметричную матрицу можно представить в виде произведения

A = T ′ T двух треугольных транспонированных между собой матриц, где

11 11 12 1

12 22 22 2

1 2 .

0 0

0 0,

0 0

n

n

n n nn nn

t t t t

t t t tT T

t t t t

.

После того, как такое разложение получено, решение исходной системы

находят последовательным решением двух новых систем TX = Y и T ′ Y = B с

верхней и нижней треугольными матрицами.

Чтобы получить матрицу T, сначала вычисляют 11t и все элементы первой

строки, затем 22t и все элементы второй строки и т. д. В последнюю очередь

вычисляют nnt .

Для первой строки имеем:

12

11 11 11 11 11 1 1 1

11

или , или , 1j

j j j

at a t a t t a t j

t .

Для i-й строки:

12 2

1 1

или , 1 ,i i

ki ii ii ii ki

k k

t a t a t i n

1

1 1

1 или , , 0,

i i

ki kj ij ij ij ki kj ij

k kii

t t a t a t t i j t i jt

.

Решения треугольных систем:

11

1 i111

1, , 2,3, , ,

i

i ki kkii

by y b t y i n

t t

1

1, , 1, ,1.

nn

n i i ik kk inn ii

yx x y t x i n

t t

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

угольных взаимно транспонированных матриц.

РЕПОЗИТОРИЙ БГ

ПУ

Page 22: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

24

Д о к у м е н т M a t h c a d.

1.Определим исходную систему уравнений:

A

6.25

1

0.5

1

5

2.12

0.5

2.12

3.6

B

7.5

8.68

0.24

2.Программа разложения симметричной матрицы:

ORIGIN 1

РазложениеМатрицы A n( ) T1 1 A1 1

T1 j

A1 j

T 1 1

j 2 nfor

T i i Ai i

1

i 1

k

T k i 2

T i j1

T i iAi j

1

i 1

k

T k i T k j

j i 1 nfor

i 2 n 1for

Tn n An n

1

n 1

k

T k n 2

Treturn

3.Найдем разложение матрицы:

n rows A( ) T РазложениеМатрицы A n( )

4.Проверка:

T

2.5

0

0

0.4

2.2

0

0.2

1

1.6

TTT

6.25

1

0.5

1

5

2.12

0.5

2.12

3.6

РЕПОЗИТОРИЙ БГ

ПУ

Page 23: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

25

Метод прогонки

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

MX = W, где M – трехдиагональная матрица. Матрица называется трехдиаго-

нальной, если она имеет отличные от нуля элементы только на главной и двух

примыкающих к ней диагоналях:

1 1

2 2 2

3 3

1 1 1

.

0 0 0 0

0 0 0

0 0 0 0

0 0 0

0 0 0 0

n n n

n n

q r

p q r

p qM

p q r

p q

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

математики, и поэтому разработаны специальные методы для их решения.

Запишем трехдиагональную систему в виде равенств

pi xi–1 + qi xi + ri xi+1 = wi, i = 1, 2,…, n, p1 = 0, rn = 0.

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

Формулы прямого хода в этом случае значительно упрощаются, а выбор глав-

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

xi = ui xi+1 + vi,

где коэффициенты , i iu v находятся по рекуррентным формулам

1

11

q

ru

,

1

11q

wv , 1

1 1

, , 2, , .i i i ii i

i i i i i i

r w p vu v i n

q p u q p u

Обратный ход позволяет получить окончательное решение по формулам

xn = vn, xi = ui xi+1 + vi для i = n–1, n–2, … ,1.

Если выполняются неравенства iii rpq , ii pq , i = 1, 2,…, n, то

решение трехдиагональной системы существует и единственно.

Общее количество арифметических операций, требуемое для реализации

метода, приблизительно равно 8n. При этом диагональные элементы матрицы

[ ], , 1,ijM m i j n можно хранить в виде трех отдельных векторов

[ ], [ ], [ ], 1, ,i i iP p Q q R r i n .

П р и м е р решения трехдиагональной системы по методу прогонки.

Пусть имеется следующая система:

РЕПОЗИТОРИЙ БГ

ПУ

Page 24: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

26

1

2

3

4

5 1 0 0 2

2 4.6 1 0 3.3

0 2 3.6 0.8 2.6

0 0 1 4.4 7.2

x

x

x

x

Д о к у м е н т M a t h c a d.

Метод итераций

Метод итераций можно применять к линейной системе (1), если предва-

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

1.Формируем исходные векторы коэффициентов:

ORIGIN 1

P

0

2

2

1

Q

5

4.6

3.6

4.4

R

1

1

0.8

0

n rows P( )

2.Проверка сходимости:

i 1 n Si Qi Pi Ri ST

4 1.6 0.8 3.4( )

3.Вычисляем коэффициенты приведенной системы:

U1

R1

Q1

V 1

W1

Q1

i 2 n U iRi

Qi Pi U i 1 V i

W i Pi V i 1

Qi Pi U i 1

4.Находим решение системы:

X n V n

i n 1 1 X i U i X i 1 V i

5.Решение,невязка,проверка с помощью встроенной функции:

X

0.527826

0.63913

0.695652

1.478261

W M X

0

0

0

0

lsolve M W( )

0.527826

0.63913

0.695652

1.478261

РЕПОЗИТОРИЙ БГ

ПУ

Page 25: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

27

Пусть диагональные элементы матрицы коэффициентов не равны нулю.

Запишем систему так:

112 11 1 2

11 11 11

221 22 1 2

22 22 22

1 21 2

0

0

0 ,

nn

nn

n n nn n

nn nn nn

aa bx x x x

a a a

aa bx x x x

a a a

a a bx x x x

a a a

(3)

или в матричной форме

X = DX + C. (4)

Здесь D – матрица с нулевыми диагональными элементами, где

ij

ij

ii

ad

a , , , 1, , , i

i

ii

bc i j n i j

a .

Возьмем произвольные начальные приближения (0) (0) (0)

1 2, , , nx x x неиз-

вестных и подставим в правые части системы (3). Из каждого уравнения найдем

их новые значения (1) (1) (1)

1 2, , , nx x x , которые затем опять подставим в уравнения

и найдем (2) (2) (2)

1 2, , , nx x x и т. д.

Если диагональные коэффициенты матрицы A системы (1) достаточно ве-

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

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

ся к решению. Для начальных приближений (0) (0) (0)

1 2, , , nx x x обычно берутся

правые части 1 2, , , nb b b или значения 1 11 2 22/ , / , , /n nnb a b a b a .

Метод итераций выгодно применять для решения систем большого раз-

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

П р и м е р решения линейной системы по методу итераций.

Д о к у м е н т M a t h c a d.

1.Определим коэффициенты исходной системы уравнений:

ORIGIN 1

A

4

0.09

0.04

0.24

3

0.08

0.08

0.15

4

B

8

9

20

Определитель матрицы коэффициентов A 47.87

РЕПОЗИТОРИЙ БГ

ПУ

Page 26: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

28

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

получают по формулам ( 1) ( ) ( )

1

1, 1

nk k k

i i ij j i

jii

x x a x b i na

. (5)

Вычисления можно остановить, если для последовательных итераций k и k+1

выполнены неравенства ( 1) ( ) ( )

1

1, 1,2, ,

nk k k

i i ij j i

jii

x x a x b TOL i na

.

П р и м е р решения линейной системы по методу итераций.

Д о к у м е н т M a t h c a d.

2.Формируем матрицы приведенной системы:

n rows A( ) i 1 n j 1 n

CiBi

Ai i Di j

Ai j

Ai i Di i 0 C

2

3

5

D

0

0.03

0.01

0.06

0

0.02

0.02

0.05

0

3.Таблица сходимости метода итераций:

m 8 (количество итераций) k 1 m

TAB1

C TABk 1

D TABk

C

TAB

2

3

5

1.92

3.19

5.04

1.9094

3.1944

5.0446

1.90923

3.19495

5.04479

1.9092

3.19496

5.04481

1.9092

3.19496

5.04481

1.9092

3.19496

5.04481

1.9092

3.19496

5.04481

1.9092

3.19496

5.04481

4.Выделяем столбец,содержащий последнее приближение:

X TABm 1

5.Решение,невязка,п роверка с помощью встроенной функции:

X

1.909198

3.194964

5.044807

B A X

2.833 1011

3.521 1011

2.088 1011

lsolve A B( )

1.909198

3.194964

5.044807

1.Программа метода итераций:

ORIGIN 1

РЕПОЗИТОРИЙ БГ

ПУ

Page 27: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

29

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

торых на шаге iter выполнены условия сходимости метода итераций.

Iteratio A B n TOL LIM( ) X B

iter 0

iter iter 1

m 0

S1

Ai i1

n

j

Ai j X j

Bi

Yi X i S

m m 1 S TOLif

i 1 nfor

X Y

X

iter

return m nif

iter LIMwhile

X

"no solution found"

return

2.Определим коэффициенты исходной системы:

A

7.6

2.2

1.3

0.5

9.1

0.2

2.4

4.4

5.8

B

1.9

9.7

1.4

n rows A( ) TOL 106

3.Найдем решение:

LIM 6X

iter

Iteratio A B n TOL LIM( ) iter "no solution found"

LIM 30X

iter

Iteratio A B n TOL LIM( ) X

0.2475159

1.1145646

0.2243349

iter 8

4.Невязка,п роверка решения с помощью встроенной функции:

B A X

4.617 107

5.046 107

0

lsolve A B( )

0.247516

1.1145646

0.2243349

РЕПОЗИТОРИЙ БГ

ПУ

Page 28: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

30

Метод Зейделя

Метод Зейделя можно рассматривать как модификацию метода итераций.

Он заключается в том, что при вычислении по формулам (5) очередного (k+1)-

го приближения xi, i > 1 берутся не k-е приближения неизвестных x1, x2,…, xi–1,

а уже полученные их (k+1)-е приближения. То есть при вычислении )1(

2k

x ис-

пользуется найденное ранее значение )1(

1k

x , при вычислении )1(

3k

x – значения

)1(1

kx ,

)1(2k

x и т. д. Условия сходимости метода итераций остаются верными и

для метода Зейделя. Первый, как правило, сходится быстрее, хотя это бывает не

всегда.

Алгоритм метода Зейделя легко получить из алгоритма метода итераций

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

жения неизвестных, на вектор X.

Плохая обусловленность линейных систем

Пусть A – матрица, определитель которой не равен нулю. Обратная мат-

рица A–1

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

отвечают малые изменения элементов обратной матрицы. Если же малые изме-

нения элементов A приводят к большим изменениям элементов A–1

, то обратная

матрица называется неустойчивой.

Матрица A называется хорошо обусловленной, если матрица A–1

устойчи-

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

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

у которых определитель близок к нулю (однако так бывает не всегда). Плохую

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

мое как произведение 1( ) 1cond A A A . Здесь A – любая норма матрицы

(например, 1-норма, вычисляемая по формуле 1 1

1

maxn

ijj n

i

A a

). Чем больше

значение ( )cond A , тем хуже обусловлена матрица A.

Если матрица линейной системы уравнений плохо обусловлена, то незна-

чительные изменения ее коэффициентов могут приводить к большим измене-

ниям решения.

П р и м е р плохой обусловленности линейных систем.

Д о к у м е н т M a t h c a d.

ORIGIN 1

1.Рассмотрим систему уравнений AX = B:

РЕПОЗИТОРИЙ БГ

ПУ

Page 29: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

31

Функция cond1(A) вычисляет число обусловленности матрицы A.

Из сравнения матриц этого примера видно, что их соответственные ко-

эффициенты различаются не более чем на 0.01%, однако корни линейных си-

стем отличаются друг от друга значительно. То есть численные методы могут

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

A

1

1

2

1

3

1

4

1

2

1

3

1

4

1

5

1

3

1

4

1

5

1

6

1

4

1

5

1

6

1

7

B

1

0

0

0

A1

16

120

240

140

120

1200

2700

1680

240

2700

6480

4200

140

1680

4200

2800

2.Определитель матрицы А: A 1.653 107

3.Число обусловленности (в 1- норме):

cond1 A( ) 2.837 104

4.Решение и невязка:

X lsolve A B( ) X

16

120

240

140

B A X

0

0

0

0

5.Заменим матрицу А ее некоторым приближением:

A

1.0000

0.5000

0.3333

0.2500

0.5000

0.3333

0.2500

0.2000

0.3333

0.2500

0.2000

0.1667

0.2500

0.2000

0.1667

0.1429

A1

18.73

149.61

310.06

185.09

149.61

1520.89

3459.23

2168.49

310.06

3459.23

8275.93

5355.27

185.09

2168.49

5355.27

3543.02

A 1.296 107

cond1 A( ) 3.625 104

6.Решение новой системы:

X lsolve A B( ) X

18.731

149.605

310.063

185.088

B A X

1.11 1015

1.686 1015

0

0

РЕПОЗИТОРИЙ БГ

ПУ

Page 30: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

32

плохо обусловленных систем. Обычно уже при ( ) 1000cond A для них требу-

ются специальные приемы решения.

П р и м е р плохо обусловленной матрицы, определитель которой равен 1.

Д о к у м е н т M a t h c a d.

Упражнения и задачи

1. Матрица [ ], , 1,2, ,ijA a i j n называется нижней треугольной, если

aij = 0 для всех i < j. Разработать алгоритм для получения решения линейных

систем с нижней треугольной матрицей коэффициентов. Применить алгоритм к

решению системы

1

1 2

1 2 3

1 2 3 4

3 6

5 6 4

4 7 2 7

3 2 4 20

x

x x

x x x

x x x x

2. Найти кривую пятого порядка 2 3 4 5

0 1 2 3 4 5( )y x a a x a x a x a x a x ,

которая проходит через точки (0, 1), (1, 3), (2, 2), (3, 1), (4, 3), (5, 2). Построить

график функции y(x) с заданными точками на нем.

3. Реализовать метод Гаусса в виде программы и найти решение следую-

щей системы уравнений. Сравнить полученный ответ с точным решением

1 2 3 4 5 1x x x x x . Вычислить (по определению) число обусловленности

матрицы коэффициентов системы.

1 2 3 4 5

1 2 4 5

1 3 4 5

1 2 4 5

1

0.38 0.05 0.01 0.02 0.07 0.43

0.052 0.595 0.04 0.04 0.647

0.03 0.478 0.14 0.08 0.349

0.06 0.126 0.47 0.02 0.516

0.25 0.09

x x x x x

x x x x

x x x x

x x x x

x x

3 4 50.01 0.56 0.91.x x

4. Реализовать метод квадратных корней в виде программы и найти ре-

шение следующей системы уравнений.

A

5

7

6

5

7

10

8

7

6

8

10

9

5

7

9

10

A1

68

41

17

10

41

25

10

6

17

10

5

3

10

6

3

2

A 1 A1

1 cond1 A( ) 4.488 103

РЕПОЗИТОРИЙ БГ

ПУ

Page 31: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

33

1 2 3

1 2 3

1 2 3

1.54 0.75 1.36 2.45

0.75 0.87 0.79 1.07

1.36 0.79 0.64 0.54.

x x x

x x x

x x x

5. Реализовать метод Зейделя в виде программы. Найти решение следу-

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

результаты.

1 2 3

1 2 3

1 2 3

7.6 0.5 2.4 1.9

2.2 9.1 4.4 9.7

1.3 0.2 5.8 1.4.

x x x

x x x

x x x

4. Решение систем нелинейных уравнений

В подавляющем большинстве случаев нелинейные системы решают ите-

рационными методами.

Метод итераций

Метод применим к системам уравнений, которые приведены к виду:

1 1 1 2

2 2 1 2

1 2

( , , )

( , , )

( , , )

n

n

n n n

x f x x x

x f x x x

x f x x x

(1)

Возьмем некоторые начальные приближения (0) (0) (0)

1 2, , , nx x x неизвестных

и подставим в правые части системы. Из каждого уравнения найдем их новые

значения (1) (1) (1)

1 2, , , nx x x , которые затем опять подставим в уравнения и найдем (2) (2) (2)

1 2, , , nx x x и т. д. Если справедливо одно из условий

nix

fn

j j

i ,,2,1 ,11

или njx

fn

i j

i ,,2,1 ,11

,

то последовательность приближений сходится к решению системы (1). Началь-

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

П р и м е р. Решить по методу итераций систему уравнений

3 3

3 3

6 3 0

6 2 0

x y x

x y y

РЕПОЗИТОРИЙ БГ

ПУ

Page 32: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

34

Д о к у м е н т M a t h c a d.

1.Вспомогательный график:

y1 x( )3

3 6 x x3

x1 y( )3

2 6 y y3

3 2 1 0 1 2 3

3

2

1

1

22

3

y1 x( )

y

33 x x1 y( )

2.Определим правые части приведенной системы:

f1 x y( )x

3y3

6

1

2 f2 x y( )

x3

y3

6

1

3

3.Начальные приближения для поиска одного из корней:

x0 0.5 y0 0.5

4.Проверка сходимости метода:

A x y( )x

f1 x y( )d

d yf1 x y( )

d

d B x y( )

xf2 x y( )

d

d yf2 x y( )

d

d

A x0 y0( ) 0.25 B x0 y0( ) 0.25

5.Таблица сходимости:

m 7 (количество итераций) k 0 m 1

X 0

Y0

x0

y0

X k 1

Yk 1

f1 X k Yk

f2 X k Yk

XY stack XT

YT

XY0.5

0.5

0.541667

0.333333

0.532661

0.353648

0.53256

0.35115

0.532391

0.351291

0.532375

0.351258

0.532371

0.351258

0.532371

0.351258

6.Решение и невязка:

x

y

XYm 1

x

y

0.532371

0.351258

f1 x y( )

f2 x y( )

x

y

1.215 10

7

4.944 108

РЕПОЗИТОРИЙ БГ

ПУ

Page 33: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

35

Функция Find(x, y) находит вектор решений системы алгебраических

уравнений, если для неизвестных x, y заданы начальные приближения. Функция

stack(A, B) присоединяет сверху к матрице A матрицу B.

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

получают по формулам ( 1) ( ) ( ) ( )1 2( , , , ), 1,2, ,k k k k

i i nx f x x x i n . Вычисления

заканчивают на шаге k, если верны условия ( 1) ( ) , 1,2, ,k k

i ix x TOL i n .

Метод Ньютона

Метод Ньютона (или Ньютона-Рафсона) применяется к системам урав-

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

1 1 2

2 1 2

1 2

( , , ) 0

( , , ) 0

( , , ) 0

n

n

n n

f x x x

f x x x

f x x x

, (2)

где 1 2, , , nf f f – дифференцируемые функции.

Пусть выбраны некоторые начальные приближения (0) (0) (0)

1 2, , , nx x x . Каж-

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

(0) (0) (0) (0) (0)1 1 11 1 1 1 2 2

1 2

(0) (0) (0) (0) (0)

1 1 1 2 2

1 2

( , ) ( ) ( ) ( ) 0

( , ) ( ) ( ) ( ) 0

n n n

n

n n nn n n n

n

f f ff x x x x x x x x

x x x

f f ff x x x x x x x x

x x x

Если приближения (0) (0) (0)

1 2, , , nx x x достаточно близки к точному реше-

нию, то вместо нелинейной системы (2) можно взять линейную систему

(0) (0) (0)

1 1 1 1

(0) (0) (0)

(0) (0) 2 2 2 1

1

(0) (0) (0)

1

( , )

( , )( , )

( , )

n

nn

n n n n

x x f x x

x x f x xJ x x

x x f x x

. (3)

Здесь 1( , )nJ x x – матрица частных производных или матрица Якоби.

7.Проверка с помощью встроенной функции:

x x0 y y0

Given

x3

y3

6 x 3 0 x3

y3

6 y 2 0 Find x y( )0.53237

0.351257

РЕПОЗИТОРИЙ БГ

ПУ

Page 34: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

36

1 1 1 1 1 1

1 2

2 1 2 1 2 1

1 21

1 1 1

1 2

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

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

( , )

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

n n n

n

n n n

nn

n n n n n n

n

f x x f x x f x x

x x x

f x x f x x f x x

x x xJ x x

f x x f x x f x x

x x x

Если определитель (0) (0)

1( , , )nJ x x не равен нулю, то система (3) имеет

единственное решение, которое принимается за новое приближение (1) (1) (1)

1 2, , , nx x x . Затем решается аналогичная система для нахождения прибли-

жения (2) (2) (2)

1 2, , , nx x x и т. д.

В общем случае полученную линейную систему можно решать итераци-

онно. Если размерность ее невелика (n = 2 или n = 3), то решение легко полу-

чить и по формулам Крамера, и с помощью обращенной матрицы Якоби.

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

1 2( , ) 0 ( , ) 0f x y f x y

в первом случае последовательные приближения вычисляют по формулам ( ) ( ) ( ) ( )

( 1) ( ) ( 1) ( )

( ) ( ) ( ) ( )

( , ) ( , ),

( , ) ( , )

k k k k

k k k k

k k k k

A x y B x yx x y y

J x y J x y

, где

1 11 1

2 22 2

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

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

( , ) ( , )

f x y f x yf x y f x yy x

A x y B x yf x y f x y

f x y f x yy x

,

1 1

2 2

( , ) ( , )

( , ) 0( , ) ( , )

f x y f x y

x yJ x y

f x y f x y

x y

.

Во втором случае их получают из решения линейной системы ( ) ( )( 1) ( )

1 ( ) ( ) 1

( ) ( )( 1) ( )

2

( , )( , )

( , )

k kk kk k

k kk k

f x yx xJ x y

f x yy y

.

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

П р и м е р. Решить по методу Ньютона систему уравнений 3 21 0 5 0xy y x y y

РЕПОЗИТОРИЙ БГ

ПУ

Page 35: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

37

Д о к у м е н т M a t h c a d.

1.Вспомогательный график:

x1 y( )1 y

3

y y1 x( )

5

1 x2

1 1.5 2 2.5 3 3.5 4 4.5 5

1

0.5

0.5

1

1.5

22

1

y

y1 x( )

51 x1 y( ) x

2.Определим исходные функции:

f1 x y( ) x y y3

1 f2 x y( ) x2

y y 5

3.Начальные приближения для поиска одного из корней:

x0 2 y0 1.2

4.Матрица Якоби:

J x y( )x

f1 x y( )d

d

xf2 x y( )

d

d

yf1 x y( )

d

d

yf2 x y( )

d

d

J x y( )y

2 x y

x 3 y2

x2

1

J x0 y0( ) 17.1

A x y( )

f1 x y( )

f2 x y( )

yf1 x y( )

d

d

yf2 x y( )

d

d

A x y( )x y y

3 1

x2

y y 5

x 3 y2

x2

1

B x y( )x

f1 x y( )d

d

xf2 x y( )

d

d

f1 x y( )

f2 x y( )

B x y( )y

2 x y

x y y3

1

x2

y y 5

5.Таблица сходимости метода:

m 4 (количество итераций) k 0 m 1

РЕПОЗИТОРИЙ БГ

ПУ

Page 36: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

38

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

на шаге k, как только выполнены условия ( 1) ( ) , 1,2, ,k k

i ix x TOL i n .

Упражнения и задачи

1. Методом итераций решить следующую нелинейную систему. Началь-

ные приближения определить графически.

sin( ) 1.32

cos( ) 0.85

x y

y x

2. Пусть имеется система трех уравнений

2

2

3

12 3 4 7.17

10 11.54

7 7.631

x y z

x y z

y z

а) Получить решение x, y, z системы по методу Ньютона. За начальные

приближения взять значения 0 0 0 0.x y z

б) С помощью третьего уравнения исключить из системы z и получить

решения x, y приведенной системы из двух уравнений.

X 0

Y0

x0

y0

X k 1

Yk 1

X k

A X k Yk J X k Yk

Yk

B X k Yk J X k Yk

XY stack XT

YT

XY2

1.2

1.960317

1.038095

1.996622

1.00194

1.999989

1.000006

2

1

6.Решение и н евязка(значения нелинейных функций):

x

y

XYm 1

x

y

2

1

f1 x y( )

f2 x y( )

1.8938451 1010

1.555911 1010

7.Проверка с помощью встроенной функции:

x x0 y y0

Given x y y3

1 0 x2

y y 5 0 Find x y( )2

1

РЕПОЗИТОРИЙ БГ

ПУ

Page 37: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

39

3. Реализовать метод итераций в виде программы и с ее помощью найти

все корни системы уравнений на отрезке [– 3, 3]. 3 3

3 3

6 3 0

6 2 0

x y x

x y y

5. Интерполирование функций

П о с т а н о в к а з а д а ч и. Пусть в точках x0 < x1 < … < xn, называемых

узлами, функция y = f(x) задана таблицей значений

y0 = f(x0), y1 = f(x1), …, yn = f(xn). (1)

Задача интерполирования заключается в построении функции g(x), кото-

рую можно вычислить для любого x0 ≤ x ≤ xn, такой, что g(xi) = yi,

i = 0, 1,…, n. Геометрически это означает, что надо провести гладкую кривую,

проходящую через систему данных точек.

На практике для интерполирования табличной функции удобны полиномы.

Наиболее часто используются полиномы в форме Лагранжа и Ньютона.

Полином Лагранжа

Полином Лагранжа записывают в таком виде:

Ln(x) = y0R0(x)+ y1R1(x)+ …+ ynRn(x),

где функциональные коэффициенты

n

ijj ji

ji ni

xx

xxxR

,0

. ,1 ,0 ,)( (2)

Здесь Ri(xi) = 1, Rj(xi) = 0, ij , поэтому Ln(xi) = yi. Шаг таблицы может

быть неравномерным. При n = 1 (линейное интерполирование) формула (2)

представляет уравнение прямой, проходящей через две точки (x0, y0), (x1, y1):

01

01

10

101 )(

xx

xxy

xx

xxyxL

.

При n = 2 (квадратичное интерполирование) формула задает уравнение

параболы, проходящей через три точки (x0, y0), (x1, y1), (x2, y2). В общем случае

Ln(x) – это полином степени не большей, чем n, который проходит через n + 1

точку (x0, y0), (x1, y1),…, (xn, yn).

РЕПОЗИТОРИЙ БГ

ПУ

Page 38: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

40

П р и м е р. Для приближенного вычисления sin10

построить парабо-

лу, которая интерполирует функцию sin( )x по точкам 1 1 1

(0,0), , , ,1 .6 2 2

Д о к у м е н т M a t h c a d.

1.Определим исходную таблицу данных:

X 01

6

1

2

T

Y 01

21

T

2.Полином Лагранжа,построенный по трем точкам:

R0 x( )x X 1 x X 2

X 0 X 1 X 0 X 2 collect x 12 x

2 8 x 1

R1 x( )x X 0 x X 2

X 1 X 0 X 1 X 2 collect x 18 x

2 9 x

R2 x( )x X 0 x X 1

X 2 X 0 X 2 X 1 collect x 6 x

2 x

L2 x( ) Y0 R0 x( ) Y1 R1 x( ) Y2 R2 x( ) collect x 3 x2

7

2x

3.График интерполирования: y x( ) sin x

1 0.5 0 0.5 1

1

1

Y

y x( )

L2 x( )

X x x

4.Погрешность интерполирования:

x01

10 y x0( ) 0.309 L2 x0( ) 0.32 y x0( ) L2 x0( ) 0.011

5.Полином Лагранжа в общем виде:

L x( )

0

last X( )

i

Yi

0

last X( )

j

if i j 1x X j

X i X j

L x0( ) 0.32

РЕПОЗИТОРИЙ БГ

ПУ

Page 39: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

41

З а м е ч а н и е. За пределами отрезка [x0, xn] полином Лагранжа может

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

рисунке этого примера.

Формула (2) достаточно проста и удобна для программирования. Алго-

ритм вычисления Ln(x) определяют следующие рекуррентные соотношения.

1 1

1 1

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

( ) 1, ( ) ( )( ) /( ), 0, 1, , , .

i i i i

i i j i j

L x L x L x R x y i n

R x R x R x x x x x j n j i

Д о к у м е н т M a t h c a d.

Погрешность R формулы Лагранжа для функции y = f(x) может быть опре-

делена из неравенства

0 1( ) ( ) ( ) ( )( ) ( )( 1)!

n n

MR x f x L x x x x x x x

n

, где ( 1)max ( )n

a x bM f x

.

П р и м е р. Оценить погрешность приближения функции y x полино-

мом второй степени при x = 115, выбрав узлы интерполирования x0 = 100,

x1 = 121, x2 = 144.

Д о к у м е н т M a t h c a d.

Lagrange X Y x( ) L 0

n last X( )

R 1

R Rx X j X i X j

j iif

j 0 nfor

L L R Yi

i 0 nfor

Lreturn

Программа вычисления

полинома Лагранжа

X,Y - таблица функции

1.Определим исходную функцию и значения аргумента:

y x( ) x X0 100 X1 121 X2 144

2.Найдем наибольшее значение третьей производной:

p x( )3xy x( )

d

d

3

p x( )3

8 x

5

2

M p X 0 M simplify3

800000

РЕПОЗИТОРИЙ БГ

ПУ

Page 40: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

42

З а м е ч а н и я. Погрешность интерполирования зависит от количества уз-

лов, а также от их расположения на отрезке. Нередко при добавлении новых

узлов она не только не уменьшается, но и начинает расти. Если, например,

интерполировать функцию 2( ) 1/(1 25 )R x x в равноотстоящих точках на

[–1, 1], то будет получен полином, который (с ростом количества узлов n) не-

ограниченно растет вблизи концов указанного отрезка. В то же время, интерпо-

лирование дает хороший результат в его средней части. Для сравнения на рис.

5.1 и 5.2 представлены графики полиномов Лагранжа (жирная линия) для

функции R(x), построенные по таблице из 7 и 11 узлов.

Рис. 5.1

Рис. 5.2

Вычислительная схема Эйткена

Если надо найти с помощью интерполирования некоторое значение таб-

личной функции, а общее выражение полинома Лагранжа для нее не требуется,

то удобна более экономная вычислительная схема Эйткена.

Определим специальные полиномы первой степени:

nixx

yxxyxx

yxx

yxx

xxxxxL

ii

iiii

ii

ii

iiii ,0 ,

)()(1),,(

1

11

1111

.

Например,

3.Максимальная погрешность интерполирования:

n 2 R x( )M

n 1( )0

n

k

x X k

R 115( ) 1.631 103

1 0 1

1

0.5

0.5

1

1.5

22

1

Y i

L x( )

R x( )

1.11.1 X i x x

1 0 1

1

0.5

0.5

1

1.5

22

1

Y i

L x( )

R x( )

1.11.1 X i x xРЕПОЗИТОРИЙ БГ

ПУ

Page 41: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

43

11

00

0110

1),,(

yxx

yxx

xxxxxL

,

22

11

1221

1),,(

yxx

yxx

xxxxxL

и т. д.

Полиномы k-й степени получают из полиномов (k–1)-й степени с помо-

щью рекуррентной формулы

),,,,(

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

21

111

kiiiki

kiiii

ikikiii

xxxxLxx

xxxxLxx

xxxxxxL

,

где k = 1, 2,…, n, i = 0, 1,…, n – k.

Например, ),,(

),,(1),,,(

212

100

02210

xxxLxx

xxxLxx

xxxxxxL

и т. д. Можно пока-

зать, что в этих обозначениях справедливо равенство

Ln(x) = L(x, x0, x1, … , xn ).

Последовательно вычисляемые значения L(x, xi, xi+1, … , xi+k ) располага-

ют в виде таблицы:

x y 1 2 … n

x0 x – x0 y0 L(x, x0, x1) L(x, x0, x1, x2) … L(x, x0, x1, …, xn)

x1 x – x1 y1 L(x, x1, x2) L(x, x1, x2, x3)

… … … … …

… … … L(x, xn-1, xn)

xn x – xn yn

Формулы и таблица определяют алгоритм вычисления Ln(x). При его

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

L(x, xi, xi+1, … , xi+k ) записываются на место для yi, i = 0, 1,…, n – k.

Д о к у м е н т M a t h c a d.

З а м е ч а н и е. Метод позволяет контролировать погрешность интерпо-

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

Вычисления можно остановить, как только значения L(x, x0, x1, … , xn ) и L(x, x0,

x1, … , xn+1) сравняются в пределах заданной точности результата.

Программа вычисления полинома Лагранжа

Lagrange X Y x( ) n last X( )

Yi

x X i Yi 1 x X i k Yi

X i k X i

i 0 n kfor

k 1 nfor

Y0return

РЕПОЗИТОРИЙ БГ

ПУ

Page 42: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

44

Полином Ньютона

Пусть функция f(x) задана таблицей значений yi = f(xi) в узлах xi, которые

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

11

1

[ , ] , 0, 1, ,i ii i

i i

y yx x i n

x x

.

Например, 1 0 2 10 1 1 2

1 0 2 1

[ , ] , [ , ]y y y y

x x x xx x x x

и т. д.

Разности k-го порядка получают из разностей (k–1)-го порядка по рекур-

рентной формуле

1 11

[ , , ] [ , , ][ , , , ] , 1, , , 0, 1, , .i i k i i k

i i i ki k i

x x x xx x x k n i n k

x x

Например, 1 2 0 10 1 2

2 0

[ , ] [ , ][ , , ]

x x x xx x x

x x

и т. д.

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

x y k = 1 k = 2 … k = n

x0 y0 [ x0, x1] [x0, x1, x2] … [x0, x1, x2, … ,xn]

x1 y1 [x1, x2] [x1, x2, x3]

… … … …

… … [xn-1, xn]

xn yn

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

0 1 0 0 1 1( ) ( ) ( )( ) ( )n n nN x a a x x a x x x x x x , где

0 0 0 1, [ , , , ], 1, 2, , .k ka y a x x x k n

Таблицу разностей можно хранить в виде матрицы D, где

0i iD y , 1 1 1i k ikik

i k i

D DD

x x

, 1, , , 0, ,k n i n k .

П р и м е р. Составить таблицу разделенных разностей функции

y = cos(x), основанную на узлах x0 = 0, x1 = 1, x2 = 2, x3 = 3, x4 = 4. По таблице

построить четыре полинома Ньютона N1(x), N2(x), N3(x), N4(x).

Д о к у м е н т M a t h c a d.

1.Определим исходную таблицу:

n 4 i 0 n X i i Yi cos X i

РЕПОЗИТОРИЙ БГ

ПУ

Page 43: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

45

2.Программа,которая формирует таблицу разностей:

Таблица X Y n( ) D Y

Di kDi 1 k 1 Di k 1

X i k X i

i 0 n kfor

k 1 nfor

Dreturn

Таблица X Y n( )

1

0.5403

0.41615

0.98999

0.65364

0.4597

0.95645

0.57385

0.33635

0

0.24838

0.1913

0.4551

0

0

0.14656

0.08793

0

0

0

0.01466

0

0

0

0

3.Определим четыре полинома Ньютона:

N1 x( ) 1 0.4597 x 0( )

N2 x( ) N1 x( ) 0.24838 x 0( ) x 1( )

N3 x( ) N2 x( ) 0.14656 x 0( ) x 1( ) x 2( )

N4 x( ) N3 x( ) 0.01466 x 0( ) x 1( ) x 2( ) x 3( )

N1 x( ) collect x 1 .4597 x

N2 x( ) collect x .24838 x2

.21132 x 1

N3 x( ) collect x .14656 x3

.68806 x2

8.180 10-2

x 1

N4 x( ) collect x 1.466 10-2

x4

.23452 x3

.84932 x2

.16976 x 1

4.Графики полиномов N2(x), N3(x) вместе с функцией cos(x):

0 1 2 3

1

11.1

1.1

cos x( )

N2 x( )

Y0

3.10 x x X

0 1 2 3

1

11.1

1.1

cos x( )

N3 x( )

Y0

3.10 x x X

РЕПОЗИТОРИЙ БГ

ПУ

Page 44: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

46

Обозначим произведение (x–x0)(x–x1)… (x–xk–1) через Pk(x). Алгоритм вы-

числения Nn(x) при его программной реализации определяют рекуррентные со-

отношения

0 1 1

0 0 1 0

( ) 1, ( ) ( )( ),

( ) , ( ) ( ) [ ,..., ] ( ), 1,2, , .

k k k

k k k k

P x P x P x x x

N x y N x N x x x P x k n

Последовательно вычисляемые разности [xi, xi+1, … , xi+k] записываются

на место, отведенное для yi, i = 0, 1,…, n – k.

Д о к у м е н т M a t h c a d.

З а м е ч а н и я. По сравнению с формулой Лагранжа формула Ньютона

определяет коэффициенты полинома. Она имеет также и ряд других преиму-

ществ. Если к x0,…, xn прибавить новый узел n+1, то к полиному Nn(x) присо-

единяется еще только одно слагаемое:

Nn+1(x) = Nn(x) + [x0, … xn, xn+1](x–x0)(x–x1)… (x–xn).

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

их по одному, и постепенно увеличивая точность результата. На практике (на

небольших отрезках) обычно бывает достаточно выбрать из данной таблицы

три или четыре узла (n = 2 или n = 3).

Полином Ньютона для случая равноотстоящих узлов

Пусть функция y = f(x) задана таблицей в равноотстоящих узлах xi, где

xi+1– xi = h, i = 0, 1, …, n–1. Величины iii yyy 11 называют конечными раз-

ностями первого порядка функции f(x) в точке xi. Конечные разности k-го

5.Погрешность интерполирования в точке x = 1.2 :

x0 1.2 cos x0( ) 0.36236 N2 x0( ) 0.38875 N3 x0( ) 0.36061

cos x0( ) N2 x0( ) 2.639 102

cos x0( ) N3 x0( ) 1.748 103

Newton X Y n x( ) P 1

N Y0

Yi

Yi 1 Yi

X i k X i

i 0 n kfor

P P x X k 1

N N Y0 P

k 1 nfor

Nreturn

Программа вычисления

полинома Ньютона

X,Y - векторы, которые

задают таблицу функции

РЕПОЗИТОРИЙ БГ

ПУ

Page 45: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

47

порядка получают из разностей (k–1)-го порядка по рекуррентной формуле

ik

ik

ik yyy 1

11

, где k = 1, …, n и ii yy 0 .

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

, где ,!

)1)...(1(

!2

)1()( 0

002

01

0h

xxqy

n

nqqqy

qqyqyxN n

или так:

1 21 2 0

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

2! !

n nn n n

x xq q q q q nN x y q y y y q

n h

.

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

x y ∆1y ∆

2y ∆

ny

x0 y0 ∆1y0 ∆

2y0 … ∆

ny0

x1 y1 ∆1y1 ∆

2y1 …

… … … …

xn-1 yn-1 ∆1yn-1

xn yn

В первой формуле Ньютона используются разности верхней строки этой

таблицы. Формулу применяют для интерполирования вблизи начального узла

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

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

вблизи последнего узла xn.

Обозначим!

)1)...(1()(

k

kqqqxPk

. Тогда алгоритм вычисления поли-

нома Nn(x) по первой формуле определяют рекуррентные соотношения

0 1

0 0 1 0

1( ) 1, ( ) ( ) ,

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

k k

kk k k

q kP x P x P x

k

N x y N x N x P x y k n

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

( )!

k

q q q kP x

k

. Алгоритм вычисления Nn(x) по

второй формуле определяют соотношения

0 1

0 1

1( ) 1, ( ) ( ) ,

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

k k

kn k k k n k

q kP x P x P x

k

N x y N x N x P x y k n

В практических вычислениях, если разности ∆n+1

y почти равны и h доста-

точно мало, то погрешность R формул Ньютона можно соответственно оценить

из таких соотношений:

1 01 0

( 1)...( )( ) ,

( 1)!

n x xq q q nR x y q

n h

,

РЕПОЗИТОРИЙ БГ

ПУ

Page 46: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

48

12

( 1)...( )( ) ,

( 1)!

n nn

x xq q q nR x y q

n h

.

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

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

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

рис. 5.3 показан график полинома Лагранжа (на достаточно протяженном

отрезке) для y = 3 x . Значения полинома почти всюду сильно отличаются от

значений приближаемой функции.

Рис. 5.3

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

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

тельно простых функций). В теории приближения функций такие составные

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

нию, которую образует упругая линейка, закрепленная в ряде точек (узлов).

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

пользуемых на практике.

П о с т а н о в к а з а д а ч и. Пусть функция f(x) задана таблицей yi = f(xi),

i = 0, 1, … , n, узлы которой x0 < x1 < … < xn не обязательно расположены рав-

номерно. Требуется построить функцию S(x), такую, что

а) график S(x) проходит через каждую данную точку, то есть

S(xi) = yi, i = 0, 1, … , n;

б) на каждом из отрезков [xi, xi+1], i = 0, 1, … , n–1 функция S(x) является

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

1 Название берет начало от английского splain – «гибкая линейка»

0 2 4 6 8 10 12

1

2

33

0

y x( )

L x( )

Y

120 x x X

РЕПОЗИТОРИЙ БГ

ПУ

Page 47: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

49

2 31( ) ( ) ( ) ( ) , , 0, 1, , 1;

2 6

i ii i i i i i i i

c dS x a b x x x x x x x x x i n

в) на всем отрезке [x0, xn] S(x) имеет две непрерывные производные

2( ) ( ) ( ) ,2i i

ii i i

dS x b c x x x x

( ) ( ), 0, 1, , 1.i i i iS x c d x x i n

При этом ( ) , ( ) , ( ) , ( ) 0, 1, , 1.i i i i i i i i i i i iS x a S x b S x c S x d i n

Так как на каждом из n отрезков между узлами сплайн S(x) определяется

четырьмя коэффициентами, то для его полного построения необходимо найти

4n чисел. По определению сплайна значения S(x) и функции f(x) равны для всех

узлов:

Si(xi) = yi, Si(xi+1) = yi+1, i = 0, 1, … , n – 1. (1)

Для внутренних узлов равны значения первой и второй производных со-

седних отрезков сплайна:

),()( ),()( 111111 iiiiiiii xSxSxSxS i = 0, 1, … , n – 2. (2)

Для концевых узлов x0, xn обычно полагают

0 0 1( ) 0, ( ) 0n nS x S x . (3)

Это означает, что сплайн заканчивается как прямая (линия нулевой кри-

визны). Существуют граничные условия и других типов.

Из соотношений (1) – (3) получают расчетные формулы для вычисления

всех коэффициентов кубического сплайна.

Для сокращения записи обозначим hi = xi – xi–1, i = 1, 2, …, n.

Условия (1) позволяют записать следующие равенства:

ai = yi, i = 0, 1, …, n – 1, (4)

2 31 1 1

2 6

i ii i i i i

c da b h h h = yi+1, i = 0, 1, …, n – 1, (5)

а условия (2) – равенства

21 1

2

ii i i i

db c h h = bi+1, i = 0, 1, …, n – 2, (6)

РЕПОЗИТОРИЙ БГ

ПУ

Page 48: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

50

1i i ic d h = ci+1, i = 0, 1, …, n – 2. (7)

Из равенства нулю второй производной на концах отрезка следует

0 1 10, 0n n nc c d h . (8)

Полученные соотношения образуют систему линейных уравнений отно-

сительно коэффициентов ai, bi, ci, di. Ее выгодно записать так, чтобы неизвест-

ными были только коэффициенты ci (значения второй производной в узлах).

Доопределим cn = 0. Коэффициенты di получим из (7) и (8):

1

1

i ii

i

c cd

h

, i = 0, 1, …, n – 1. (9)

Подстановка ai и di в (5) дает представление для bi:

1 1 1

1

( 2 )

6

i i i i ii

i

y y h c cb

h

, i = 1, 2, …, n – 1. (10)

После подстановки bi и di в (6), упрощения и уменьшения значения ин-

декса i на единицу (для симметрии записи) приходим к уравнениям, которые

содержат только неизвестные коэффициенты ci:

1 11 1 1 1

1

2( ) 6 , 1,2, 1i i i ii i i i i i i

i i

y y y yh c h h c h c i n

h h

. (11)

Уравнения (11) вместе с равенствами c0 = 0, cn = 0 образуют трехдиаго-

нальную линейную систему для определения коэффициентов ci (вторых произ-

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

гонки, а другие коэффициенты сплайна – по формулам (4), (9), (10).

П р и м е р. Построить кубический сплайн для функции

y(x) = ln(x)+3

sin2

x

,

заданной таблицей в точках 1.0, 1.6, 2.8, 4.5, 6.1, 6.6, 7.4, 7.8.

РЕПОЗИТОРИЙ БГ

ПУ

Page 49: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

51

Д о к у м е н т M a t h c a d.

1.Программа вычисления C-коэффициентов сплайна:

Coeff X Y n( ) U0 0

V 0 0

h1 X i X i 1

h2 X i 1 X i

t 2 h1 h2( ) h1 U i 1

U ih2

t

w 6Yi 1 Yi

h2

Yi Yi 1

h1

V iw h1 V i 1

t

i 1 n 1for

Cn 0

Cn 1 V n 1

Ci U i Ci 1 V i

i n 2 1for

C0 0

Creturn

РЕПОЗИТОРИЙ БГ

ПУ

Page 50: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

52

Программа вычисления значений сплайна:

Spline X Y C n x( ) i 0

i i 1

x X i 1while

h X i 1 X i

a Yi

bYi 1 Yi

h

Ci 1 2 Ci h6

c Ci

dCi 1 Ci

h

x x X i

a bc

2

d

6x

x

xreturn

Цикл while

определяет отрезок i,

которому принадлежит

точка x

1.Определим исходную таблицу функции:

X 1.0 1.6 2.8 4.5 6.1 6.6 7.4 7.8( )T

n last X( )

y x( ) ln x( ) sin3

2x

i 0 n Yi y X i

2.Вычислим C-коэффициенты сплайна:

C Coeff X Y n( ) CT

0 2.739 2.871 1.228 1.654 1.275 2.678 0( )

3.Определим сплайн-функцию:

F x( ) Spline X Y C n x( )

4.Погрешность интерполирования для x = 5.5 и x = 7:

F 5.5( ) 2.47008 y 5.5( ) 2.62735 F 5.5( ) y 5.5( ) 1.573 101

F 7( ) 1.06009 y 7( ) 1.06621 F 7( ) y 7( ) 6.121 103

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

Cl lspline X Y( )Cl lspline X Y( )

ClT

0 3 0 0 2.739 2.871 1.228 1.654 1.275 2.678 0( )

fl x( ) interp Cl X Y x fl 5.5( ) 2.4701

РЕПОЗИТОРИЙ БГ

ПУ

Page 51: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

53

Функция lspline(X, Y) вычисляет вектор C коэффициентов сплайна. Три

первых его компонента – служебные, они необходимы для правильной работы

встроенной функции interp. Так, например, второе значение – это порядок са-

мого сплайна, третье – порядок полинома на концах сплайна (0 для прямой,

1 для параболы, 2 для кубической параболы). Следующие компоненты вектора

C содержат значения вторых производных сплайна в узловых точках. Функция

interp(C, X, Y, x) – это сплайн, проходящий через систему точек (X, Y).

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

Если таблица функции содержит результаты какого-то эксперимента, по-

лученные с погрешностью (ошибкой), то не целесообразно проводить кривую

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

другой способ приближенного представления (аппроксимации) табличных

функций, который называется методом наименьших квадратов.

П о с т а н о в к а з а д а ч и. Пусть функция y = f(x) задана таблицей при-

ближенных значений yi = f(xi), i = 0, 1, … , n. Метод наименьших квадратов за-

ключается в построении такой функции g(x), для которой сумма квадратов от-

клонений ее значений в узлах xi от значений yi была бы минимальной:

2

0

( ( ) ) minn

i ii

g x y

.

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

вую, которая нигде не должна сильно от них отклоняться. Метод применяется,

если необходимо найти в явном виде функциональную зависимость между ве-

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

6.График сплайна(жирная линия): x X 0 X 0 0.05 X n

1 2 3 4 5 6 70

1

2

3

y x( )

F x( )

Y

x x X

РЕПОЗИТОРИЙ БГ

ПУ

Page 52: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

54

Сначала ограничимся случаем линейной функции y(x) = kx + d. Пусть

требуется подобрать такие k и d, чтобы значение выражения 2

0

( )n

i i

i

S kx d y

было минимальным.

Приравняем к нулю частные производные по параметрам k и d:

0 0

2 ( ) 0 2 ( ) 0n n

i i i i ii i

S Skx d y x kx d y

k d

.

Перепишем эти равенства в виде системы уравнений:

2

0 0 0 0 0

( 1)n n n n n

i i i i i ii i i i i

k x d x x y k x d n y

и обозначим

i

ii

iii

ii

ii

i ySYYyxSXYxSXXySYxSX 22 , , , , .

Непосредственно решая систему, получим выражения для k и d:

( 1),

( 1) ( 1)

n SXY SX SY SY SXX SX SXYk d

n SXX SX SX n SXX SX SX

.

Для оценки отклонения функции f(x) от линейной зависимости служит

коэффициент линейной корреляции 1 R , вычисляемый по формуле

SYSYSYYnSXSXSXXn

SYSXSXYnR

)1()1(

)1(.

Если 1R , то между x и y существует функциональная линейная зави-

симость. Чем ближе R к нулю, тем она слабее.

П р и м е р. В «Основах химии» Д. И. Менделеева приведены данные о

растворимости азотнокислого натрия NaNO3 в зависимости от температуры во-

ды. Измерения показывают, при какой температуре x (в градусах) в 100 частях

воды растворяется y условных частей NaNO3. Если нанести точки (x, y) на гра-

фик, то можно сделать вывод, что зависимость y от x – линейная. Расчеты по

методу наименьших квадратов дают формулу y = 0.86x+67.61, при этом коэф-

фициент линейной корреляции R = 0.9996.

Д о к у м е н т M a t h c a d.

1.Определим исходную таблицу данных:

M0

66.7

4

71.0

10

76.3

15

80.6

21

85.7

29

92.9

36

99.4

51

111.6

68

125.1

T

РЕПОЗИТОРИЙ БГ

ПУ

Page 53: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

55

Функция last(V) дает индекс последнего компонента вектора V. Функция

line(X, Y) формирует вектор, который содержит коэффициенты линейной зави-

симости для таблицы данных (X, Y). Функция сorr(X, Y) вычисляет коэффици-

ент линейной корреляции векторов X и Y.

Из графика этого примера видно, что найденная линия выравнивания яв-

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

Функциональную нелинейную зависимость между x и y в ряде случаев

можно свести к линейной.

Рассмотрим, например, функцию y = beax

. После логарифмирования имеем

ln(y) = ln(b) + ax. Полагая v = ln(y), c = ln(b), получим линейную по отношению к

X M0

(температура) Y M1

(растворимость)

2.Найдем коэффициенты линейной зависимости:

n last X( ) i 0 n SX

i

X i SY

i

Yi

SXX

i

X i 2

SXY

i

X i Yi SYY

i

Yi 2

kn 1( ) SXY SX SY

n 1( ) SXX SX SX d

SY SXX SX SXY

n 1( ) SXX SX SX k 0.86 d 67.61

Rn 1( ) SXY SX SY

n 1( ) SXX SX SX n 1( ) SYY SY SY R 0.9996

3.График прямой вместе с табличными значениями:

y x( ) k x d x X 0 X 0 0.05 X n

5 5 15 25 35 45 55 65 7560

70

80

90

100

110

120

130130

60

y x( )

Y

755 x X

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

d

k

line X Y( )d

k

67.61

0.86

R corr X Y( ) R 0.9996РЕПОЗИТОРИЙ БГ

ПУ

Page 54: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

56

переменным v и x зависимость v = ax + c. Если теперь преобразовать

исходную таблицу по правилу vi = ln(yi) и подобрать по методу наименьших

квадратов значения коэффициентов a и c, то легко найти b = ec.

П р и м е р. Пусть необходимо представить по некоторой таблице зави-

симость величин x и y в виде функции y(x) = beax

.

Д о к у м е н т M a t h c a d.

Функция slope(X, Y) вычисляет коэффициент k, а intercept(X, Y) – коэф-

фициент d линейной зависимости kx + d.

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

ми. Когда выбрана общая формула, надо найти подходящее преобразование пе-

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

чески важных случаев даны в следующей таблице.

1.Определим исходную таблицу данных:

M10

15.3

20

18.3

30

27.4

40

36.6

50

47.3

60

65.6

70

93.8

80

117.6

T

X M0

Y M1

2.После логарифмирования получим новую таблицу:

i 0 last X( ) V i ln Yi

3.Найдем линейную функцию v = ax+c:

a slope X V( ) c intercept X V( )

4.Найдем нелинейную зависимость:

b ec

a 0.03 b 10.807 y x( ) b eax

5.График полученной функции вместе с табличными данными:

x min X( ) min X( ) 10 max X( )

0 20 40 60 80 10010

30

50

70

90

110

130

y x( )

Y

x X

РЕПОЗИТОРИЙ БГ

ПУ

Page 55: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

57

Функция y(x) Замена переменных Линейная функция

ay b

x

1u

x y au b

ln( )y a x b ln( )u x y au b

axy be ln( ), ln( )v y c b v ax c

ay bx ln( ), ln( ), ln( )v y u x c b v au c

axy bxe ln , ln( )y

v c bx

v ax c

Если вместо линейной функции рассмотреть полином степени m

10 1( ) m m

m mP x a x a x a ,

то можно минимизировать сумму

2

0

( ( ) )n

m i ii

P x y

относительно неизвестных коэффициентов , 0,1, ,ka k m .

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

тырем точкам (-3, 3), (0, 1), (2, 1) и (4, 3).

Д о к у м е н т M a t h c a d.

1.Определим исходную таблицу данных:

X 3 0 2 4( )T

Y 3 1 1 3( )T

2.Определим функцию: P a b c x( ) a x2

b x c

3.Решим систему уравнений:

i 0 3 a 1 b 1 c 1

Given

ia

P a b c X i Yi 2d

d 0

ib

P a b c X i Yi 2d

d 0

ic

P a b c X i Yi 2d

d 0

a

b

c

Find a b c( )

a

b

c

0.1785

0.1925

0.8505

РЕПОЗИТОРИЙ БГ

ПУ

Page 56: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

58

Упражнения и задачи

1. Найти квадратичный полином Лагранжа L2(x), который приближает

функцию y = xx по трем точкам x0 = 1, x1 = 1.25 и x2 = 1.5. На отрезке [0.2, 1.8]

построить графики y = xx и y = L2(x). На отрезке [1, 1.5] составить таблицу

функции ошибок E(x) = xx – L2(x) и построить ее график.

2. Найти кубический полином Лагранжа L3(x), который приближает

функцию cos(x) по четырем точкам x0 = 0, x1 = 0.4, x2 = 0.8 и x3 = 1.2. На отрез-

ке [–0.5, 2] построить графики y = cos(x) и y = L3(x). На отрезке [0, 1.2] соста-

вить таблицу функции ошибок E(x) = cos(x) – L3(x) и построить ее график.

3. На отрезке [– 1.1, 1.1] построить график функции 2( ) 1/(1 25 )R x x

вместе с ее приближениями полиномами Лагранжа L3(x) и L7(x) третьей и седь-

мой степени. Считать, что первый из них проходит через точки x = –1,

– 1+0.5, …1, а второй – через точки x = – 1, –1+0.25, …1.

4. Разработать программу, которая вычисляла бы полином Ньютона Nn(x)

для случая равноотстоящих узлов. На отрезке [0, 3] построить графики функ-

ции y = cos(x) и кубического полинома Ньютона y = N3(x), который приближает

cos(x) по четырем точкам x0 = 0, x1 = 1, x2 = 2 и x3 = 3. Составить таблицу ко-

нечных разностей функции cos(x).

5. Графически сравнить результат приближения на отрезке [–1, 1] функ-

ции 2( ) 1/(1 25 )R x x полиномом Ньютона и кубическим сплайном, используя

7 равномерно распределенных точек.

6. Имеется таблица, которая содержит результаты измерения электриче-

ского сопротивления R (ом) проводника при определенных температурах t

(в градусах):

t 19.1 25 30.1 36.0 40.0 45.1 50.1

R 76.3 77.8 79.75 80.8 82.35 83.9 85.1

3.График параболы: x X 0 X 0 0.05 X 3

4 2 0 2 4

2

4

P a b c x( )

Y

x X

РЕПОЗИТОРИЙ БГ

ПУ

Page 57: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

59

Найти формулу, которая определяла бы зависимость R от t в виде линей-

ной функции R(t) = kt + d. Подставить последовательно все табличные значе-

ния t в полученную формулу, вычислить соответствующие значения R и срав-

нить их с результатами измерений. Построить график R(t) вместе с табличными

значениями.

8. В следующей таблице собраны данные, которые характеризуют основ-

ные притоки Немана.

Название Длина L, км Водосбор S, км2

Вилия 498 25100

Гавья 100 1680

Дитва 93 1220

З. Березина 226 4000

Зельвянка 170 1940

Котра 140 2060

Лебеда 67 791

Молчадь 98 1140

Мяркис 202 4440

Неман 937 98200

Россь 99 1250

З. Свислочь 121 1800

Сула 76 520

Уса 115 1345

Уша 105 1220

Щара 325 6990

Найти формулу, которая определяла бы зависимость S от L в виде функ-

ции S(L) = aLb. Построить график S(L) вместе с табличными данными.

9. Для определения гравитационной постоянной g студенты измерили и

записали в таблицу такие данные:

Время, сек 0.2 0.4 0.6 0.8 1.0

Расстояние, м 0.1960 0.7850 1.7665 3.1405 4.9075

Найти гравитационную постоянную g из соотношения 2

2

gtS по

методу наименьших квадратов.

РЕПОЗИТОРИЙ БГ

ПУ

Page 58: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

60

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

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

числить определенный интеграл

)(b

a

dxxfI . (1)

Если подынтегральная функция f(x) достаточно сложна или задана табли-

цей, то найти точное его значение невозможно. В этом случае используются

приближенные формулы, которые позволяют подсчитать интеграл (1) прямо по

значениям f(x) в отдельно взятых точках (узлах) отрезка [a, b]:

)()(0

n

iii

b

a

xfpdxxf . (2)

Определенный интеграл с пределами изменения x от a до b при f(x) > 0

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

гуры, ограниченной графиком функции f(x), осью Ox и прямыми x = a, x = b.

Поэтому формулы (2) называют квадратурными1.

Формула прямоугольников

Метод прямоугольников – простейший прием численного интегрирова-

ния. Разделим отрезок [a, b] на n частей одинаковой длины h = (b – a)/n.

На каждом из полученных отрезков

[xk, xk+1], где k = 0, 1, …, n–1, x0 = a,

xn = b, заменим функцию f(x) ее значени-

ем в средней точке 2

k

hm a kh . Пло-

щадь под кривой приближенно равна

площади ступенчатой фигуры из прямо-

угольников высотой f(mk) и основанием h.

На рис. 6.1 дана иллюстрация метода для

функции ( ) 1 sin(7 )xf x e x на отрезке

[0, 1] в случае, когда n = 4.

Значение определенного интеграла

можно вычислить по формуле

1 От латинского quadratura – площадь.

Рис. 6.1

РЕПОЗИТОРИЙ БГ

ПУ

Page 59: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

61

1

0

2

n

Rk

hI h f a kh

.

Чем больше точек разбиения отрезка [a, b], тем точнее формула прямо-

угольников. Ее погрешность R пропорциональна h2:

2( )

24

b a hR M

, где max ( )

a x bM f x

.

П р и м е р. Используя квадратурную формулу прямоугольников, найти

определенный интеграл 2

1

0

xe dx , значение которого с точностью до семи зна-

ков равно 0.7468242.

Д о к у м е н т M a t h c a d.

1.Определим функцию и отрезок интегрирования:

f x( ) ex2

a 0 b 1 n 200 h

b a

n

2.Значение интеграла:

Int

a

b

xf x( )

d Int float 7 .7468242

3.Формула прямоугольников:

IR h

0

n 1

k

f a k hh

2

IR 0.7468249

4.Погрешность: Int IR 7.664 107

5.Оценка погрешности метода:

p x( )2

xf x( )

d

d

2

2 exp x2

4 x2

exp x2

0 1

2

p x( )

x

M p b( ) M 0.7357589

Rh

2b a( )

24M R 7.664 10

7

РЕПОЗИТОРИЙ БГ

ПУ

Page 60: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

62

Формула трапеций

Геометрически метод трапеций заменяет функцию f(x) на каждом из от-

резков [xk, xk+1], где xk = a + kh, k = 0, 1, …, n–1 ломаной линией. В этом случае

площадь криволинейной фигуры прибли-

женно равна сумме площадей трапеций с

основаниями f(xk), f(xk+1) и высотой h: 1

1

( ) ( )( )

2

n

Tk

f a f bI h f a kh

.

Погрешность R формулы трапеций

также пропорциональна h2:

2( )

12

b a hR M

, max ( )

a x bM f x

.

График для ( ) 1 sin(7 )xf x e x и

n = 4 представлен на рис. 6.2.

Формула Симпсона

Формула Симпсона (или формула парабол) получается при замене f(x) на

каждом отрезке [xk, xk+1], k = 0, 1, …,n–1, где n – четно, интерполирующим по-

линомом второй степени (параболой) с узлами xk, (xk+ xk+1)/2, xk+1. Площадь под

кривой приближенно равна сумме площадей фигур, расположенных под каж-

дой из этих парабол. Интеграл вычисляют по формуле: 1

1 1

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

3 2

m m

Sk k

h f a f bI f a k h f a kh

, где

2

nm .

Снова рассмотрим численное ин-

тегрирование на отрезке [0, 1] функции

( ) 1 sin(7 )xf x e x . Площадь под двумя

(n = 2) параболами показана на рис. 6.3.

Погрешность R формулы Симпсо-

на пропорциональна h4, при этом

4( )

180

b a hR M

, где (4)max ( )

a x bM f x

.

Формула позволяет получать до-

статочно высокую точность результата

при сравнительно небольшом n (если

четвертая производная подынтегральной

Рис. 6.2

Рис. 6.3

РЕПОЗИТОРИЙ БГ

ПУ

Page 61: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

63

функции не слишком велика). Она точна для полиномов до третьей степени

включительно (в этом случае f (4)

(x) = 0).

Вычисление интегралов с заданной точностью

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

производных, что не всегда удобно. Чтобы найти интеграл с некоторой задан-

ной точностью TOL, на практике применяют прием двойного счета, пригодный

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

резка [a, b] на n частей и на 2n частей. Если абсолютная величина разности

между двумя полученными значениями In и I2n меньше погрешности TOL, то

счет можно остановить. В противном случае после замены In на I2n и уменьше-

ния шага вдвое снова вычисляют интеграл и т. д. При этом для формулы трапе-

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

получают из неравенства 2 3n nI I TOL , во втором – из неравенства

2 15n nI I TOL .

Формула Гаусса

Квадратурную формулу Гаусса записывают в таком виде:

12 2 2

n

G k kk

b a b a b aI p f t

. (3)

Точки (узлы) tk, а также соответствующие им коэффициенты (веса) pk

подставляют из справочных таблиц. Они выбраны так, что формула точна для

полиномов степени от 1 до 2n – 1. В табл. 6.1 указаны узлы и коэффициенты

для интегрирования с числом узлов от 2 до 5. В книге [13], например, приведе-

ны их значения для 1 ≤ n ≤ 16 с пятнадцатью десятичными знаками.

Т а б л и ц а 6.1

n ti pi n ti pi

2 t1 = – 0.57735027

t2 = – t1

p1 = 1

p2 = p1 4

t1 = – 0.86113631

t2 = – 0.33998104

t3 = – t2, t4 = – t1

p1 = 0.34785485

p2 = 0.65214516

p3 = p2, p4 = p1

3

t1 = – 0.77459667

t2 = 0

t3 = – t1

p1 = 0.55555556

p2 = 0.88888889

p3 = p1 5

t1 = – 0.90617985

t2 = – 0.53846931

t3 = 0

t4 = – t2, t5 = – t1

p1 = 0.23692689

p2 = 0.47862868

p3 = 0.56888889

p4 = p2, p5 = p1

Для узлов и весов формулы Гаусса справедливы соотношения

–1 < tk < 1, tn–k+1 = – tk, 0 < pk ≤ 1, pn–k+1 = pk для k = 1, 2,…, m, где m = n div 2.

РЕПОЗИТОРИЙ БГ

ПУ

Page 62: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

64

П р и м е р. Найти интеграл ,1)cos(2

0

dxx используя квадратурную фор-

мулу Гаусса с четырьмя узлами.

Д о к у м е н т M a t h c a d.

З а м е ч а н и я. Чем меньше отрезок интегрирования, тем меньше по-

грешность вычисления интеграла. Протяженный отрезок всегда можно разбить

на несколько участков, на каждом из которых легко применить формулу Гаус-

са, а затем сложить результаты. В этом случае можно взять большое общее ко-

личество узлов.

Поскольку концы отрезка [a, b] не входят в число узлов формулы Гаусса,

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

тегралов.

Метод Монте-Карло

Метод Монте-Карло1 – это численный метод решения математических

задач, в котором применяются случайные числа. Теоретическая основа метода

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

с появлением электронных вычислительных машин.

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

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

1 Монте-Карло – город в княжестве Монако, известный своими казино для игры в ру-

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

чайных чисел. Отсюда и название.

1.Определим исходную функцию и отрезок интегрирования:

f x( ) cos x( ) a 0 b

2 n 4

2.По таблице формируем векторы T и P:

T 1 0.8611363115 T 2 0.3399810436 T 3 T 2 T 4 T 1

P1 0.3478548451 P2 0.6521451549 P3 P2 P4 P1

3.Формула Гаусса:

IGb a

21

n

k

Pk fb a

2

b a

2T k

IG 0.9999999772

4.Погрешность: 1 IG 2.278 108

РЕПОЗИТОРИЙ БГ

ПУ

Page 63: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

65

П е р в ы й с п о с о б. Выберем n случайных точек xi (n достаточно вели-

ко), равномерно распределенных на отрезке интегрирования [a, b]. Площадь

под кривой y = f(x), a ≤ x ≤ b (рис. 6.4) приближенно заменим площадью пря-

моугольника с основанием b – a и высотой, равной среднему арифметическому

значений функции в случайных точках:

1

1( ) ( ) ( )

b n

iia

I f x dx b a f xn

Известно, что погрешность этой

формулы уменьшается с ростом числа n

пропорционально величине 1/ n (напри-

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

10 раз нужно увеличить n в 100 раз).

Метод легко обобщается на кратные

интегралы. Например, для приближения

интеграла по двумерной области a ≤ x ≤ b,

c ≤ y ≤ d нужно вычислить среднее ариф-

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

функции f(x, y) в случайных точках, выбранных в этой области, и умножить ре-

зультат на площадь области (b – a)(d – c).

Для применения метода Монте-Карло требуется большое количество

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

вычислительных задач, имеют встроенную функцию (датчик или генератор

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

пределенных в интервале от 0 до 1. Для получения случайных чисел с равно-

мерным законом распределения на произвольном отрезке [a, b] можно исполь-

зовать преобразование xi = (b – a)xi + a .

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

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

дают следующие функции:

rnd(a) – случайное число, которое имеет равномерную плотность распре-

деления на интервале (0, a);

runif(n, a, b) – вектор, который содержит n случайных чисел, равномерно

распределенных на интервале (a, b).

П р и м е р. Найти приближение к числу по методу Монте-Карло, ис-

пользуя известное соотношение 1

20

4

1dx

x

.

Рис. 6.4

РЕПОЗИТОРИЙ БГ

ПУ

Page 64: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

66

Д о к у м е н т M a t h c a d.

В т о р о й с п о с о б. Предположим, что фигура под кривой y = f(x) рас-

положена целиком внутри прямоугольной области a ≤ x ≤ b, 0 ≤ y ≤ c (рис.

6.5), площадь которой S = c(b – a). Возьмем в пределах выбранного прямо-

угольника n случайных точек (xi, yi). Обо-

значим через m количество точек, которые

попали под кривую y = f(x). При их равно-

мерном распределении отношение площади

I криволинейной фигуры к площади S при-

ближенно равно отношению m к n:

I m

S n , отсюда ( )

m mI S c b a

n n .

Этот метод также обобщается на

кратные интегралы.

П р и м е р. Вычислим приближенно

интеграл, точное значение которого известно: 0

sin( ) cos( ) 20

I x dx x

.

Д о к у м е н т M a t h c a d.

1.Определим исходную функцию и отрезок интегрирования:

f x( )4

1 x2

a 0 b 1

2.Формируем вектор случайных чисел:

ORIGIN 1 n 200000 X runif n a b( )

3.Приближенное значение интеграла:

Ib a

n1

n

i

f X i

I 3.14044

4.Погрешность:

3.14159 I 1.154 103

1

n2.236 10

3

1.Определим исходную функцию: f x( ) sin x( )

2.Прямоугольник,который заключает криволинейную фигуру:

a 0 b c 1

Рис. 6.5

РЕПОЗИТОРИЙ БГ

ПУ

Page 65: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

67

На практике методы Монте-Карло из-за их сравнительно невысокой точ-

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

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

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

изменений. Кроме того, он применим и к разрывным функциям.

Для метода Монте-Карло большое значение имеет качество применяемо-

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

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

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

ответствует количеству чисел, попавших в каждый из интервалов.

В Mathcad гистограмму распределения можно построить с помощью

функции hist(INT, V), которая формирует вектор частот распределения случай-

ной величины по интервалам. Здесь INT – это вектор, который содержит грани-

цы интервалов, V – вектор, который содержит случайные значения.

П р и м е р. Проверить равномерность распределения по 10 интервалам

500000 случайных чисел, полученных на отрезке [0, 1] с помощью встроенной

функции runif.

3.Формируем два вектора случайных чисел:

ORIGIN 1 n 200000 X runif n a b( ) Y runif n 0 c( )

4.Приближенное значение интеграла:

Ic b a( )

n1

n

i

if Yi f X i 1 0

I 1.99076

5.Погрешность:

a

b

xf x( )

d I 9.236 103

6.График распределения первых 1000 случайных точек:

i 1 1000

0 0.5 1 1.5 2 2.5 30

0.5

1

f x( )

Y i

x X i

РЕПОЗИТОРИЙ БГ

ПУ

Page 66: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

68

Д о к у м е н т M a t h c a d.

График этого примера показывает, что даже датчики вычислительной си-

стемы Mathcad нуждаются в проверке их равномерности.

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

чисел наилучшим считается такой:

1 mod( , ), 1 1n nR R P P ,

где P – модуль (простое число), λ – множитель (целое число), R1 – начальное

значение. Функция mod(x, y) дает остаток целого деления x на y. Задание

1.Определим количество случайных чисел и границы отрезка:

N 500000 a 0 b 1

2.Формируем вектор случайных чисел:

ORIGIN 1 V runif N a b( )

3.Определим количество интервалов и шаг:

m 10 hb a

m

4.Формируем вектор, который содержит границы интервалов:

i 1 m 1 INT i a i 1( ) h INT1 0 INTm 1 1

5.Формируем вектор частот распределения по интервалам:

H hist INT V( ) max H( ) 50420 min H( ) 49805

HT 1 2 3 4 5 6 7 8 9 10

1 49967 49943 49876 50420 49837 49805 49985 50224 49890 50053

6.Среднее значение частоты для равномерного распределения:

SN

m S 50000

7.График(гистограмма) распределения

вместе со средним значением частоты:

0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.90

2 104

4 104

6 104

S

H

INT

РЕПОЗИТОРИЙ БГ

ПУ

Page 67: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

69

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

в интервале от 0 до P – 1. Для разных λ получаются последовательности со сво-

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

пользовать преобразование Ri = Ri/P.

В работе [1] найдены параметры датчиков, которые удовлетворяют высо-

ким критериям статистического качества. Вот некоторые из них:

Модуль Р Наилучшие множители λ

300023 5682, 6525, 6754, 6790, 7000

1000667 1580, 1894, 2118

1000919 1373, 2076, 2084

1001003 1430, 1856, 2000, 2063

Например, при P = 300023, λ = 5682, R1 = 152000 последовательность по-

лучаемых чисел будет такой: 152000, 197806, 47534, 67488, ...

Упражнения и задачи

1. Составить таблицу значений функции 0

sin( )( )

x tF x dt

t (интегральный

синус) на отрезке [0, 2] с шагом 0.1 и построить ее график.

2. Длина дуги кривой y = f(x) на отрезке [a, b] равна 21 ( ( ))b

a

f x dx .

Найти приближение длины дуги функции f(x) = sin(x) для [0, π/4] по фор-

муле трапеций (n = 10) и формуле Симпсона (m = 5). Результаты сравнить.

3. Найти по методу Монте-Карло приближенное значение числа π. Для

этого вычислить площадь четверти единичного круга (которая равна π/4), а за-

тем увеличить ее в четыре раза.

4. Методом Монте-Карло вычислить двойной интеграл

1 2 12 2

1 0

2

( )x

x y dxdy

.

5. Построить гистограмму распределения по 20 интервалам 300000 чисел,

полученных по алгоритму 1 1152000, mod(5682 ,300023)n nR R R .

РЕПОЗИТОРИЙ БГ

ПУ

Page 68: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

70

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

При численном дифференцировании аналитически или таблично задан-

ной функции y = f(x) ее заменяют той или иной интерполирующей функцией

g(x) и приближенно полагают f ′(x) = g′(x).

Формулы дифференцирования для равноотстоящих узлов

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

(узлах) можно получить дифференцированием интерполирующего полинома

Лагранжа. Возьмем, например, полином, построенный по трем точкам

x0, x1, x2, где x0 = x1 – h, x2 = x1 + h:

0 2 0 11 20 1 2

0 1 0 2 1 0 1 2 2 0 2 1

( )( ) ( )( )( )( )( )

( )( ) ( )( ) ( )( )

x x x x x x x xx x x xL x y y y

x x x x x x x x x x x x

0 1 21 1 1 1 1 12 2 2

( )( ) ( )( ) ( )( )2 2

y y yx x x x h x x h x x h x x h x x

h h h .

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

0 1 21 1 12 2 2

( ) (2 2 ) (2 2 ) (2 2 )2 2

y y yL x x x h x x x x h

h h h .

После подстановки x = x1 и упрощения получим 1 0 2

1( ) ( )

2L x y y

h .

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

определения производной в средних точках отрезков [x0, x1] и [x1, x2]:

1 0 1 1 1 2

1 1( ), ( )

2 2

h hL x y y L x y y

h h

.

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

x0, x2, для второй производной в центральной точке x0, а также формулы для

большего числа смежных узлов. Некоторые из них приведены в табл. 7.1.

Т а б л и ц а 7.1

К-во узлов Производная Погрешность

3

0 0 1 2

1( ) ( 3 4 )

2f x y y y

h

1 0 2

1( ) ( )

2f x y y

h

2 0 1 2

1( ) ( 4 3 )

2f x y y y

h

1 0 1 22

1( ) ( 2 )f x y y y

h

2 (3)1( )

3h y

2 (3)1( )

6h y

2 (3)1( )

3h y

2 (4)1( )

12h y

РЕПОЗИТОРИЙ БГ

ПУ

Page 69: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

71

5

0 0 1 2 3 4

1( ) ( 25 48 36 16 3 )

12f x y y y y y

h

1 0 1 2 3 4

1( ) ( 3 10 18 6 )

12f x y y y y y

h

2 0 1 3 4

1( ) ( 8 )

12f x y y y y

h

3 0 1 2 3 4

1( ) ( 6 18 10 3 )

12f x y y y y y

h

4 0 1 2 3 4

1( ) (3 16 36 48 25 )

12f x y y y y y

h

2 0 1 2 3 42

1( ) ( 16 30 16 )

12f x y y y y y

h

2 0 1 3 43

1( ) ( 2 2 )

2f x y y y y

h

4 (5)1( )

5h y

4 (5)1( )

20h y

4 (5)1( )

30h y

4 (5)1( )

20h y

4 (5)1( )

4h y

4 (4)1( )

90h y

2 (5)1( )

4h y

Из таблицы видно, что если производная берется в средней (центральной)

точке, то соответствующая формула выражается более просто, а ее погреш-

ность меньше.

П р и м е р. Найти приближение к cos (0.8) и cos (0.8) , используя цен-

тральную формулу с тремя узлами для шага h = 0.01.

Д о к у м е н т M a t h c a d.

1.Определим исходную функцию: y x( ) cos x( )

2.Определим функции для вычисления производных:

y1 x h( )y x h( ) y x h( )

2 h y2 x h( )

y x h( ) 2 y x( ) y x h( )

h2

3.Приближенные значения производных в точке x1 = 0.6:

h 0.01 x1 0.6 y1 x1 h( ) 0.56463 y2 x1 h( ) 0.82533

4.Истинные значения производных и погрешность:

p1 x( )x

y x( )d

d p2 x( )

2x

y x( )d

d

2

p1 x1( ) 0.56464 p2 x1( ) 0.82534

y1 x1 h( ) p1 x1( ) 9.411 106

y2 x1 h( ) p2 x1( ) 6.878 106

5.График функции и касательной к нему в точке x1 = 0.6:

f x h( ) y1 x1 h( ) x x1( ) y x1( )

РЕПОЗИТОРИЙ БГ

ПУ

Page 70: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

72

Полином Лагранжа и его производная

Если продифференцировать рекуррентные соотношения

1 1

1

1

( ) 0, ( ) 1,

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

( ) ( )( ) /( ), 0, 1, , , ,

i i i i

i i j i j

L x R x

L x L x R x y i n

R x R x x x x x j n j i

которые определяют полином Лагранжа Ln(x), то можно получить расчетные

формулы для нахождения производной ( )nL x для любого 0 nx x x .

Обозначим

1( ) ( )L x L x , 1( ) ( )R x R x .

Тогда

1 1

1 1

1 1

1 ( ) 0, 1 ( ) 0,

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

1 ( ) 1 ( ) ( ) ( ) /( ), 0,1, , , .

i i i i

i i j i i j

L x R x

L x L x R x y i n

R x R x x x R x x x j n j i

Точно также получают рекуррентные формулы для вычисления второй

производной полинома Лагранжа.

П р и м е р. Функция y = ln(x) задана таблицей для узлов x0 = 1.0, x1 = 1.1,

x2 = 1.2, x3 = 1.3. Вычислить приближение y′(1.17) и его ошибку.

Д о к у м е н т M a t h c a d.

0 0.25 0.5 0.75 1

0.6

0.8

1

1.1

0.5

y x( )

f x h( )

y x1( )

10 x x x1

1.Определим исходную таблицу функции:

y x( ) ln x( ) n 3 i 0 n X i 1 i 0.1 Yi y X i

2.Программа вычисления производной полинома Лагранжа:

РЕПОЗИТОРИЙ БГ

ПУ

Page 71: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

73

Полином Ньютона и его производные

Продифференцируем полином Ньютона:

N(x) = y0 + [x0, x1](x – x0)+ [x0, x1, x2](x – x0)(x – x1) + …

N′(x) = [x0, x1] + [x0, x1, x2](2x – x0 – x1) + …

N′′(x) = 2[x0, x1, x2] + …

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

женные выражения для производных. Наиболее простые расчетные формулы

дают первые слагаемые:

1 0 1 02 10 1 0 1 2

1 0 2 0 2 1 1 0

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

y y y yy yf x x x f x x x x

x x x x x x x x

.

Они годятся для любого (переменного) шага таблицы функции. Если он

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

членов ряда.

Diff n X Y x( ) L1 0

R 1

R1 0

R1R1 x X j R

X i X j

R Rx X j X i X j

j iif

j 0 nfor

L1 L1 R1 Yi

i 0 nfor

L1return

X,Y - таблица функции

n - размер таблицы

3.Определим функцию для вычисления производной:

f x( ) Diff n X Y x( )

4.Значение производной и погрешность:

x0 1.17 f x0( ) 0.8545581

p x( )x

y x( )d

d p x0( ) 0.8547009 p x0( ) f x0( ) 1.428 10

4

РЕПОЗИТОРИЙ БГ

ПУ

Page 72: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

74

Упражнения и задачи

1. Продифференцировать рекуррентные соотношения для вычисления

полинома Ньютона Nn(x) и получить формулы для нахождения его производ-

ной. Разработать программу вычисления ( )nN x и применить ее к функции

3 xy , которая задана в равноотстоящих узлах таблицей

x 1.0 1.2 1.4 1.6

y 1.00000 1.06266 1.11869 1.16961

Найти приближенные значения производной (1.1)y и (1.3)y . Сравнить

графики функций ( )y x и 3( )N x .

8. Поиск экстремальных значений функции

Для дифференцируемой функции y = f(x) точку локального экстремума

можно определить из уравнения ( ) 0f x . Например, корень x* этого уравне-

ния дает максимум функции, если ( *) 0f x . Если невозможно получить вы-

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

методы, не связанные с решением уравнений.

П о с т а н о в к а з а д а ч и. Для заданной функции y = f(x), a ≤ x ≤ b тре-

буется найти точку ее локального максимума. В общем случае f(x) может иметь

несколько таких точек. В дальнейшем считаем, что в пределах отрезка [a, b]

есть только один локальный максимум функции.

Поиск минимума f(x) сводится к поиску максимума функции y = – f(x).

Метод деления пополам

Для нахождения максимума f(x), a ≤ x ≤ b применим такую схему:

6. Берем симметрично расположенные относительно середины отрезка

[a, b] точки 12

a b TOLx

, 2

2

a b TOLx

,

где 02

b aTOL

(рис. 8.1);

7. Выбираем ту часть отрезка, где нахо-

дится точка максимума: если f(x2) ≤ f(x1), то в

пределах [a, x2] она находиться не может, и

поэтому полагаем a = x2, в противном случае

она не может находиться на [x1, b], и поэтому

берем b = x1; Рис. 8.1

РЕПОЗИТОРИЙ БГ

ПУ

Page 73: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

75

8. Повторяем эти действия до тех пор, пока длина отрезка, содержащего

точку максимума, не станет меньше 2 TOL ;

9. За точку локального максимума принимаем середину полученного от-

резка [a, b].

З а м е ч а н и я. Поиск делением пополам сходится при любой ширине

отрезка [a, b]. На каждой итерации алгоритма вычисляются два значения f(x). В

общем случае f(x) может быть как непрерывной, так и разрывной функцией.

Метод золотого сечения

Золотым сечением называется деление отрезка [a, b] на две неравные ча-

сти [a, r], [r, b], (a + b)/2 < r < b так, что бы отношение длины всего отрезка к

длине его большей части было равно отношению длины большей части к длине

меньшей части:

b a r a

r a b r

.

Для единичного отрезка [0, 1] будем иметь

1 1

, 1,1 2

rr

r r

что приводит к уравнению r2 + r – 1 = 0. Положительный корень r этого квад-

ратного уравнения равен ( 5 1) / 2 0.618 .

В отличие от метода деления пополам, метод золотого сечения делит от-

резок [a, b] в отношении r (точка x1, рис. 8.1), а другая точка (x2) выбирается

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

1, 1 ( )

x ar x a r b a

b a

,

2 ( 1) ( ) ( )x a b x a b a r b a b r b a .

Нетрудно проверить, что x2 также делит отрезок по правилу золотого се-

чения, при этом не только [a, b], но и [a, x1]. Точно так же x1 дает золотое се-

чение не только [a, b], но и [x2, b].

При программной реализации метода сначала определяют симметричные

точки x1 и x2 золотого сечения исходного отрезка [a, b] и вычисляют значения

f(x1) и f(x2). В дальнейшем на каждом шаге отрезок сужается, но одна из точек

его деления остается. Можно вычислять только одно новое значение функции

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

нее метода деления пополам.

РЕПОЗИТОРИЙ БГ

ПУ

Page 74: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

76

П р и м е р. Найти по методу золотого сечения локальные максимумы и

минимумы функции y = – x3 + x/3 – e

–x, если TOL = 10

–6.

Д о к у м е н т M a t h c a d.

Программа метода золотого сечения

Maximum f a b TOL( ) iter 0

r5 1

2

x1 a r b a( )

x2 b r b a( )

fx1 f x1( )

fx2 f x2( )

iter iter 1

a x2

x2 x1

fx2 fx1

x1 a r b a( )

fx1 f x1( )

fx1 fx2if

b x1

x1 x2

fx1 fx2

x2 b r b a( )

fx2 f x2( )

otherwise

b a TOLwhile

iter

a b

2

return

1.Определим функцию и построим график:

f x( ) x3

x

3 e

x

РЕПОЗИТОРИЙ БГ

ПУ

Page 75: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

77

Функция Maximize(f, x) находит x, при котором достигается локальный

максимум f(x) (для x выбирают подходящее начальное значение). Функция Min-

imize(f, x) находит x, при котором достигается локальный минимум f(x).

Упражнения и задачи

1. Найти на отрезке [0, 1] минимум функции f(x) = x2 – sin(x). Для этого

применить метод секущих к решению уравнения ( ) 0f x .

2. Реализовать метод деления пополам в виде программы и применить ее

для поиска локальных максимумов функции y(x) = – x3 + x/3 – e

–x.

5 4 3 2 1 0 1 2

5

1010

3

f x( )

25 x

TOL 106

2.Поиск точки максимума: a 4 b 3

iter

MAX

Maximum f a b TOL( )iter

MAX

29

3.715625

f MAX( ) 8.974634

3.Поиск второй точки максимума: a 0 b 1

iter

MAX

Maximum f a b TOL( )iter

MAX

29

0.550718

f MAX( ) 0.55999

4.Поиск точки минимума: a 2 b 0.5 g x( ) f x( )

iter

MIN

Maximum g a b TOL( )iter

MIN

30

1.015606

f MIN( ) 2.052019

5.Проверка решения с помощью встроенных функций:

x 4 Maximize f x( ) 3.715626 x 0.5 Maximize f x( ) 0.550718

x 2 Minimize f x( ) 1.015607РЕПОЗИТОРИЙ БГ

ПУ

Page 76: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

78

9. Решение задачи Коши для ОДУ

К обыкновенным дифференциальным уравнениям (ОДУ) относятся урав-

нения, которые содержат неизвестную функцию, а так же ее производные.

Например, простое уравнение первого порядка записывается в виде

y′ = f(x, y). (1)

В общем случае такое уравнение будет иметь семейство решений, то есть

функций y(x), для которых справедливо требование (1).

П о с т а н о в к а з а д а ч и. Задача Коши заключается в отыскании тако-

го решения уравнения (1), которое удовлетворяет начальному условию

y(x0) = y0. Геометрически задача Коши определяет интегральную кривую, про-

ходящую через заданную точку (x0, y0). Решить задачу численно – значит найти

приближенные значения функции y(x) для некоторого набора точек (узлов)

x0 < x1 < …< xn. Ответ получается в виде таблицы yi = y(xi), i = 0, 1, … , n–1.

Метод Эйлера

Метод Эйлера является одним из самых простых приемов численного

решения дифференциальных уравнений. Однако он имеет сравнительно низкую

точность.

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

ношение h

xyhxy )()( (при малых значениях h). Для x = x0 получим разност-

ное уравнение ),()()(

0000 yxf

h

xyhxy

. Отсюда y(x1) = y(x0) + hf(x0, y0), где

x1 = x0 + h. Это приближенное решение в точке x1 можно вновь рассматривать

как начальное условие и найти значение функции y(x) в следующей точке x2 =

x1 + h и т. д. В общем случае последовательные значения yi вычисляются по

итерационной формуле

yi = yi–1 + hf(xi–1, yi–1), i = 1, 2,… , n–1.

П р и м е р. Применяя метод Эйлера, найти решение уравнения y′ = xy с

начальным условием y(0) = 1, выбрав h = 0.1, n = 8. Результат сравнить с точ-

ным решением 2

2x

e .

РЕПОЗИТОРИЙ БГ

ПУ

Page 77: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

79

Д о к у м е н т M a t h c a d.

Метод Эйлера распространяется на системы обыкновенных дифференци-

альных уравнений и на дифференциальные уравнения высших порядков.

1.Определим исходную функцию и начальные условия:

f x y( ) x y X 0

Y0

0

1

2.Шаг и размер таблицы решений: h 0.1 n 9

3.Итерационная формула метода Эйлера:

i 1 n 1X i

Yi

X i 1 h

Yi 1 h f X i 1 Yi 1

4.Точное решение(для сравнения): z x( ) e

x2

2 Z0 1 Zi z X i

5.Таблица приближенного и точного решений:

augment X Y Z( )T

0

1

1

0.1

1

1.005

0.2

1.01

1.0202

0.3

1.0302

1.046

0.4

1.0611

1.0833

0.5

1.1036

1.1331

0.6

1.1587

1.1972

0.7

1.2283

1.2776

0.8

1.3142

1.3771

6.Вектор ошибок :

Z Y( )T

0 0.005 0.01 0.016 0.022 0.03 0.038 0.049 0.063( )

7.График полученного и истинного решений: 7.График полученного и истинного решений:

x X 0 X 0 h X n 1

0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.90.9

1

1.1

1.2

1.3

1.4

Y

z x( )

X x

РЕПОЗИТОРИЙ БГ

ПУ

Page 78: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

80

Рассмотрим систему уравнений первого порядка:

),,,(

),,,(

),,,(

1

122

111

mmm

m

m

yyxfy

yyxfy

yyxfy

с начальными условиями y1(x0) = y10, y2(x0) = y20, … ym(x0) = ym0. Приближенные

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

y1,i = y1, i–1+hf1(x i–1, y1, i–1, … ,ym, i–1), … , ym,i = ym, i–1+hfm(x i–1, y1, i–1, … ,ym, i–1).

П р и м е р. Для системы уравнений 1

1yz

, 1

zy x

, с начальными

условиями (0) 1y , (0) 1z , составить таблицу значений функций ( )y x , ( )z x

на отрезке [0, 1] с шагом h = 0.1.

Д о к у м е н т M a t h c a d.

Программа метода Эйлера для системы двух уравнений:

EULER f1 f2 x0 y0 z0 n h( ) X 0 x0

Y0 y0

Z0 z0

X i X i 1 h

Yi Yi 1 h f1 X i 1 Yi 1 Zi 1

Zi Zi 1 h f2 X i 1 Yi 1 Zi 1

i 1 n 1for

augment X Y Z( )return

1.Определим правые части системы:

f1 x y z( ) 11

z f2 x y z( )

1

y x

2.Начальные условия, размер и шаг таблицы:

x0 0 y0 1 z0 1 N 11 h 0.1

TAB EULER f1 f2 x0 y0 z0 N h( ) X TAB0

Y TAB1

Z TAB2

TABT

0

1

1

0.1

1

0.9

0.2

1.01

0.81

0.3

1.03

0.73

0.4

1.07

0.65

0.5

1.13

0.58

0.6

1.2

0.52

0.7

1.29

0.47

0.8

1.4

0.42

0.9

1.54

0.37

1

1.71

0.33

РЕПОЗИТОРИЙ БГ

ПУ

Page 79: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

81

Дифференциальные уравнения высших порядков ( ) ( 1)( , , , , ), 1m my f x y y y m

с помощью замены y = y1, y′ = y2, y′′ = y3, … , y(m–1)

= ym можно записать в виде

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

),,,,( ,,, , 2113221 mmmm yyyxfyyyyyyy .

П р и м е р. Заменить уравнение второго порядка 0

yx

yy с началь-

ными условиями y(1) = 0.77, y′(1) = – 0.44. эквивалентной системой уравнений

первого порядка.

После замены y = y1 и y′ = y2 имеем для новых неизвестных систему

12

221 , yx

yyyy с начальными условиями y1(1) = 0.77, y2(1) = – 0.44.

Метод Рунге–Кутты

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

ния задачи Коши, является метод Рунге-Кутты. Для большинства задач он да-

ет очень хорошие результаты, причем точность существенно возрастает с

уменьшением шага. Однако для перехода от точки xi–1 к xi требуется четыре ра-

за вычислить функцию f(x, y):

1 1 2 3 4( 2 2 )6

i i

hy y k k k k , где

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

i i i i

h hk f x y k f x y k

,

3 1 1 2 4 1 1 3, , ( , )2 2

i i i i

h hk f x y k k f x h y h k

.

Шаг h может быть неравномерным.

П р и м е р. Применяя метод Рунге–Кутты, найти решение уравнения

y′ = xy с начальным условием y(0) = 1, выбрав h = 0.1, n = 9.

3.График полученного решения:

0 0.2 0.4 0.6 0.8 1

1.8

1.3

0.8

0.3

0.2

0.7

1.2

Y

Z

X

РЕПОЗИТОРИЙ БГ

ПУ

Page 80: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

82

Д о к у м е н т M a t h c a d.

1.Определим исходную функцию: f x y( ) x y

2.Шаг и размер таблицы решений: h 0.1 n 9

3.Вспомогательные функции:

k1 x y( ) f x y( ) k2 x y( ) f xh

2 y

h

2k1 x y( )

k3 x y( ) f xh

2 y

h

2k2 x y( )

k4 x y( ) f x h y h k3 x y( )( )

k x y( ) k1 x y( ) 2 k2 x y( ) 2 k3 x y( ) k4 x y( )

4.Итерационная формула метода Рунге-Кутты :

i 1 n 1X 0

Y0

0

1

X i

Yi

X i 1 h

Yi 1h

6k X i 1 Yi 1

X i

Yi

X i 1 h

Yi 1h

6k X i 1 Yi 1

5.Истинное решение(для сравнения): z x( ) e

x2

2 Z0 1 Zi z X i

6.Таблица приближенного и истинного решений: T augment X Y Z( )

TT

0

1

1

0.1

1.005013

1.005013

0.2

1.020201

1.020201

0.3

1.046028

1.046028

0.4

1.083287

1.083287

0.5

1.133148

1.133148

0.6

1.197217

1.197217

0.7

1.277621

1.277621

0.8

1.377128

1.377128

7.График приближенного и истинного решений:

0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.90.9

1

1.1

1.2

1.3

1.4

Y

Z

X

8.Решение с помощью встроенной функции:

y0 1 (начальное условие)

x0 0 x1 0.8 (границы отрезка) N 8 (количество шагов)

РЕПОЗИТОРИЙ БГ

ПУ

Page 81: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

83

Функция rkfixed(y0, x0, x1, N, f) решает задачу Коши для дифференциаль-

ного уравнения y′ = f(x, y) с начальным условием y(x0) = y0. При этом исполь-

зуется численный метод Рунге-Кутты с постоянным шагом.

Метод Рунге-Кутты легко распространяется на системы линейных диф-

ференциальных уравнений первого порядка.

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

( , , ), ( , , )y f x y z z g x y z , 0 0 0 0( ) , ( )y x y z x z .

Решениями системы являются функции ( ), ( )y x z x , которые вычисляются

по формулам:

1 ( 1 2 2 2 3 4)6

i i

hy y f f f f , 1 ( 1 2 2 2 3 4)

6i i

hz z g g g g , где

1 1 1 1 1 11 ( , , ), 1 ( , , )i i i i i if f x y z g g x y z

1 1 12 , 1, 12 2 2

i i i

h h hf f x y f z g

1 1 12 , 1, 12 2 2

i i i

h h hg g x y f z g

1 1 13 , 2, 22 2 2

i i i

h h hf f x y f z g

1 1 13 , 2, 22 2 2

i i i

h h hg g x y f z g

1 1 14 , 3, 3i i if f x h y h f z h g

1 1 14 , 3, 3i i ig g x h y h f z h g

З а м е ч а н и е. При решении систем дифференциальных уравнений по-

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

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

екториями в фазовой плоскости, а график в целом – фазовым портретом си-

стемы уравнений. Например, траектория (орбита) y = y(x) движущейся точки

дает больше информации, чем два отдельных графика x = x(t) и y = y(t).

Упражнения и задачи

1. Скорость радиоактивного распада пропорциональна количеству оста-

ющегося радиоактивного вещества. Соответствующее дифференциальное урав-

T rkfixed y0 x0 x1 N f( )

TT 0

1

0.1

1.005013

0.2

1.020201

0.3

1.046028

0.4

1.083287

0.5

1.133148

0.6

1.197217

0.7

1.277621

0.8

1.377128

РЕПОЗИТОРИЙ БГ

ПУ

Page 82: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

84

нение записывается в виде y k y . Приняв k = 0.01, t0 = 0, y0 = 100 г, опре-

делить, сколько вещества останется в момент t = 100 с.

Разработать программу, которая реализует метод Эйлера и применить ее

для решения поставленной задачи с шагом h = 10 и h = 5. Результат сравнить

графически с точным решением ( ) 100 kty t e .

2. Решить на отрезке [0, 1] задачу Коши 2 2 0y xy y для различных

начальных условий (0) 1y , (0) 1y , (0) 0.5y , (0) 1.5y . Применить метод

Эйлера. Сравнить графики полученных решений.

3. Решить на отрезке [0, 2 ] систему дифференциальных уравнений

, y z z y при заданных начальных условиях (0) 1y , (0) 0z . Точное ре-

шение этой задачи cos( ), sin( )y x z x .

4. Для системы уравнений 23 2 2x x y xy , 32 2y x y y с началь-

ными условиями (0) 0.8x , (0) 0.6y , составить таблицу значений функций

( )x t , ( )y t на отрезке [0, 2] с шагом h = 0.25. Применить метод Рунге-Кутты.

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

5. Система дифференциальных уравнений

( ) ( ) ( ) ( )y t c y t r y t z t , ( ) ( ) ( ) ( )z t d z t s y t z t

описывает изменение численности двух популяций животных: «жертв» (y) и

«хищников» (z). Жертвы при отсутствии хищников размножаются с коэффици-

ентом приращения c, а хищники без добычи вымирают с коэффициентом

уменьшения d. Предполагается, что численность жертв из-за встреч с хищни-

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

ентом r, а численность хищников соответственно увеличивается с коэффициен-

том s. Найти решение этой системы по методу Рунге-Кутты для c = 0.7,

r = 0.01, d = 0.3, s = 0.004. Исследовать поведение системы для различных зна-

чений y(0), z(0). График решений для 0 50t , y(0) = 100, z(0) = 40, а также

фазовый портрет системы (график с осями y и z) показаны на рисунке.

T U0

X U1

Y U2

0 0.5 1 1.5 2

0.5

0.5

1

X

Y

T

0.4 0.2 0 0.2 0.4 0.6 0.80.2

0.2

0.4

0.6

0.8

Y

X

РЕПОЗИТОРИЙ БГ

ПУ

Page 83: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

85

6. Дифференциальное уравнение ( ) 0.1 ( ) ( ) 0y t y t y t описывает зату-

хающие колебания маятника. Его начальное отклонение (0) 0.1y , начальная

скорость (0) 0y . Решить уравнение по методу Рунге-Кутты. График решения

и фазовый портрет системы для 0 20t показаны на рисунке.

10. Решение граничных задач для ОДУ

Отличие граничной задачи от задачи Коши (задачи с начальным услови-

ем) состоит в том, что полученное на отрезке [a, b] решение должно удовлетво-

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

Ограничимся важным случаем линейного дифференциального уравнения

второго порядка с переменными коэффициентами

( ) ( ) ( )y s x y t x y f x . (1)

П о с т а н о в к а з а д а ч и. Пусть задано дифференциальное уравнение

(1) и граничные (краевые) условия на концах отрезка [a, b]:

1 2 3 1 2 3( ) ( ) , ( ) ( )c y a c y a c d y b d y b d .

Здесь s(x), t(x), f(x) – заданные функции, c1, c2, c3, d1, d2, d3 – известные

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

на [a, b] функцию y = y(x).

0 20 400

100Жертвы

Хищники

Время

50 100 1500

50

100

150

Хищники

Жертвы

0 4 8 12 16 20

0.1

0.1

Y

T

0.1 0 0.1

0.1

0.1

Z

Y

РЕПОЗИТОРИЙ БГ

ПУ

Page 84: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

86

Метод конечных разностей

Для численного решения краевой задачи разобьем отрезок [a, b] на n ча-

стей с шагом h = (b – a)/n. В результате получим сетку – систему равноотстоя-

щих узлов xi = x0 + ih, i = 0, 1, …,n, где x0 = a, xn = b. Обозначим yi = y(xi).

Заменим производные функции y(x) в каждом внутреннем узле сетки цен-

тральными конечно-разностными отношениями

1 1

2

i ii

y yy

h

, 1 1

2

2i i ii

y y yy

h

,

а на концах положим 1 00

y yy

h

, 1n n

n

y yy

h

.

Тогда из уравнения (1) и граничных условий после подстановки и упро-

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

1 1 , 1,2, , 1,i i i i i i ip y q y r y w i n

0 0 0 1 0 1, n n n n nq y r y w p y q y w .

Здесь 2

( )1

2

ii

s xp

hh ,

2

2( )i iq t x

h ,

2

( )1

2

ii

s xr

hh , ( )i iw f x ,

2 2 2 20 0 1 1 0 0 3 30, , , , , 0, , .n n n n

d c d cp p q c q d r r w c w d

h h h h

Эти соотношения образуют трехдиагональную линейную систему из n+1

уравнения относительно неизвестных y0, y1, …, yn. Решив ее по методу прогонки,

получим таблицу приближенных значений функции y(x) в узлах сетки.

Оценка погрешности метода может быть выражена так: 2

2( ) ( )96

i i

h My y x b a , (4)max ( )

a x bM y x

,

где y(xi) – значение точного решения при x = xi.

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

писываются в виде:

0 0 10 0

0 0 1 1

, , , i i i ii i

i i i i i i

r w r w p vu v u v

q q q p u q p v

, 1,2, ,i n .

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

1, n n i i i iy v y u y v , 1, 2, ,0i n n .

П р и м е р. Решить на отрезке [0, 4] краевую задачу

2 2

2 2( ) ( ) ( ) 1

1 1

xy x y x y x

x x

, (0) 1.25, (4) 0.95y y .

РЕПОЗИТОРИЙ БГ

ПУ

Page 85: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

87

Д о к у м е н т M a t h c a d.

1.Определим исходные функции и константы:

s x( )2 x

1 x2

t x( )2

1 x2

f x( ) 1

c1 1 c2 0 c3 1.25 d1 1 d2 0 d3 0.95

2.Определим сетку:

a 0 b 4 n 20 hb a

n h 0.2 i 0 n X i a i h

3.Найдем коэффициенты трехдиагональной системы:

P0 0 Q0 c1c2

h R0

c2

h W0 c3

Pnd2

h Qn d1

d2

h Rn 0 Wn d3 i 1 n 1

Pi1

h2

s X i 2 h

Qi t X i 2

h2

Ri1

h2

s X i 2 h

W i f X i

4.Найдем коэффициенты приведенной системы:

(прямой ход метода прогонки)

U0

R0

Q0

V0

W0

Q0

i 1 n U iRi

Qi Pi U i 1 V i

W i Pi V i 1

Qi Pi U i 1

5.Найдем решение приведенной системы:

(обратный ход метода прогонки)

Yn V n i n 1 0 Yi U i Yi 1 V i

6.Таблица значений функции в узлах сетки: XY augment X Y( )

XYT 0 1 2 3 4 5 6 7 8 9 10

0

1

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

1.25 1.3145 1.3206 1.2728 1.1774 1.0421 0.8749 0.6837 0.4764 0.2603 0.0424

7.Проверка решения с помощью встроенной функции:

x0 0 x1 4 N 100 (количество шагов метода)

Given

y'' x( )2 x

1 x2

y' x( )2

1 x2

y x( ) 1 y 0( ) 1.25 y 4( ) 0.94

y odesolve x x1 N( )

РЕПОЗИТОРИЙ БГ

ПУ

Page 86: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

88

Упражнения и задачи

1. Решить краевую задачу 2( ) 2 ( ) ( ) 1y x y x y x x на отрезке [–3, 0] с

условиями y(–3) = 2, y(0) = 5 и шагом h = 0.2. Построить и сравнить графики

полученного и действительного решения 2( ) 4 5y x x x .

2. Решить на отрезке [0, 1] краевую задачу ( ) 2 ( ) 2 ( ) 4y x xy x y x x ,

(0) (0) 0, (1) 1y y y e , выбрав шаг h = 0.1. Точное решение задачи (для

сравнения) 2xy x e .

8.График решения:

0 1 2 3 4

Y

y x( )

X x

РЕПОЗИТОРИЙ БГ

ПУ

Page 87: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

89

Литература

1. Антипов М. В. Системы генераторов псевдослучайных чисел для персо-

нальных компьютеров. Новосибирск, 1990 (Препринт/ ВЦ СО АН СССР, № 910.).

2. Быкадоров Ю. А., Кузнецов А. Т., Шербаф А. И. Информатика и вычисли-

тельная математика: Учеб. пособие для 10–11-х кл. общеобразоват. шк. с повыш.

уровнем изуч. информатики. Мн., 1997.

3. Быкадоров Ю. А., Новицкий О. A. Физика в дифференциальных уравнениях

с использованием MATHCAD: Учеб. пособие. Мн., 2003.

4. Воробьева Г. Н., Данилова А. Н. Практикум по вычислительной математике.

М., 1990.

5. Голуб Дж., Ван Лоун И. Матричные вычисления. М., 1999.

6. Гринчишин Я. Т., Ефимов В. И, Ломакович А. Н. Алгоритмы и программы

на Бейсике: Учеб. пособие для студ. пед. ин-тов по физ.-мат. спец. М., 1988.

7. Гурский Д. А. Вычисления в MathCAD. Мн., 2003.

8. Дьяконов В. П. Справочник по алгоритмам и программам на языке бейсик

для персональных ЭВМ. М., 1989.

9. Заварыкин В. М., Житомирский В. Г., Лапчик М. П. Численные методы:

Учеб. пособие для студентов физ.-мат. спец. пед. ин-тов. М., 1990.

10. Калиткин Н. Н. Численные методы. М., 1978.

11. Каханер Д., Моулер К., Нэш С. Численные методы и программное обеспе-

чение. М., 1998.

12. Копченова Н. А., Марон И. А. Вычислительная математика в примерах и

задачах. М., 1972.

13. Крылов В. И. Приближенное вычисление интегралов. М., 1967.

14. Мудров А. Е. Численные методы для ПЭВМ на языках Бейсик, Фортран и

Паскаль. Томск, 1991.

15. Мэтьюз Д., Финк К. Численные методы. Использование MATLAB.

М., 2001.

16. На Ц. Вычислительные методы решения прикладных граничных задач.

М., 1982.

17. Очков В. Ф. Советы пользователям Mathcad. М., 2001.

18. Самарский А. А., Вабищевич П. Н., Самарская Е. А. Задачи и упражнения

по численным методам: Учеб. пособие. М., 2000.

19. Сборник задач по методам вычислений / Под ред. П. И. Монастырного.

Мн., 1983.

20. Синицын А. К, Навроцкий А. А. Практикум по курсу «Алгоритмы вычис-

лительной математики» для студентов 1–2-го курсов всех специальностей. Мн., 2000.

21. Херхагер М., Партолль Х. Mathcad 2000. Полное руководство. М., 2000.

РЕПОЗИТОРИЙ БГ

ПУ

Page 88: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

90

Встроенные функции Mathcad, используемые в примерах

Функция Значение Аргументы

augment(A, B, C,…) Матрица ABC…, полученная

присоединением справа к матрице

A матрицы B, затем C и т. д.

Все матрицы должны

иметь одинаковое количе-

ство строк

conde(A) Число обусловленности

матрицы A в евклидовой норме

A – квадратная матрица

сorr(X, Y) Коэффициент корреляции

векторов X и Y

X, Y – векторы, которые

задают таблицу данных

find(x, y, …) Вектор решений произвольной

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

ний. Уравнения должны быть

определены после служебного

слова Given

Если заданы начальные

значения для переменных

x, y, …, по которым

ищется решение

hist(I, V) Вектор частот распределения

случайной величины по заданным

интервалам

I – вектор, который содер-

жит границы интервалов;

V – вектор, который со-

держит случайные значения

if(cond, x, y) Значение x, если верно условие

cond,

в противном случае – значение y

cond – логическое выраже-

ние

intercept(X, Y) Коэффициент b линейной регрес-

сии ax + b

X, Y – векторы, которые

задают таблицу данных

interp(C, X, Y, x) Кубический сплайн, проходящий

через систему точек. Использует-

ся совместно с функцией lspline,

которая вычисляет C

C – вектор коэффициентов

сплайна, X, Y – векторы,

которые задают таблицу

данных, x – аргумент

last(V) Индекс последнего компонента

вектора V

lenght(V) Длина вектора V

line(X, Y) Вектор, который содержит

коэффициенты линейной

регрессии ax + b

X, Y – векторы, которые

задают таблицу данных

lsolve(A, B) Вектор решений системы AX = B

линейных алгебраических

уравнений

A – квадратная матрица

коэффициентов, B – вектор

правых частей системы

lspline(X, Y) Вектор коэффициентов кубическо-

го сплайна. Используется

совместно с функцией interp

X, Y – векторы, которые

задают таблицу данных

max(A) Наибольшее значение в A A – вектор или матрица

Maximize(f, x, y, …) Вектор значений x, y, …, при

которых функция f(x, y, …) имеет

локальный максимум. После

служебного слова Given можно

определить ограничения на x, y, …

Если заданы начальные

значения для переменных,

по которым достигается

максимум

РЕПОЗИТОРИЙ БГ

ПУ

Page 89: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

91

Функция Значение Аргументы

min(A) Наименьшее значение в A A – вектор или матрица

Minimize(f, x, y, …) Вектор значений x, y, …, при

которых функция f(x, y, …) имеет

локальный минимум. После

служебного слова Given можно

определить ограничения на x, y, …

Если заданы начальные

значения для переменных,

по которым достигается

минимум

norm1(A) 1-норма матрицы A

odesolve(x, x1, N) Матрица, которая содержит

решение задачи Коши для

обыкновенного дифференциального

уравнения; Уравнение и начальное

условие для x должны быть опре-

делены после служебного слова

Given

N – количество шагов

численного метода,

x1 – правая граница измене-

ния аргумента x;

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

rkfixed(Y, x0, x1, N, D) Матрица, которая содержит ре-

шение задачи Коши для обыкновен-

ного дифференциального уравнения

или системы уравнений.

Для получения решения использу-

ется численный метод Рунге-

Кутты с постоянным шагом

Y – вектор начальных усло-

вий, [x0, x1] – отрезок изме-

нения аргумента x;

N – количество шагов

численного метода;

D(x, Y) – векторная функ-

ция, которая задает урав-

нение или систему

rnd(a) Случайное число, которое имеет

равномерную плотность распреде-

ления на интервале (0, a)

a – вещественные значение

root(f(x, y, z,…), x) Корень x уравнения f(x, y, z,…) = 0 Если задано начальное зна-

чение для x

root(f(x, y, z,…), x, a, b) Корень x уравнения f(x, y, z,…) = 0,

который принадлежит отрезку

[a,b]

Значения f(a, y, z, …),

f(b, y, z, …) должны быть

разных знаков

round(x, n) Округление x до n знаков после

десятичной точки

rows(A) Число строк матрицы A

runif(n, a, b) Вектор, содержащий n случайных

чисел, равномерно распределенных

на интервале (a, b)

a, b – вещественные значе-

ния, a < b

slope(X, Y) Коэффициент a линейной

регрессии ax + b

X, Y – векторы, которые

задают таблицу данных

stack(A, B, C, …) Матрица, полученная присоедине-

нием сверху к матрице A матрицы

B, затем матрицы C и т. д.

Все матрицы должны

иметь одинаковое количе-

ство столбцов

submatrix(A,r1,r2,c1,c2) Часть матрицы A от строки r1

до строки r2 и от столбца c1

до столбца c2

r1 ≤ r2, c1 ≤ c2

trunc(x) Целая цасть x

РЕПОЗИТОРИЙ БГ

ПУ

Page 90: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

92

ОГЛАВЛЕНИЕ

ПРЕДИСЛОВИЕ ................................................................................................ 3

1. ТАБУЛИРОВАНИЕ ФУНКЦИЙ ................................................................. 4

2. РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ ............................................... 5

Метод деления пополам ............................................................................... 6

Метод итераций .............................................................................................. 8

Метод Ньютона ............................................................................................ 13

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

Упражнения и задачи ................................................................................... 15

3. РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ ................................. 17

Верхняя треугольная система линейных уравнений ................................. 17

Метод Гаусса ................................................................................................ 19

Метод квадратных корней ........................................................................... 21

Метод прогонки ............................................................................................ 23

Метод итераций ............................................................................................ 24

Метод Зейделя .............................................................................................. 28

Плохая обусловленность линейных систем ............................................... 28

Упражнения и задачи ................................................................................... 30

4. РЕШЕНИЕ СИСТЕМ НЕЛИНЕЙНЫХ УРАВНЕНИЙ ............................ 31

Метод итераций ............................................................................................ 31

Метод Ньютона ............................................................................................. 33

Упражнения и задачи ................................................................................... 36

5. ИНТЕРПОЛИРОВАНИЕ ФУНКЦИЙ ........................................................ 37

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

Вычислительная схема Эйткена ................................................................. 40

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

Полином Ньютона для случая равноотстоящих узлов ............................. 44

Интерполирование кубическими сплайнами ............................................ 45

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

Упражнения и задачи ................................................................................... 55

6. ЧИСЛЕННОЕ ИНТЕГРИРОВАНИЕ.......................................................... 57

Формула прямоугольников ......................................................................... 57

Формула трапеций ....................................................................................... 59

Формула Симпсона ...................................................................................... 59

Вычисление интегралов с заданной точностью ........................................ 60

РЕПОЗИТОРИЙ БГ

ПУ

Page 91: elib.bspu.byelib.bspu.by/bitstream/doc/7451/1/Численные...4 УДК 518 (075.8) ББК 22.191 я 73. Печатается по решению редакционно-издательского

93

Формула Гаусса ............................................................................................ 60

Метод Монте-Карло ...................................................................................... 61

Упражнения и задачи ................................................................................... 66

7. ЧИСЛЕННОЕ ДИФФЕРЕНЦИРОВАНИЕ ................................................ 67

Формулы дифференцирования для равноотстоящих узлов ..................... 67

Полином Лагранжа и его производная ...................................................... 69

Полином Ньютона и его производные ....................................................... 70

Упражнения и задачи ................................................................................... 71

8. ПОИСК ЭКСТРЕМАЛЬНЫХ ЗНАЧЕНИЙ ФУНКЦИИ .......................... 71

Метод деления пополам .............................................................................. 71

Метод золотого сечения .............................................................................. 72

Упражнения и задачи ................................................................................... 74

9. РЕШЕНИЕ ЗАДАЧИ КОШИ ДЛЯ ОДУ .................................................... 75

Метод Эйлера ............................................................................................... 75

Метод Рунге–Кутты ..................................................................................... 78

Упражнения и задачи ................................................................................... 80

10. РЕШЕНИЕ ГРАНИЧНЫХ ЗАДАЧ ДЛЯ ОДУ ......................................... 82

Метод конечных разностей .......................................................................... 82

Упражнения и задачи ................................................................................... 84

ЛИТЕРАТУРА .................................................................................................. 85

ВСТРОЕННЫЕ ФУНКЦИИ, ИСПОЛЬЗУЕМЫЕ В ПРИМЕРАХ .............. 86

РЕПОЗИТОРИЙ БГ

ПУ