ChM1
.pdfМетод бисекции достаточно медленный, но всегда сходящийся, т.е.
при его использовании решение получается всегда.
Метод хорд
Допустим, что мы отделили корень на отрезке 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