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

ChM1

.pdf
Скачиваний:
14
Добавлен:
14.03.2016
Размер:
2.01 Mб
Скачать
x0 , x1 ,...

Метод бисекции достаточно медленный, но всегда сходящийся, т.е.

при его использовании решение получается всегда.

Метод хорд

Допустим, что мы отделили корень на отрезке a, b . В этом методе итерационный процесс состоит в том, что в качестве приближений к корню уравнения принимаются значения точек пересечения хорды с осью абсцисс.

Метод хорд является методом исключения интервалов. Пусть f(a)=A и f(b)=B. Построим хорду AB, точкой пересечения с осью абсцисс она поделит отрезок на две части. Выбираем ту часть, на границах которой функция имеет разный знак, и снова строим хорду,

находим точку её пересечения с осью абсцисс и получаем новое приближение корня. Каждое новое значение приближения корня находится по формуле:

xk a

b a

 

 

f (a)

 

 

 

 

 

 

 

f (b) f (a)

 

 

 

 

 

 

 

 

Процесс продолжаем до тех пор, пока

 

xk xk 1

 

, где – точность.

 

 

Y

A

x0 b

X

a

B

Рис. 3.3 Метод хорд для решения нелинейных уравнений

41

Алгоритмы метода бисекции и метода хорд похожи, однако метод хорд чаще дает более быструю сходимость итерационного процесса.

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

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

Допустим, что мы отделили корень на отрезке a, b . Производные f ' (x) и f '' (x) сохраняют знак на всем интервале a, b . Проведем

касательную в точке (x0 , f (x0 )) . Точка пересечения касательной с осью

OX будет новым приближением корня. Для того чтобы точка

пересечения

касательной с

 

осью OX лежала

внутри отрезка

a, b ,

касательную

надо проводить

в точке x0 , где

знаки f (x0 )

и

f '' (x0 )

одинаковы. Иными словами,

должно выполняться условие:

f (x) f '' (x) 0

для x= x0 . Новое значение приближенного корня вычисляем по формуле:

x

 

x

 

 

f (xk 1 )

, k 1,2,... .

 

 

k

k 1

 

 

 

 

 

 

f

'

(xk 1 )

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Процесс продолжаем до тех пор, пока

 

xk xk 1

 

, где – точность.

 

 

Y

X

a

x1 b=x0

Рис. 3.4 Метод касательных для решения нелинейных уравнений

Из формулы xk xk 1

f (xk 1 )

видно, что чем больше численное

f

'

(xk 1 )

 

 

 

 

 

значение производной f ' (x) ,

тем меньше значение

f (xk 1 )

, поэтому

f ' (xk 1 )

 

 

 

 

 

 

42

метод Ньютона удобно применять, когда в окрестности корня график

имеет большую крутизну, если же

f

'

(x)

мало, то и значение

f (xk 1 )

 

f ' (xk 1 )

 

 

 

 

 

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

невозможным. Следовательно, если кривая y f (x) вблизи точки

пересечения с осью OX почти горизонтальна, то применять метод Ньютона для решения уравнения f (x) 0 не рекомендуется.

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

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

записывается в виде x (x) . Пусть известно начальное приближение

корня x x0 . Подставим это значение в правую часть уравнения x (x)

и получим новое приближение x1 (x0 ) . Далее,

подставляя каждый

раз, новое

значение

корня в

x (x) , получаем

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

значений

xn 1 (xn )

(n 1,2,...) .

Итерационный процесс прекращается,

если результаты двух последовательных итераций близки: xn 1 xn .

Достаточным условием сходимости метода простой итерации является условие ' (xn ) 1.

Y

y=x

y=φ(x)

B0

A0

B1

A1

X

ξ

x2

x1

x0

 

 

 

 

Рис. 3.5 Сходящийся итерационный процесс

43

Y

y=φ(x)

y=x

A0

B0

X

ξ

x0

x1

Рис. 3.6 Расходящийся итерационный процесс

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

f1 (x1 , x2 ,..., xn ) 0,f2 (x1 , x2 ,..., xn ) 0,f3 (x1 , x2 ,..., xn ) 0.

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

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

x1(0) , x2(0) ,..., xn(0) – начальные приближения известны.

x(1)

(x(0)

, x(0)

,..., x(0) ),

 

1

 

1

1

2

n

 

 

(1)

2

(0)

(0)

(0)

),

и т.д.

x2

