Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги2 / 166

.pdf
Скачиваний:
2
Добавлен:
24.02.2024
Размер:
3.69 Mб
Скачать

Недостаток: Метод Ньютона достаточно трудоемкий – на каждом шаге итерационного процесса необходимо найти матрицу,

обратную якобиану.

Модификации метода Ньютона:

I. Если матрицу Якоби вычислить и обратить лишь в начальной точке, то получим модифицированный метод Ньютона:

x(k 1)

x(k)

1

F(x(k) ).

(4.5)

J(x(0) )

Плюсы: Требует меньших вычислительных затрат на 1

итерационный шаг. Минусы: Итераций требуется значительно больше для достижения заданной точности, чем основной метод Ньютона. Имеет геометрическую скорость сходимости.

II. Двухступенчатый метод Ньютона.

Идея: Вычисление и обращение матрицы Якоби не на каждой итерации, а через несколько шагов.

x(k 1) x(k) J(x(k) ) 1 F(x(k) ) J(x(k) ) 1 F(x(k) J(x(k) ) 1 F(x(k) )).

(4.6)

За x(k) принимается результат одного шага основного метода,

затем одного шага модифицированного метода – двухступенчатый

процесс.

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

1

 

 

 

 

z

(k)

 

x

(k)

J(

x

(k) )

F(

x

(k) );

x

(k)

 

z

(k) J(

x

(k) )

F(

z

(k) ).

(4.7)

Такой процесс при определенных условиях дает кубическую сходимость последовательности x(k) к решению x* .

Существуют модификации метода Ньютона, в которых задача обращения матриц Якоби на каждой итерации решается не точно, а

приближенно. К таким методам относятся:

аппроксимационный аналог метода Ньютона;

разностный метод Ньютона.

61

4.1.2. Метод простой итерации

Необходимо найти решение системы (4.2). Таким образом,

рассматривается задача о нулях нелинейного отображения

F :Rn Rn .

Пусть Ф: X X , где Ф(X) – нелинейный оператор, а X

банахово подпространство (сепарабельное, т. е. счетное, всюду плотное множество).

Определение.

Элемент пространства x* X

 

 

 

 

называется

неподвижной точкой оператора Ф, если Ф(x* ) x* .

 

 

 

 

 

 

 

 

 

Определение. Оператор Ф называется сжимающим на множестве

Q X , если для x'

и x''Q справедливо

 

 

 

Ф(x') Ф(x'')

 

 

 

 

q

 

 

 

x' x''

 

 

 

, q 1

 

 

 

 

 

 

 

 

– условие Липшица.

Рассмотрим наиболее простой метод – метод итерации.

Пусть система (4.1) преобразована к виду:

x

 

 

 

(x ,x

,...,x

)

 

 

 

1

1

 

1

 

 

2

 

 

n

 

 

 

 

(4.8)

...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

n

 

n

(x ,x

 

,...,x

 

)

,

 

 

 

 

 

1

 

2

 

n

 

 

 

 

 

Ф(

 

),

 

 

 

 

 

 

 

 

 

 

 

 

 

(4.9)

 

x

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(

 

 

 

)

 

 

(x ,x

,...,x

)

 

 

 

 

 

x

1

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

1 2

n

 

где Ф(x) ...

 

 

...

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n (x)

n (x1,x2 ,...,xn )

Запишем итерацию

 

 

 

 

(k 1)

 

 

 

 

 

 

(k)

 

 

 

 

 

 

 

(4.10)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

Ф(x

),

 

 

 

 

 

которая определяет метод простой итерации для задачи (4.1).

Если отображение, задаваемое системой (4.8), является сжимающим в некоторой окрестности корня, начальное приближение x(0) (x1(0) ,x2(0) ,...,xn(0) )T лежит в той же окрестности и итерации (4.10) не

62

выходят за ее пределы, то последовательность x(k) сходится к

*

вектору решения системы (4.1) – x (x1*,x2*,...,xn*)T .

Теорема о простых итерациях. Пусть функция Ф(x) и

замкнутое множество M D(Ф) Rn :

1) Ф(x) M, x M ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

~

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2)

q 1:

Ф(x) Ф(x)

 

q

x x

, для x,x M ,

тогда

Ф(

x

) имеет в M

единственную

 

неподвижную точку

x

* ;

последовательность x(k) , определяемая методом простых итераций

по формуле (4.10), при

 

начальных

x

 

(0) M сходится

к

x

* и

справедливы оценки:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

*

x

(k)

 

 

 

 

q

 

 

 

 

x

(k)

x

(k 1)

 

 

 

 

qk

 

 

 

 

x

(1)

x

(0)

 

 

 

, k N

(4.11)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 q

 

 

 

 

 

 

 

