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

Информационные системы менеджмента - Бажин И.И

..pdf
Скачиваний:
168
Добавлен:
24.05.2014
Размер:
12.28 Mб
Скачать

Глава 5. Анализ данных как этап принятия решений

291

дентной функции (степень, логарифм, тригонометрическая функция и т.п.), уравнение называется трансцендентным.

3S=

Рис.5.1.

Значение х*, при котором вы­ полняется условие f(x*) = 0, назы­ вается корнем уравнения. Такой корень геометрически представля­ ет собой абсциссу точки пересече­ ния или касания графика функции у = f(x) и оси ох (у = 0) (рис.5.1).

На практике используются ме­ тоды, позволяющие определить приближенные значения корней (х*) с заданной степенью точности.

Процесс отыскания корней уравнения состоит из двух этапов:

1)Отделение корней, то есть отыскание возможно более тесных интерва­ лов (а, Ь), внутри которых содержится по одному корню уравнения, единствен­ ному на выделенном интервале.

2)Уточнение значений отделенных корней до некоторой заданной степе­ ни точности.

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

На практике распространен графический способ определения приближен­ ных значений корней. В том случае строится график функции у = f(x), пересече­ ния которого с осью ох позволяют отделить корни и дают приближенные значе­ ния этих корней (см. рис.5.1). Такой способ наглядно показывает, в каких интер­ валах находятся корни, и позволяет определить исходные интервалы для по­ следующего уточнения найденных приближенных значений корней. В случаях, когда выражение для функции у имеет сложный вид, прибегают к замене исход­ ного уравнения равносильными уравнениями вида ф(х) = ф(х), где ф(х) и ср(х) -

более простые функции При этом строятся графики у = ф(х) и у = ф(х), а точка их пересечения и определяет положение корней.

Рассмотрим пример. Отделить корни уравнения x l g x = 1 . Запишем это урав­ нение в виде

и построим графики у = 1дх и у = 1/х (рис.5.2).

Точка пересечения построенных кривых определяет положение корня урав­ нения, что позволяет выявить как можно более тесный интервал, на котором на-

292

Часть 1. Новые принципы работы

 

 

 

 

 

ходится

точное

значение

корня.

 

 

Можно видеть, что интервал, в кото­

 

 

ром находится корень - это

 

 

 

 

 

2 < х < 3

 

 

 

Уточняют найденное

прибли­

 

 

женное значение корней различными

 

 

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

методами,

состоя­

 

 

щими в построении

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

 

Рис.5.2.

ности

хк,

(к = 0,1,2

п),

сходя-

 

щейся

к искомому корню х* уравне­

ния f(x) = 0.

Рассмотрим наиболее эффективные из итерационных методов решения не­ линейных уравнений.

Метод половинного деления

Часто этот метод называют методом дихотомии.

Пусть дано уравнение f(x) = 0. Функция f(x) непрерывна на отрезке (а, Ь), и f(a)* f(b) < 0, то есть на концах интервала функция имеет разные знаки, что сви­ детельствует о наличии в пределах интервала, по крайней мере, одного корня уравнения.

Алгоритм метода дихотомии

1. Делим отрезок (а, Ь) пополам и определяем Х т = (а+Ь)/2. Если f(xm) = 0, то Х т = (а+Ь)/2 - корень уравнения, и решение завершено. Если это не так, пе­ реходим к пункту 2 алгоритма.

2. Выбираем тот из отрезков (а, х т ) или (х т Ь,), на концах которого функция f(x) имеет разные знаки.

3.Новый уменьшенный интервал (a-i,bi) вновь делим пополам xm = (ai+bi)/2

ивыбираем ту половину, на концах которой функция f(x) имеет противополож­ ные знаки.

4.При заданной точности вычислений 8 деление пополам продолжаем до тех пор, пока на k-том шаге итераций длина полученного отрезка не станет меньше 2е, то есть

(bk - ak) < 2s.

