
Информатика 2 сессия / Численные методы решения задач строительства на ЭВМ
.pdf
Численные методы решения нелинейных уравнений
C геометрической точки зрения этом метод означает, что касательные в точках Bn [xn, f(xn)] мы заменяем прямыми, параллельными касательной к кривой y = f(x) в ее точке B0
[x0,f(x0)].
GЗамечание.. Метод особенно удобен, когда производная f’(x) сложна, или когда функция y=f(x) задана таблично.
3.3. Системы нелинейных уравнений
Многие практические задачи сводятся к решению систем нелинейных уравнений. В отличие от систем линейных уравнений
не существует прямых методов решения нелинейных систем общего вида. Лишь в отдельных случаях системы можно решить непосредственно. Обычно используются итерационные методы,
например, метод простой итерации (МПИ).
Систему уравнений:
F1 (x1 , x2 ,..., xn ) = 0 ü
F2 (x1 , x2 ,..., xn ) = 0ïï
ý
............................. ï Fn (x1 , x2 ,..., xn ) = 0ïþ
представим в виде: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
= f |
1 |
(x , x |
2 |
,..., x |
n |
) ü |
|||||||
1 |
|
|
1 |
|
|
|
|
ï |
|||||||
x2 |
= f2 |
(x1 |
, x2 |
,..., xn )ï |
|||||||||||
............................. |
|
|
|
ý |
|||||||||||
|
|
|
ï |
||||||||||||
x |
n |
= f |
n |
(x , x |
2 |
,..., x |
n |
)ï |
|||||||
|
|
|
1 |
|
|
|
|
þ |
Алгоритм решения этой системы напоминает метод Гаусса – Зейделя, используемый для решения систем линейных алгебраических уравнений.
Пусть в результате k-й итерации получены значения
неизвестных x1(k ) = a1 ; x2(k ) = a2 ; …; xn(k ) = an . Тогда выражения
для неизвестных на следующей итерации имеют вид
113