1 q

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для приведения системы нелинейных уравнений к виду,

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

умножить каждое уравнение системы (4.1) на i , где i 1,n, –

некоторый множитель, не равный нулю. Затем эти множители можно использовать для достижения условия сжимаемости.

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

4.1.3. Метод наискорейшего спуска

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

Рассмотрим систему:

f (x, y) 0

.

(4.12)

 

g(x, y) 0

 

 

Из функций f и g системы (4.12) образуем новую функцию:

63

Ф(x, y) f 2 (x, y) g2 (x, y).

 

 

(4.13)

Так как функция Ф(x, y) неотрицательная, то (x*,y* ):

 

Ф(x, y) Ф(x* , y* ) 0,

(x, y) R2 , т. е. (x* , y* ) argminФ(x, y).

 

 

 

 

 

 

 

 

 

 

x,y R2

 

Так

 

как

Ф(x* , y* ) 0

f (x* , y* ) 0

решение

 

 

(x*, y* )

 

 

 

 

 

 

 

 

 

g(x* , y* ) 0

 

системы (4.12).

 

 

 

 

xk , yk

 

 

Последовательность

точек

получим по рекуррентной

формуле

 

 

 

 

 

 

 

 

 

 

x

 

 

x

 

 

p

 

,

 

 

(4.14)

 

k 1

 

 

k

 

 

k

 

 

 

 

 

 

 

 

k

 

 

 

yk 1

 

yk

 

qk

 

 

 

 

где k 0,1,2,...;

(pk ,qk )T

 

вектор,

определяющий направление

минимизации; k

– скалярная величина, шаговый множитель.

При этом выполняется условие релаксации: Ф(xk 1, yk 1 ) Ф(xk ,yk ).

p

 

gradФ(x

, y

 

 

Ф'

(x

, y

 

)

 

– антиградиент Ф(x, y).

Вектор

k

k

)

x

k

 

k

 

 

 

 

k

 

 

'

(xk , yk )

 

 

qk

 

 

 

 

Фy

 

 

Тогда градиентный метод имеет вид:

x

 

 

 

x

 

 

Ф

'

(x

 

, y

 

)

 

 

 

k 1

 

 

 

k

 

 

x

 

k

 

k

 

 

,

 

 

 

 

 

k

 

'

(xk

, yk )

 

yk 1

 

 

yk

 

Фу

 

 

где оптимальный шаг k

 

xk Фx' (xk , yk

)

argminФ

'

.

 

0

 

Фy (xk , yk

 

 

 

yk

)

(4.15)

(4.16)

Формулы (4.15) и (4.16) определяют градиентный метод, который называют методом наискорейшего спуска.

Достоинство: глобальная скорость (из любой начальной точки процесс приведет к минимальной точке).

Недостаток: медленная скорость сходимости эквивалентная линейной, причем, скорость замедляется в окрестности корня. Лучше применять совместно с другими методами (сначала – спуск, затем – метод Ньютона).

64

4.2.Пример выполнения лабораторной работы

4.2.1.Задание к лабораторной работе

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

2.Найдите с точностью = 10–6 все корни системы нелинейных уравнений, используя методы Ньютона и наискорейшего спуска.

4.2.2.Решение типового примера

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

sin(x1

1,5) x2

2,9 0

.

 

 

 

 

 

 

 

 

 

2) x1

0

 

 

 

 

 

 

 

cos(x2

 

 

 

 

 

 

 

 

Преобразуем систему уравнений к виду

 

 

 

x

 

sin(x 1,5) 2,9

.

 

 

 

 

 

 

 

 

2

 

1

2) 2

 

 

 

 

 

 

 