В этом случае середина последнего k-того отрезка дает значение корня с тре­ буемой точностью

х* = (ak + bk)/2

Глава 5. Анализ данных как этап принятия решений

293

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

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

Решить уравнение f(x) = 0; f(x) = х4 + 2х3 - х - 1 с точностью е = 0,001. Пусть мы отделили корень на отрезке (0, 1). Далее, в соответствии с приведен­ ным алгоритмом, производим итерации, уменьшающие длину интервала. Эти вычисления удобно производить, используя программный комплекс Microsoft Excel. Результаты выполненных таким образом вычислений для десяти итера­ ций представлены ниже в виде таблицы Microsoft Excel.

k

а

b

f(a)

f(b)

xm=(a+b)/2

f(xm)

b-a

0

0,0000

1,0000

-1,0000

1,0000

0,5000

-1,1875

1,0000

1 0,5000

1,0000

-1,1875

1,0000

0,7500

-0,5898

0,5000

2

0,7500

1,0000

-0,5898

1,0000

0,8750

0,0510

0,2500

3

0,7500

0,8750

-0,5898

0,0510

0,8125

-0,3039

0,1250

4

0,8125

0,8750

-0,3039

0,0510

0,8438

-0,1356

0,0625

5

0,8438

0,8750

-0,1356

0,0510

0,8594

-0,0446

0,0313

6

0,8594

0,8750

-0,0446

0,0510

0,8672

0,0026

0,0156

7

0,8594

0,8672

-0,0446

0,0026

0,8633

-0,0211

0,0078

8

0,8633

0,8672

-0,0211

0,0026

0,8652

-0,0093

0,0039

9

0,8652

0,8672

-0,0093

0,0026

0,8662

-0,0034

0,0020

10 0,8662

0,8672

-0,0034

0,0026

0,8667

-0,0004

0,0010

Можно видеть, что на десятой итерации длина отрезка (b-а) меньше удво­ енной заданной точности. При этом решением с заданной точностью является середина полученного отрезка, то есть х* = 0,8667 (это значение отмечено в таблице закрашенной клеткой).

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

Этот метод называют также методом касательных. Суть его состоит в следующем. Пусть требуется решить уравнение f(x) = 0.. Функция имеет на кон­ цах интервала разные знаки, таким образом, на отрезке (а, Ь) имеется хотя бы один корень уравнения. Пусть график функции f(x) на отрезке (а, Ь) имеет вид, представленный на рис. 5.3.

Замечание. Использование метода Ньютона предполагает выполнение следующих требований к функции f(x) и ее производным: на отрезке (а,Ь) функ­ ция непрерывна, а ее первая и вторая производные непрерывны и имеют на (а,Ь) постоянные знаки.

294

Часть 1. Новые принципы

работы

 

 

У ;

 

 

В качестве начального

приближе­

 

 

ния в методе Ньютона используется ко­

 

 

 

 

 

 

нец интервала (а или Ь). Проведем ка­

 

 

 

сательную

к кривой

у = f(x)

из конца

 

 

 

интервала b (рис.5.3). Точка пересече­

 

 

 

ния касательной с осью х определяет

 

 

 

первое приближение xi. Из точки с ко­

0 а

У?УТУ

b х

ординатой

xi восстанавливаем перпен­

|

^ - ^ Г - -Хз- -Хг -Xt

 

дикуляр к оси х, и в точке пересечения

 

этого перпендикуляра с кривой у = f(x)

 

 

 

 

Рис.5.3

 

снова проводим касательную к этой

 

 

кривой, пересечение

которой

с осью х

определяет второе приближение Хг. По­ вторение этой процедуры позволяет получить последовательность значений х3, х4, и т.д., сходящихся к значению корня уравнения х* .

Математически описанную процедуру можно представить следующим обра­ зом. Уравнение касательной к кривой у = f(x) можно записать так

y = f ( x k ) x

Тогда для любого k-того приближения можно записать

y - f ( x k ) = f ( x k ) ( x - x k ) ,

