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

Информатика 2 сессия / Численные методы решения задач строительства на ЭВМ

.pdf
Скачиваний:
333
Добавлен:
29.03.2015
Размер:
2.5 Mб
Скачать

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

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

i1

 

 

 

ï

.....................................................

 

 

 

 

 

ï

(k+1)

 

 

(k+1)

(k +1)

(k+1)

, an )

 

ï

xn

= fn (x1

, x2

,..., xn1

 

 

þ

Итерационный процесс продолжается до тех пор, пока

изменения всех неизвестных в двух последовательных итерациях не станут меньше наперед заданного малого числа ε. Успех во

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

Кроме итерационного метода (МПИ) для решения систем нелинейных уравнений применяют и другие, например, метод Ньютона, Брауна и др. [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 xn1 )

 

 

 

 

 

 

 

 

 

 

...+

 

 

 

 

yn .

 

 

 

 

 

 

 

(x

n

x

0

)(x

n

x )...(x

n

x

n1

)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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