x2 arccos( x1

 

 

 

 

 

 

 

 

Построим графики полученных функций (рис. 4.1).

 

 

 

5,5

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

4,5

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

3,5

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

2,5

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

1,5

 

 

 

 

 

 

 

 

 

 

 

 

 

-1

 

-0,6

-0,4

-0,2

0

0,2

0,4

0,6

0,8

1

 

 

 

-0,8

 

 

 

 

 

Рис. 4.1. Графическая локализация корня уравнения

Система уравнений имеет один действительный корень на отрезке единичной длины x1 0;1 и x2 3;4 .

2. Найдем с точностью = 10–6 корень системы нелинейных уравнений, используя метод Ньютона.

65

Построим итерационный процесс Ньютона

x(k 1) x(k) J(x(k)

Найдем якобиан

1

 

 

 

 

 

 

 

 

 

 

)

F(

x

(k) ).

 

 

 

 

 

f

1

 

 

f

1

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

 

x2

 

J

 

 

 

системы

 

f2

 

 

f2

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

x

2

 

 

 

 

 

1

 

 

 

 

 

f

 

(x ,x

) sin(x

1,5) x

 

2,9

 

 

 

1

1

2

 

1

 

 

 

2

.

 

 

f2 (x1,x2 ) cos(x2

2) x1

 

 

 

Получим

cos(x

1,5)

1

 

 

J

 

1

 

 

 

 

.

 

 

 

 

 

 

 

1

 

 

sin(x2

2)

 

 

 

 

 

 

 

 

 

 

 

Выберем начальное приближение: x(0) 0 .

4

Вычисления будем выполнять до выполнения условия

xk xk 1 0,000 001.

Найдем значение якобиана в точке x(0) 0 , получим

4

 

 

0,070

737

1

 

 

J(

x

0 )

 

 

 

 

 

 

 

 

1

 

0,909

297

.

 

 

 

 

 

 

 

 

1

0,971804

1,068 743

 

Обратная матрица к якобиану

J(

x

0 )

 

 

 

 

 

 

 

 

1,068 743

0,075 600

.

 

 

 

 

 

 

0,102505

Значение функции F(x0 ) .

0,416147

Выполним первую итерацию

x

 

 

0

 

0,971804

1,068 743

 

0,102 505

 

0,345139

1

 

 

 

 

 

 

 

·

 

 

=

 

.

 

 

 

4

 

 

1,068 743

0,075 600

 

 

0,416147

 

 

3,921909

 

x2

 

 

 

 

 

 

 

 

 

xk xk 1 0,345139.

Занесем вычисления в таблицу.

66

 

k

 

 

 

x

k

 

 

 

 

 

 

 

 

 

 

 

x

k

x

k 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

0,345139

 

 

 

 

 

0,345 139

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3,921909

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

0,299 791

 

 

 

 

0,047 021

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3,874888

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

0,298 713

 

 

 

 

0,001 078

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3,874140

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

0,298 712

 

 

 

 

 

0,000 001

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3,874139

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Поскольку

 

 

x

4

x

3

 

 

 

0,000 001, считаем, что корень системы

 

 

 

 

 

 

 

 

 

*

 

 

x1*

 

 

0,298 712

6

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

уравнений

 

 

 

 

 

 

 

 

с точность 10 .

 

 

 

 

*

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x2

 

 

 

 

3,874139

 

Найдем с точностью = 10–6 корень системы нелинейных

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

Построим итерационный процесс метода наискорейшего спуска

xk 1

 

xk

x (x1k ,x2k )

 

 

 

 

 

 

 

 

 

 

 

1

 

 

1

 

1

k

 

 

 

 

 

 

 

 

 

 

 

 

 

k 1

 

k

k

k

 

.

 

 

 

 

 

 

 

 

 

 

x2

 

x2

x2 (x1

,x2 )

 

 

 

 

 

 

 

 

 

 

 

Строим функцию Ф(x ,x

) f

2 (x ,x

) f 2

(x ,x

).

 

 

 

 

 

 

 

 

1

2

 

 

1

1

2

 

2

1

2

 

 

 

Ф(x ,x

) sin2 (x 1,5) cos

2 (x

2

2) x2

x2 5,8sin(x

1,5)

 

1

2

 

 

1

 

 

 

 

 

 

1

 

2

 

 

1

.

2x2 sin(x1 1,5) 8,41 5,8x2 2x2 cos(x2

2)

 

 

 

 

 

 

 

Найдем частные производные функции Ф(x1,x2 ):

 

 

x (x1 ,x2 ) 2 cos(x1

1,5) sin(x1 1,5) 2,9 x2

x1

cos(x2 2) ,

 

1

 

,x2 ) 2 cos(x2

 

 

 

 

 

 

 

 

 

 

 

 

 

x2 (x1

2)sin(x2

2) x2

sin(x1

1,5) 2,9

x1 sin(x1 1,5)

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

67

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

который оставим постоянным = const = 0,3.

x

 

 

0,254039

 

После первой итерации получаем вектор:

1

 

 

 

 

 

 

 

.

 

 

 

 

3,711456

 

x2

 

И

только

на 25 итерации достигается необходимая точность

10 6 , и мы получаем решение:

 

 

 

*

 

 

0,298 711

x

*

 

x1

 

 

 

 

*

 

.

 

 

 

x2

 

 

3,741390

4.2.3. Варианты заданий

Система уравнений

1

sin(x1 x2) x2 1.2 0

 

2x1 cosx2 2 0

2

cos(x1 1) x2 0.5 0

 

sinx1 2x2 2 0

 

 

3

sinx1 2x2 2 0

 

cosx1 x2 1.5 0

4

cosx1 x2 1.5 0

 

2x1 sin(x2 0.5) 1 0

 

 

5

sin(x1 1.5) x2 2.9 0

 

cos(x2 2) x1 0

6

cos(x1 0.5) x2 0.8 0

 

sinx2 2x1 1.6 0

 

 

7

sin(x1 1) x2 0.1 0

 

x1 sin(x2 1) 0.8 0

8

cos(x1 x2) 2x2 0

 

x1 sinx2 0.6 0

9cos(x1 0.5) x2 2 0 sinx2 2x1 1 0

№ Система уравнений

10sin(0.5x1 x2) 1.2x1 1 0

x12 x22 1 0

11tan(x1x2 0.3) x12 0

0.9x12 2x22 1 0

12sin(x1 x2) 1.3x1 1 0 x12 0.2x22 1 0

13tan(x1x2) x12 0

0.8x12 2x22 1 0

14sin(x1 x2) 1.5x1 0.1 0

3x12 x22 1 0

15tan(x1x2) x12 0

0.7x12 2x22 1 0

16sin(x1 x2) 1.2x1 0.1 0

x12 x22 1 0

17tan(x1x2 0.2) x12 0

0.6x12 2x22 1 0

18sin(x1 x2) x1 0.1 0 x2 cos(3x1) 0.1 0

68

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Окончание

 

 

 

 

 

Система уравнений

 

Система уравнений

19

sin(x x

) x

 

1.5 0

 

25

cos(x

0.5) x 1 0

 

1

 

 

 

2

2

 

 

 

 

 

 

1

2

 

x1 cos(x2 0.5) 0.5 0

 

 

sinx2 2x1 2 0

20

sin(x

 

1) x

1.2 0

 

26

cos(x

2) x 0

 

2

 

 

 

 

1

 

 

 

 

 

 

 

2

1

 

2x2 x

2

2 0

 

 

 

 

 

 

sin(x1 0.5) x2 2.9 0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

21

cos(x

 

1) x

0.5 0

 

27

sin(x 1) x 1.5 0

 

2

 

 

 

1

 

 

 

 

 

 

 

1

2

 

x2 cosx1 3 0

 

 

 

 

 

x1 sin(x2 1) 1 0

22

tan(x x

 

0.4) x

2

0

 

28

sin(x

1) x 1 0

 

 

 

 

 

 

2

1

 

1

 

2

 

 

 

1

 

 

 

 

2x2 cosx1 0.5 0

 

0.6x12 2x22 1 0

 

 

 

 

23

sin(x

x

) 1.6x

 

1 0

 

29

cos(x

1) x 0.8 0

 

1

 

 

 

2

 

 

1

 

 

 

 

2

1

 

x2 x2

1 0

 

 

 

 

 

 

 

x2 cosx1 2 0

 

1

2

 

 

 

 

 

 

 

 

 

 

 

 

24

tan(x x

 

0.1) x

2

 

0

 

30

cos(x 1) x 1 0

 

 

 

 

 

 

1

2

 

1

 

2

 

 

 

1

 

 

 

 

sinx2 2x1 1.6 0

 

x12 2x22

1 0

 

 

 

 

 

 

69

5. Лабораторная работа №5. ИНТЕРПОЛЯЦИЯ ТАБЛИЧНО ЗАДАННЫХ ФУНКЦИЙ

5.1.Интерполяция таблично заданных функций

5.1.1.Интерполяционный многочлен Лагранжа

Пусть в точках x0, x1,..., xn таких, что a ≤ x0 <...< xn≤ b известны значения функции y = f(x), то есть на отрезке [a; b] задана табличная

(сеточная) функция:

x

x0

x1

xn

y

y0

y1

yn

 

 

 

 

 

Определение. Функция φ(x) называется интерполирующей

(интерполяционной) для f(x) на [a; b], если ее значения φ(x0), φ(x1), ...,

φ(xn) в заданных точках x0, x1,..., xn, называемых узлами интерполяции,

совпадают с заданными значениями функции f(x), то есть с y0, y1,..., yn

соответственно.

Будем строить многочлен n-степени Ln(x) в виде линейной комбинации

 

n

 

Ln (x) pi (x) f (xi ),

(5.1)

 

i 0

 

где базисные многочлены имеют вид

 

pi (x)

(x x0 )(x x1)...(x xi 1)(x xi 1)(x xn )

,

(xi x0 )(xi x1 )...(xi xi 1 )(xi xi 1 )(xi xn )

 

 

обладающий свойством: Ln (xi ) f (xi ),i

 

,

(5.2)

0,n

если известны значения функции f(x) в точках xi ,i 0,n.

Теорема. Полином n-й степени, обладающий свойством (5.2),

единственный.

70

Соседние файлы в папке книги2