а для первого приближения (касательная в точке Ь) получим

y - f ( b ) = f ( b ) ( x - b )

Точку пересечения этой касательной с осью х - точку Xi - можно получить, по­ ложив у = 0. При этом первое приближение получим в виде

X, = b - f (b)/f (b)

Тогда на очередном шаге итерации любое следующее (к+1)-е приближение можно через предыдущее к-е приближение получить в виде

Хк+1 = Хк - f (Xk)/f '(Хк)

Полученная зависимость позволяет построить алгоритм метода Ньютона. При этом важным является вопрос о сходимости вычислительной процедуры. Так, если провести касательную не из точки х = Ь, а из точки х = а (рис.5.3 - пунктирная линия), то легко увидеть, что касательная в этом случае пересечется с осью х за пределами рассматриваемого интервала, и, таким образом, процесс

Глава 5. Анализ данных как этап принятия решений

295

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

процедуры метода Ньютона в качестве исходной точки поиска необходи­ мо выбирать тот конец интервала (а,Ь), где функция f(x) имеет тот же знак, что и ее вторая производная f "(*)•

Алгоритм метода Ньютона

Пусть известен отрезок (а,Ь), отделяющий корень уравнения f(x) = 0, и за­ дано число Б > 0 -точность вычислений. Пусть также f'(х) и f "(х) непрерывны и имеют постоянные знаки на (а,Ь).

1.Определяем знак f "(x).

2.В качестве начального приближения выбираем конец отрезка (а или Ь), где функция f(x) имеет тот же знак, что и f "(х).

3.Определяем первое приближение

 

х, = а - f (a)/f '(а)

или х, = b - f (b)/f '(b)

4.

Каждое следующее приближение вычисляем по формуле

 

 

Xk+1 = Xk - f (Xk )/f (Xk)

5.

Процесс поиска заканчиваем, если

 

 

|xk + 1 -xk |=

|f(xk )/f'(xk )|<s.

Рассмотрим пример. Решим ранее приведенное уравнение f(x) = 0;

f(x) = х4 + 3 - х -1

с точностью е = 0,001. Интервал поиска - (0,1).

Найдем производные функции f(x).

f'(х) = 4х3 + 6х2 - 1 ;

f "(х) = 12х2 + 12х. Вторая производная в указанном интер­

вале положительна. Таким образом, в качестве начального приближения следу­ ет выбрать координату правого конца интервала (х = 1), где и функция f(x) > 0 (f(1) = 1, f(0) = -1). Далее следуем в соответствии с изложенным алгоритмом, ис­ пользуя для вычислений, как и ранее, Microsoft Excel. Результаты выполнен­ ных таким образом вычислений для четырех итераций представлены ниже.

к

хк

f(xk)

f(xk)

е

Можно видеть, что уже на второй ите­

рации

требуемая

точность достигается.

1

1

9

0,1111

Таким образом, скорость сходимости ме­

0

тода Ньютона существенно выше, чем

1

0,8889

0,1401

6,5501

0,0214

метода

половинного деления. Однако,

2

0,8675

0,0046

6,1268

0,0007

следует помнить, что при использовании

3

0,8668

0,0000

6,1124

0,0000

метода

Ньютона

требуется определение

4

0,8668

0,0000

6,1123

0,0000

производных, что усложняет вычисления.

296

Часть 1. Новые принципы работы

5.1.3. ИНТЕРПОЛЯЦИЯ И ЭКСТРАПОЛЯЦИЯ ФУНКЦИЙ

Интерполяция -

нахождение по ряду данных значений функции промежу­

точных ее значений. Такая задача часто может возникать при обработке данных, получаемых при изучении какой-либо проектной задачи, в частности, при анали­ зе маркетинговых исследований.

Интерполяцию применяют, главным образом, тогда, когда относительно функции известны только ее дискретные значения, а необходимо вычислить другие ее значения между узловыми точками (интерполяция) или за отрезком узловых точек (экстраполяция).