(x1

, x2

,..., xn

x(1)

 

3

(x(0)

, x(0)

,..., x(0) );

 

3

 

1

2

n

 

 

x1 1 (x1, x2 ,..., xn ),x2 2 (x1, x2 ,..., xn ),x3 3 (x1, x2 ,..., xn ).

Итерационный процесс продолжаем до тех пор, пока результаты всех последовательных итераций не станут близкими xi(k ) xi(k 1) .

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

Метод Ньютона имеет лучшую сходимость, чем метод простой итерации. В основе метода Ньютона использовано разложение функции

44

в ряд Тейлора, такое что члены, содержащие вторые производные и производные более высоких порядков, отбрасываются.

Задача состоит в нахождении приращений x1, x2 ,..., xn аргумента.

x1(1) x1(0) x1(1) , x2(1) x2(0) x21(1) ,

...........................,

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

т.е. общее решение: xi(k ) xi(k 1) xi(k ) .

Для этого функции f1, f2 ,..., fn разложим в ряд Тейлора

 

f

(x , x

 

,..., x

 

)

f

 

(x(0)

, x(0)

,..., x(0) )

f1

 

x

 

 

f1

 

 

2

n

 

 

 

 

 

 

 

 

 

1

1

 

 

1

 

1

2

 

n

x1

1

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f2

 

 

 

 

f2

f

 

(x , x

 

,..., x

 

)

f

 

 

(x(0)

, x(0)

 

,..., x(0) )

 

x

 

 

 

 

 

 

 

 

 

 

x

 

x

 

 

 

 

2

1

2

 

n

 

 

2

 

1

2

 

n

 

1

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

......................................,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fn

 

 

 

 

fn

f

 

(x , x

 

,..., x

 

)

f

 

 

(x(0) , x(0)

,..., x(0) )

 

x

 

 

 

 

 

 

 

 

 

x

 

 

x

 

 

 

 

n

1

2

 

n

 

 

n

1

2

 

n

 

1

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

x2 ... f1 xn ,xn

x2 ... f2 xn , (3.1)xn

x2 ... fn xn .xn

Правые части системы (3.1) приравниваем к 0, значения функций в точках перенесем вправо и получим:

 

f1

x

 

f1

 

 

 

 

 

 

 

 

 

x

1

 

 

x

 

 

 

 

 

 

 

2

 

 

 

 

 

1

 

 

 

 

 

 

 

 

f2

 

 

f2

 

 

 

x

 

 

 

 

 

 

 

 

x1

1

 

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f

n

 

 

 

 

f

n

 

 

 

 

 

x

 

 

 

 

 

x

 

x

 

 

 

 

 

 

1

 

 

2

 

 

 

 

 

1

 

 

 

 

 

 

 

x

 

...

f1

x

 

f

(x(0)

, x(0)

,..., x(0) ),

 

2

 

 

 

n

 

 

 

 

 

xn

 

 

1

1

2

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

...

 

 

f2

 

 

x

 

f

 

(x(0) , x(0) ,..., x(0) ),

 

 

 

 

xn

 

 

(3.2)

 

2

 

 

 

 

n

 

2

1

2

n

 

 

 

 

 

 

 

 

 

 

 

 

......................,

 

 

 

 

 

x

 

...

fn

 

x

 

f

 

(x(0)

, x(0)

,..., x(0) ).

 

2

 

n

n

 

 

 

 

 

xn

 

 

1

2

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

f1

...

f1

 

 

 

 

 

 

Определителем системы (3.2) является якобиан

J

 

x1

xn

 

.

 

 

 

... ... ...

 

 

 

 

fn

...

fn

 

 

 

 

 

x1

xn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запишем систему (3.2) в матричном виде, для этого введем в

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

45

f1 F f2

fn

(x(0) , x(0) ,..., x(0) )

 

1

2

n

 

 

 

 

(x(0) , x(0) ,..., x(0) )

,

1

2

n

 

 

 

 

...

 

 

 

 

 

 

 

(0)

(0)

(0)

 

 

(x1

, x2

,..., xn

)

 

x1

 

 

 

 

f

 

f

 

 

 

 

 

1

...

1

 

 

 

 

 

 

 

 

 

 

 

 

x1

 

xn

 

 

x2

 

,

 

 

, тогда систему (3.2)

J1

 

 

...

X

 

... ...

 

...

 

 

 

 

fn

...

fn

 

 

 

 

 

 

 

x1

 

 

 

xn

 

 

 

 

 

xn

 

можно записать в виде J1 X F (3.2'). Отсюда можно найти X :

J1 1J1 X J1 1F X J1 1F .

Итерационный процесс решения системы продолжается пока не станет истинным условие xi .

 

Пример:

 

решить

 

систему

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

,

нулевые

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

f2 (x, y) xy3 y 4 0.

 

 

приближения x(0) 1.2; y(0)

1.7 .

 

 

 

 

 

 

Решение:

найдем

 

значения

функций в точке

(x(0) , y(0) ) :

f (x(0) , y(0) ) 0.434; f

 

 

 

 

 

0.434

 

 

 

(x(0) , y(0) ) 0.1956, F

.

 

 

1

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.1956

 

 

 

 

f1

f1

 

 

6x2

 

2 y

 

 

 

3.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

J

x

y

 

 

 

 

 

8.64

97.955 .

 

 

 

 

f2

f2

 

 

y3

3xy2 1

 

 

4.913

9.404

 

 

 

 

 

x

y

 

 

 

 

 

 

 

 

 

 

 

 

 

J11 J12 J21 J22

Найдем матрицу обратную для

J

 

 

6x2

2 y

 

8.64

3.4

 

:

1

 

 

3

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

3xy

 

 

 

4.913

9.404

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

9.404

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.913

J 1

 

1

 

9.404

3.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.4

1

 

97,955

 

4.913

8.64

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8.64

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Найдем приращения x; y :

 

1

9.404

3.4

 

0.434

 

 

1

 

 

0.434 * 9.404 0.1956 * 3.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

97.955

 

4.913 8.64

 

0.1956

 

 

 

97.955

 

0.434 * ( 4.913) 0.1956 *8.64

 

 

 

 

 

 

 

 

 

 

 

 

1

 

4.08

0.67

 

 

 

1

 

3.41

 

 

 

0.0348

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

97.955

 

2.132

1.69

 

 

 

97.955

 

3.822

 

 

 

0.039

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, получаем первые приближения корней:

x(1) x(0) x(1)

1.2 0.0348 1.2348,

y(1) y(0) y(1)

1.7 0.039 1.661.

46

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

Вопросы для самоконтроля:

1.Отделение корней.

2.Метод бисекции.

3.Метод касательных.

4.Метод хорд.

5.Метод Ньютона для решения систем нелинейных уравнений.

Лабораторная работа № 3

Задания: Найти корень данного уравнения f x 0 (см. таблицу) с

точностью до 10 6 :

1)методом бисекции;

2)методом касательных;