Численные методы решения нелинейных уравнений
x1(k+1) |
= f1(a1, a2 ,...,an ) |
|
|
|
|
|
|
ü |
|||
x2(k+1) |
= f2 (x1(k +1) , a2 ,...,an ) |
|
|
|
|
|
ï |
||||
|
|
|
|
|
ï |
||||||
|
|
|
|
|
|
|
|
|
|
|
ï |
.................... |
|
|
.......... |
... |
|
|
|
|
|
|
ï |
x(k+1) |
= f |
|
(x(k +1) , x(k +1) ,..., x(k +1) |
, a |
|
,...,a |
|
ý |
|||
i |
i |
n |
)ï |
||||||||
i |
|
1 |
2 |
i−1 |
|
|
|
ï |
|||
..................................................... |
|
|
|
|
|
ï |
|||||
(k+1) |
|
|
(k+1) |
(k +1) |
(k+1) |
, an ) |
|
ï |
|||
xn |
= fn (x1 |
, x2 |
,..., xn−1 |
|
|
þ |
Итерационный процесс продолжается до тех пор, пока
изменения всех неизвестных в двух последовательных итерациях не станут меньше наперед заданного малого числа ε. Успех во
многом определяется удачным выбором начального приближения неизвестных. Они должны быть достаточно близкими к истинному решению. В противном случае итерационный процесс может не сойтись.
Кроме итерационного метода (МПИ) для решения систем нелинейных уравнений применяют и другие, например, метод Ньютона, Брауна и др. [8,12].
3.4. Реализация численных методов решения нелинейных уравнений средствами приложения Excel
Найти корни уравнения из примера 3.2.
x-tg(x)=0. (3.18)
Первый этап решения (этап отделения корней) приведен в разделе 3.1. Искомый корень уравнения находится на отрезке
x [4;4,5] , что и видно на графике (рис. 3.9), выполненном средствами приложения Excel.
3,0 |
|
|
|
|
|
|
|
y |
|
|
|
|
|
|
|
2,0 |
|
|
|
|
|
|
Рис.3.9. Этап |
|
|
|
|
|
|
|
|
1,0 |
|
|
|
|
|
|
отделения корней |
|
|
|
|
|
|
|
|
0,0 |
|
|
|
|
|
|
x |
|
|
|
|
|
|
|
|
3,9 |
4 |
4,1 |
4,2 |
4,3 |
4,4 |
4,5 |
4,6 |
-1,0 |
|
|
|
|
|
|
|
114

Численные методы решения нелинейных уравнений
Этап уточнения корня реализуем средствами Excel. Продемонстрируем это на примере метода половинного деления.
Схемы расчетов для методов касательных и хорд мало чем отличаются от приведенной ниже схемы.
Последовательность действий
1.Подготовим таблицу, как покозано на рис.3.10 и введем значения a, b, ε соответственно в ячейки В3, В4, В5
2.Заполним первую строку таблицы:
ØЕ4=В3, F4=B4, G4=E4-TAN(E4), для вычисления f(a),
Øаналогично, в ячейки H4,I4, J4 введем формулы для вычисления f(b), xn=(a+b)/2, f(xn);
Øв ячейке К3 вычислим длину отрезка [a, b].
3.В ячейки E5, F5 введем формулы для формирования концов вложенных отрезков в соответствии с алгоритмом, изложенным в разделе 3.2.1:
ØE5=ЕСЛИ(J4*H4<0;I4;E4);
ØF5=ЕСЛИ(J4*H4>0;I4;F4).
4.Выделим ячейки G4:K4 и скопируем их вниз на одну строку.
5.Выделим ячейки E5:K5 и скопируем их вниз до конца таблицы.
Деление отрезков продолжаем до тех пор, пока длина последнего не станет меньше заданного ε, т.е. до тех пор, пока не
выполнится условие b − a < ε .
Рис. 3.10. Схема решения нелинейного уравнения методом дихотомии.
115

Численные методы решения нелинейных уравнений
Чтобы сделать наглядным окончание итерационного процесса, т.е. определить номер итерации, для которой выполнится условие b − a < ε , воспользуемся Условным форматированием,
Использование Условного форматирования наглядно демонстрирует ход итерационного процесса. Из рис.3.10 видно, что за приближенное решение нашего уравнения (3.18) с заданной точностью ε =0,1 принимается 3-я итерация, т.е. x* ≈ 4,469.
3.4.1.Решение нелинейных уравнений
сиспользованием надстройки «Подбор параметра»
Решение нелинейных уравнений можно реализовать в приложении Excel с использованием надстройки Подбор параметра.
Найдем корни уравнения (3.18), рассмотренного выше.
За нулевое приближение решения уравнения, как это видно из рис.3.9, можно принять х0 =4 или х0 =4,5.
Последовательность действий
1.Заготовим таблицу, как показано на рис.3.11. Введем в ячейку А2 значение нулевого приближения корня, х0 =4.
2.Значение ячейки В2 будет изменяться в процессе решения
(подбора параметра). Первоначально введем туда значение х0,
т.е. 4.
3.Введем в ячейку С2 формулу левой части уравнения (3.18), т.е.
С2=В2-TAN(В2).
4.Зададим команду: меню Сервис\Подбор параметра.
5.В появившемся окне Подбор параметра сделаем установки, как показано на рис.3.11.
116

Численные методы решения нелинейных уравнений
Рис.3.11.Решение нелинейного уравнения с помощью надстройки «Подбор параметра»
Если все было сделано правильно, то в ячейке В4 будет
получено приближенное значение корня нашего уравнения (рис.3.11). Можно повторить счет для х0 =4,5.
117

Аппроксимация
Глава 4. Аппроксимация
«Аппроксимация (от лат. Approximo –
приближаюсь) – замена одних математических объектов другими, близкими к исходным»
Математический энциклопедический словарь
4.1. Задача и способы аппроксимации
Большинство численных методов основаны на замене одной функции f(x) (известной или неизвестной) другой функцией ϕ(х), близкой к f(x). Как правило, функция ϕ(х) обладает «хорошими» свойствами и является «удобной» при аналитических и вычислительных операциях. Такую замену называют
аппроксимацией или попросту – приближением функции f(x)
функцией ϕ(х).
Таким образом, задача аппроксимации функции f(x) функцией ϕ(х) состоит в построении функции ϕ(х) близкой к функции f(x) на некотором отрезке [a,b], т.е.
f(x) ϕ(х). |
(4.1) |
Для решения этой задачи необходимо ответить на ряд вопросов, а именно:
1.Что известно о функции f(x). Задана она аналитически или таблицей своих значений, какова степень ее гладкости.
2.Какую функцию ϕ(х) выбрать в качестве аппроксимирующей функции.
3.Что понимать под близостью между функциями f(x) и ϕ(х), т.е. какова степень приближения (4.1).
Термин близости (отклонения) двух функций понимается по- разному в зависимости от обстоятельств. При этом мы получаем различные задачи теории приближения, из которых рассмотрим две, а именно: интерполирование и среднеквадратичное приближение.
118

Аппроксимация
4.2.Интерполирование функций
4.2.1.Постановка задачи интерполирования
Простейшая задача интерполирования заключается в следующем [9, 12]. На отрезке [a,b] заданы n+1 точек x0, x1,…,xn , которые называются узлами интерполяции, и значения некоторой функции у=f(x) в этих узлах: y0=f(x0), y1=f(x1),…,yn=f(xn).
Требуется построить функцию ϕ(х) (интерполирующую функцию), принимающую в узлах интерполяции те же значения, что и функция f(x), т.е.
ϕ(х0)=y0, ϕ(х1)=y1,…,ϕ(хn)=yn.. (4.2)
Геометрически это означает, что нужно найти кривую у=ϕ(х) некоторого определенного типа,
проходящую через заданную систему точек (рис.4.1)
Рис.4.1. Геометрический смысл задачи интерполирования.
В такой общей постановке задача может иметь бесчисленное множество решений или совсем не иметь решений.
Однако задача становится однозначной, если в качестве интерполирующей функции взять многочлен Pn(х) степени не выше n, удовлетворяющий условиям:
Pn(x0)=y0, Pn(x1)= y1 ,…, Pn(xn)=yn. |
(4.3) |
Интерполяционную формулу |
|
f(x) Pn(х) |
(4.4) |
обычно используют для приближенного вычисления значений данной функции у=f(x) в точках х [х0, хn], отличных от узлов интерполяции. Такая операция называется интерполированием
119

Аппроксимация
функции. С другой стороны, имея интерполяционную зависимость (4.4) можно сделать прогноз о поведении функции у=f(x) вне отрезка [a,b], это уже называется экстраполяцией.
Таким образом, под интерполяцией понимается нахождение
приближенных промежуточных значений таблично заданной функции строго внутри таблицы, тогда как экстраполяция –
нахождение приближенных значений функции за пределами промежутка [x0, xn].
G Понятие интерполирование и экстраполирование становятся очевидными, зная их латинское происхождение: inter – между, extra – вне, polire – делать гладкими.
4.2.2. Интерполяционная формула Лагранжа
Пусть на отрезке [a,b] функция у=f(x) задана таблично, т.е. задана для n+1 значений аргумента xi, (i=0,1,..,n) и принимает соответствующие значения yi=f(xi), ( i=0,1,..,n).
Поставим задачу найти алгебраический многочлен (полином):
n |
|
|
L n ( x ) = å a k x k = a 0 |
+ a1 x + a 2 x 2 + ... + a n x n |
(4.5) |
k = 0 |
|
|
степени не выше n такой, чтобы |
|
|
Ln(xi)=yi , |
при i=0,1,..,n, |
(4.6) |
т.е. имеющий в заданных узлах xi, (i=0,1,..,n) те же значения, что и функция f(x).
Сам многочлен Ln(x) называется интерполяционным полиномом, а задача – полиномиальной или параболической интерполяцией.
Найти многочлен Ln(x) – это значит найти его коэффициенты a0, a1,…,an. Для этого имеется n+1 условие (4.6),
которые записываются в виде системы линейных алгебраических уравнений относительно неизвестных ai, (i=0, 1,…,n):
120

Аппроксимация
a 0 |
+ a1 x 0 |
+ a 2 x o2 |
+ ... |
+ a n x 0n |
= |
y 0 , |
|
|
a 0 |
+ a1 x1 |
+ a 2 x12 |
+ ... |
+ a n x1n |
= |
y1 , |
(4.7) |
|
.......... .......... .......... .......... .......... ... |
||||||||
|
||||||||
a 0 |
+ a1 x n |
+ a 2 x n2 |
+ ... |
+ a n x nn |
= |
y n , |
|
где xi и yi (i=0,1,…,n) – табличные значения аргумента и функции Из курса алгебры известно, что определитель этой системы:
|
1 |
x0 |
x02 |
L x0n |
|
= |
1 |
x |
x2 |
L xn |
|
|
1 |
1 |
1 |
– определитель Вандермонда |
|
|
M |
M |
M |
M M |
|
|
1 |
xn |
xn2 |
L xnn |
|
отличен от нуля и, следовательно, система (4.7) имеет
единственное решение.
Определив коэффициенты a0, a1,…,an из системы (4.7),
получаем так называемый интерполяционный полином Лагранжа
для функции f(x):
Ln (x) = |
(x − x1 )...(x − xn ) |
|
y0 |
+ |
(x − x0 )(x − x2 )...(x − xn ) |
|
y1 +... |
||||||||||||||||||||
(x |
0 |
− x )...(x |
0 |
− x |
n |
) |
(x |
− x |
0 |
)(x |
− x |
2 |
)...(x |
− x |
n |
) |
|||||||||||
|
|
1 |
|
|
|
|
|
|
1 |
|
|
1 |
|
|
1 |
|
|
(4.8) |
|||||||||
|
|
|
|
|
(x − x0 )(x − x1 )...(x − xn−1 ) |
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
...+ |
|
|
|
|
yn . |
|
|
|
|
|||||||||||||||
|
|
|
(x |
n |
− x |
0 |
)(x |
n |
− x )...(x |
n |
− x |
n−1 |
) |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
В сокращенном виде его можно записать так:
n |
( x − x0 )...( x − xi −1 )( x |
|
− xi +1 )...( x − xn ) |
|
|
|
|||||||||||||
Ln ( x) = å |
|
|
yi . |
(4.8 а) |
|||||||||||||||
( x |
i |
− x |
0 |
)...( x |
i |
− x |
i −1 |
)( x |
i |
− x |
i +1 |
)...( x |
i |
− x |
n |
) |
|||
i =0 |
|
|
|
|
|
|
|
|
|
|
|
Существует доказательство [9, 12], что по заданным n+1
значениям функции можно построить единственный интерполяционный многочлен Лагранжа (4.8).
На практике широко используются интерполяционные многочлены Лагранжа первой (n=1) и второй (n=2) степени.
121

Аппроксимация
При n=1 информация об интерполируемой функции у=f(x) задается в двух точках: (x0, y0) и (x1, y1), и многочлен Лагранжа
имеет вид
|
|
|
L (x) = |
x − x1 |
|
y |
0 |
+ |
x − x0 |
|
y . |
|
|
|
|
(4.8 б) |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
1 |
|
|
x0 − x1 |
|
x1 |
|
1 |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
− x0 |
|
|
|
|
|
||||||||||
Для n=2 многочлен Лагранжа строится по трехточечной |
|||||||||||||||||||||||||
таблице |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
xi |
|
x0 |
|
|
|
|
x1 |
x2 |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
yi |
|
y0 |
|
|
|
|
y1 |
y2 |
|
|
|
|
|
|
|
|
|||
и имеет вид |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
L (x) = |
(x − x1)(x − x2) |
y + |
(x − x0)(x − x2) |
|
y + |
|
(x − x0)(x − x1) |
y . |
(4.8 в) |
||||||||||||||||
|
(x − x )(x − x ) |
|
|
||||||||||||||||||||||
2 |
(x − x )(x − x ) 0 |
1 |
(x − x )(x − x ) 2 |
|
|||||||||||||||||||||
|
0 |
1 |
0 |
2 |
|
|
|
1 |
|
0 |
1 |
2 |
|
|
2 |
0 |
2 |
1 |
|
|
|||||
Приближенные равенства |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
f (x) ≈ L1 (x), |
|
|
f (x) ≈ L2 ( x) |
|
|
|
|
|
называются соответственно формулами линейной и квадратичной интерполяции.
n Пример 4.1. Построить интерполяционный полином Лагранжа для функции, заданной таблицей:
xi |
1 |
2 |
3 |
5 |
yi |
1 |
5 |
14 |
81 |
Решение: Подставляем исходные данные в формулу (4.8). Степень полученного многочлена Лагранжа не выше третьей, так как функция
задается четырьмя значениями: |
|
|
|
|
|||
L3 (x) = 1× |
(x - 2)(x -3)(x - 5) |
+ 5× |
(x -1)(x - 3)(x - 5) |
+14× |
(x -1)(x - 2)(x - 5) |
+ |
|
(1- 2)(1- 3)(1- 5) |
(2 -1)(2 - 3)(2 - 5) |
(3 -1)(3 - 2)(3- 5) |
|||||
|
|
|
|
+ 81× (x -1)(x - 2)(x - 3) = x3 - 2x2 + 3x -1. (5 -1)(5 - 2)(5 - 3)
Пользуясь интерполяционным полиномом Лагранжа, можно найти значение функции в любой промежуточной точке, например при х=4:
122