Постановка задачи. На от­ резке (а,Ь) заданы п+1 точек х0, Xi, x2l. . ., х„, которые называются

узлами интерполяции, и значе­ ния некоторой не заданной анали­ тически функции f(x) в этих точках:

f(x0) = уо; f(xi) = y - i ; . . . ; f(xn) = у„- На рис.5.4 эта задача графически

показана для пяти точек (п=4). Требуется построить функцию

F(x), называемую интерполи­ рующей функцией, которая при­ надлежит к известному классу

функций и принимает в узлах интерполяции те же значения, что и f(x), то есть F(xo) = Уо; F(x-i) = У1 ; • • •! F(xn) = yn- В такой постановке задача может иметь бесчисленное множество решений или совсем не иметь решений.

Однако эта задача становится однозначной, если вместо произвольной функции F(x) искать полином Рп(х) степени не выше п, удовлетворяющий усло­ виям совпадения значений Рп(х) и f(x) в узлах интерполяции, то есть Рп(хо) = уо; Pn(x-i) = yi ; . . .; Рп(х„) = уп- Доказано, что существует только один многочлен Рп(х) степени не выше п, удовлетворяющий всем перечисленным условиям. Этот многочлен называется интерполяционным многочленом. Рассмотрим некоторые, часто используемые интерполяционные многочлены.

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

Пусть функция представлена в виде таблицы. Для удобства предположим,

Хо

Х1

Х2

Хп

ЧТО Хо < Xi < Х2

< . . . < Хп .

Построим

вспомогательные многочлены

Уо

У1

У2

Уп

степени п

 

Глава 5. Анализ данных как этап принятия решений

297

 

_

 

(x-x0 Xx-x1 )...(x-xi _1 Xx-xi + 1 )...(x-xn )

Ln (x, X.) =

(х; -x0Xxi -xJ-.^Xj

-Xj.iXxs

-xi+1)...(xi - x„)

Например,

 

 

 

 

 

 

 

 

 

 

 

(x - x 0 X x

- x 2 X x -

x 3 ) ... (x -

x „ )

 

 

 

(*1 -X0 Xxt

-X2 Xxj -X3 )...(x! -X„) '

 

. /

x

 

(x - x 0 X x - X t X x - x 3 ) . . . ( x - x „ )

 

Ln (X,

X2) =

7

w

w

 

~T 7

Г ,

И Т.Д.

 

 