3)методом хорд.

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

1.Отделить корень уравнения.

2.Составить программу вычисления корня заданного уравнения методом бисекции. В программе предусмотреть:

a)повторение ввода при неверных исходных данных;

b)подсчет числа итераций, необходимых для достижения заданной точности;

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

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

Впрограмме предусмотреть:

47

a)вычисление количества сделанных итераций;

b)вычисление невязки;

c)проверку ввода начального приближения.

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

4.Сравнить результаты вычислений по методам бисекции и Ньютона по количеству итераций.

5.Составить программу вычисления корня методом хорд. В

программе предусмотреть:

a)подсчет количества итераций;

b)подсчет невязки;

c)проверку ввода начальных приближений.

 

 

 

Таблица 3.1

 

Данные к заданию

 

Уравнение

Уравнение

варианта

варианта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

x cos 0.387x 0

7

e x x2 2 0

 

 

 

 

 

2 cos x 0

 

x2 cos x 2 0

2

 

 

 

x

8

 

2

 

 

 

 

 

 

3

 

tg x x 3 0

9

x arccos x 0

 

4

 

 

 

 

 

 

4

 

ctg1.05x x2 0

10

e 2 x 2x 1 0

 

0.9x arctgx 0.1 0

 

 

 

 

 

 

5

11

 

x 1 x2 1

6

2x arcsin x 0.1 0

12

sin(x 1)

x

 

 

 

 

 

 

 

 

 

2

 

48

Глава IV

Аппроксимация функций

4.1Постановка задачи. Вводные замечания

Пусть величина y является функцией аргумента x – любому значению x из области определения поставлено в соответствие значение y. Достаточно часто неизвестна явная связь между y и x, т.е. невозможно записать эту связь в виде зависимости y=f(x), иногда она известна, но настолько громоздка, что ею трудно воспользоваться при расчетах.

Встречаются случаи, когда вид связи между y и x неизвестен, но эта связь задана в виде некоторой таблицы xi , yi – множеству значений аргумента поставлено в соответствие множество значений функции.

Данные значения это либо результаты расчетов, либо экспериментальные данные. На практике иногда могут понадобиться значения величины y и в других точках, отличных от xi, получить их можно путем очень сложных расчетов или проведением дорогостоящих экспериментов.

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

Данной цели служит задача об аппроксимации (приближении)

функции: данную функцию f(x) требуется аппроксимировать

(приближенно заменить) некоторой функцией φ(x) так, чтобы отклонение φ(x) от f(x) в заданной области было наименьшим. Функция

φ(x) при этом называется аппроксимирующей функцией

(приближающей).

Возможные виды аппроксимации: если приближение строится на дискретном множестве точек xi , то аппроксимация называется точечной (интерполирование – случай точечной аппроксимации). При

49

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

На отрезке a, b заданы точки x0 , x1,..., xn и значения некоторой функции в этих точках f (x0 ) y0 , f (x1 ) y1 ,..., f (xn ) yn .

Требуется построить функцию (x) , принадлежащую известному классу и принимающую в заданных точках xi те же значения, что и

функция f (x) , т. е. f (xi ) (xi ) , ( i 0,1,2,..., n ).

Геометрически это означает, что нужно найти кривую y (x)

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

точек Mi (xi , yi ) (i 0,1,..., n)

Y

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 4.1 Аппроксимация функции

Суть интерполирования:

 

для

данной функции y=f(x) нужно

построить

многочлен

 

(x) a

a x a x2 ... a xm , принимающий в

 

 

 

 

 

 

 

0

1

2

m

заданных точках xi такие же значения

yi , что и функция f(x), т.е.

f (xi ) (xi )

(i 0,1,..., n) .

При

этом

(x)

называют интерполяционным

многочленом, а xi - узлами интерполяции.

Проведем некоторую классификацию интерполяции.

50

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