(х2-ХвДх2 1 Дх2 3 ;...(х2 п ]

 

Легко увидеть, что при х = хк Ф \) Ln(x, Xj) = 0, а при х = х(

Ln(x, xf) = 1, то

есть

 

 

ГО,

если

к Ф i

 

 

 

 

 

 

 

 

U ( x k ,

Xj) =

если

к = i

 

 

 

 

 

 

 

 

Теперь запишем искомый многочлен в виде

Pn(x) = 2 L „ ( x , x i ) y i = L„(x, х0)Уо+ Ln(x, xi)yi +. . . + Ц(х, хпп

Полученное выражение и есть интерполяционный многочлен Лагранжа.

Положим п = 1, то есть имеем два узла интерполяции: Хо и Xi (рис.5.5). Запишем для этого случая интерполяционный многочлен Лагранжа

Pi(x) = Ц(х, х0)уо+ Ц(х, Xi)yi =

X - X j

х - х .

х 0 - х г

"Уо + х 1 Х0

Полученный многочлен является интерполяци­ онным многочленом Лагранжа первой степени.

Рассмотрим пример. Построить интерполяционный многочлен Лагранжа для функции, имеющей в узлах х0 = 0, х^ = 1/6, х2 = 1/2 соответствующие значения Уо = 0, yi = 1/2, у2 = 1. Так как имеем три узла интерполяции, получим интерпо­ ляционный многочлен Лагранжа второй степени.

298

Часть 1. Новые принципы работы

Р2(х) = L2(x, х0)уо+ Ц(х, х^у, + L2(x, x2)y2 =

_ (х-х1)(х-х1) +

(х-х0)(х-х2)

+

(x-XpXx-Xt)

( x 0 - x I ) ( x 0 - x 2 ) ' °

( x , - x 0 ) ( x i - x 2 )

*

20)(х1-\1)'2

Подставив в последнее выражение значения Хо = 0, хч = 1/6, х2 = 1/2, а так­ же уо = 0, yi = 1/2, у2 = 1 и произведя простейшие преобразования, получим ис­ комый интерполяционный многочлен Лагранжа Рг(х) = 3,5х - Зх2.

Достоинством интерполяционного многочлена Лагранжа является то, что он может быть вычислен для любых узлов интерполяции, в том числе и не равно­ отстоящих друг от друга. В то же время, его недостатком является необходи­ мость пересчета всех коэффициентов многочлена при добавлении хотя бы од­ ного нового узла интерполяции.

Интерполяционный многочлен Ньютона

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

Пусть заданы узлы интерполяции с шагом h:

х0; Xi = хо + h; х0 = х2 + 2h; . . . ; xn = x0+ nh.

Рассмотрим многочлен степени п, записанный в виде

Pn(x) = q0+qi(x- xo) +q2(x- x0)(x- Xi) +...+ qk(x- x0)(x- х,)...(х- х м ) +

+...+ qn(x- х0)(х- Х!)...(х- xn-i)

Определим его коэффициенты q0, q-i,. . ., q„ так, чтобы в узлах интерполя­ ции совпадали значения Р„(х) и f(x). Для этого последовательно подставляем в

Рп(х) значения х в узлах интерполяции.

 

1)

х = х0

Pn(x0) = yo=qo

 

 

2)

х = х,

Pn(x1) = yi = q0 + qi(xi -x0 )

 

 

 

yi = Уо + qi(xi - х0);

qi = ( yi - y0)/(xi - х0) = Ay0/h

3)

х = х2

Рп2) = у2 = q0 + qi(x2 -x0 ) + q2(x2 -x0)(x2 - Xi)

 

 

у2

= Уо + (Ay0/h)2h + q22h*h

 

 

 

у2

- Уо - 2Ду0 = 2q2h

откуда

 

 

q2 = У 2 - Уо - 2Ау 0 _ ( у 2 - У 1 ) + (У1-Уо)-2Ду0 _ А2у0

 

 

 

2h2

2h2

2h2

где A ^ ^ A y t - A y o , Ayi = y 2 - y i

Глава 5. Анализ данных как этап принятия решений

299

Ясно, что далее будет

 

 

 

 

А3Уо

А4Уо

Ак Уо,

А"у0

 

Ч з ~ 3 ! Ь 3 ' 4 4 " 4 ! h 4 '

' ' 4 k ~ k ! h k " "

4 " ~ n ! h "

 

Подставив значения коэффициентов q в многочлен, получим

 

Рп(х) = у0

+ AZl(x- хо) + —^-(х- хо) (х- хО + . . . +

 

 

h

2!n

А к у 0

 

 

Ап у0

+ 7Т7Т(

Х -

хо)- •

(х- xk-i) + • • • + — — (х- х0). . .(х- xn-i) =

11 A^v

= У ° + S - j ^ " ( x - x o ) ( x - x , ) - ( x - x k _ , ) -

Получение интерполяционных зависимостей важно в ситуациях, когда для определения значения функции приходится производить сложные вычисления, например, решение дифференциальных уравнений или даже систем диффе­ ренциальных уравнений. В таких случаях при построении операционных мате­ матических моделей возникают проблемы, связанные с тем, что на каждом шаге итерации оптимизационного процесса необходимо решать такие системы диф­ ференциальных уравнений. Это усложняет итерационный процесс и в ряде слу­ чаев может приводить к непреодолимым трудностям. Преодоление этих трудно­ стей возможно при построении вторичных моделей (алгоритмов), которые представляют собой "замещающие" функции, надежно описывающие поведение искомой функции на исследуемом интервале по набору ее вычисленных значе­ ний. Эту задачу и могут решить интерполяционные многочлены, в частности, представленные выше.

Вместе с тем, применение описанных интерполяционных многочленов при наличии большого числа узловых точек приводит к высокой степени получаемых многочленов, что не всегда удобно при использовании их в качестве вторичных моделей. Кроме того, интерполяция на больших отрезках, то есть с относитель­ но большим количеством узловых точек, имеет дополнительные трудности. С одной стороны, при больших расстояниях между узловыми точками точность очень мала, а с другой стороны, интерполяционные многочлены высокого по­ рядка на концах отрезка значительно колеблются (осциллируют), что сущест­ венно искажает поведение функции.

В таких случаях эффективным может оказаться следующий приближенный метод построения интерполяционных функций (вторичных моделей). Рас­ сматриваемый метод - оригинальная разработка автора этой книги - позволяет провести интерполяцию с любой наперед заданной точностью. Изложим сущ­ ность и алгоритм метода.

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

300

 

 

Часть 1.

Новые принципы работы

1. Представим графически эти табличные значения (рис.5.6).

Хо

Х1

х2

х3 . . .

Хп

2.По виду поля рассеяния точек под­

бираем наиболее подходящий вид интер­

Уо

У1

У2

Уз

Уп

полирующей функции и определяем узло­

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

Следует иметь в виду, что количество этих узловых точек зависит от типа функции, выбранной в качестве интерполирующей. Так, например, если в каче­ стве такой функции выбрана степенная, то количество узловых точек, как следу­ ет из изложенного, соответствует степени многочлена, а искомые параметры ин­ терполирующей функции - неизвестные коэффициенты этого многочлена.

Приведем ряд примеров.

 

 

 

 

 

Для квадратичной параболы f(x) =

1

4»

«1

 

 

ах2 + Ьх + с число узловых точек рав­

У

 

 

но трем, а искомые параметры - ко­

 

 

 

 

 

 

 

 

 

эффициенты a, b и с, которые и опре­

/

 

Уе

«Д

деляют вид конкретной кривой.

 

У2

У4

Для интерполирующей функции,

 

выбранной в виде синусоиды f(x) =

0 Xi

 

 

>fe

*7 ' X

Asin(ax+b), количество узловых точек

Х2 Хз

Хд Хб

определяется числом свободных па­

раметров, описывающих класс сину­

 

 

Рис.5.6

 

 

соид. Здесь это амплитуда А, частота

 

 

 

 

а и фаза b - всего три. Таким обра­

 

 

 

 

 

зом, число узловых точек в этом случае равно трем.

Если выбрать функцию у = Asin(ax+b)e_(cx+d) , то количество неизвестных (свободных) параметров здесь равно пяти и, следовательно, нужно выбрать пять узлов интерполяции.

3. Приравнивая в выбранных точках значения интерполирующей функции таблично заданным значениям исходной функции у; = f(Xj), получим систему уравнений, в которой количество уравнений равно числу выбранных узлов, а не­ известными являются параметры выбранной интерполирующей функции. На­ пример, для f(x) = Asin(ax+b) (при выбранных узлах интерполяции х2, х4, х6) эта система выглядит так

у2 = Asin(ax2+b)

у4 = Asin(ax4+b)

у6 = Asin(ax6+b)

4. Решая полученную систему, находим искомые параметры для кривой, проходящей точно через все выбранные узловые точки. При этом остальные точки исходной функции не совпадают с полученной кривой, имеются различной величины отклонения (рис.5.6). Представим эти отклонения в виде таблицы, где

Хо

Х1

х

х

Хд

х

. . .

Хп

 

2

3

 

5

 

 

 

 

 

Уо - f(x0) yi-f(Xi) 0

Уз - f(x3) 0 У5 " f(X5)

Уп - f(Xn)

Соседние файлы в предмете Экономика