Методы вычислений. Петрова К.В. Центр информатизации и оценки качества образования. Модуль 2. Вычисление значений функции с заданной степенью точности. Методы одномерной оптимизации. 1. Вычисление значений функции с заданной степенью точности. 1.1. Понятие ряда Тейлора. 1.1.1. Разложение функции в ряд Тейлора. 1.1.2. Разложение основных элементарных функций в ряд Тейлора. 1.2. Применение разложения функции в ряд Тейлора. 1.2.1. Замечание о точности вычислений. 1.2.2. Вычисление числа 1.2.3. Вычисление n . a. 1.3. Практикум. 2. Методы одномерной оптимизации. 2.1. Понятие оптимизации. 2.2. Метод сканирования. 2.3. Метод локализации. 2.4. Метод золотого сечения. 2.5. Метод поиска с использованием чисел Фибоначчи. 2.6. Практикум. 1 Методы вычислений. Петрова К.В. Центр информатизации и оценки качества образования. 1. Вычисление значений функции с заданной степенью точности. 1.1. Понятие ряда Тейлора. 1.1.1. Разложение функции в ряд Тейлора. Рассмотрим произвольную функцию f(x). Предположим, что для нее в точке существуют производные всех порядков до n-го включительно. Замечание: в школьном курсе математического анализа изучается понятие производной первого порядка. Например, если f(x) = sinx, тогда f ( x) cos x . Производная функции так же является функцией, значит, от нее можно найти производную. Таким образом, получим производную второго порядка. Итак, вторая производная функции (или производная второго порядка) – это производная от ее первой производной: f ( x) f ( x) . Для рассматриваемой функции f(x) = sinx имеем f ( x) f ( x) cos x sin x . Рассуждая аналогично, получаем, что производная третьего порядка – это производная от второй производной и т.д. Так как производные высших порядков неудобно обозначать черточкам, то f ( 4) ( x) - производная четвертого порядка. ( n) ( n 1) В общем случае справедлива формула: f ( x) f ( x) , т. е. n-ая производная функции принято следующее обозначение: находится как первая производная от ее (n-1)-ой производной. Производной нулевого порядка считается сама функция f(x). Тогда для функции f(x) можно записать ряд Тейлора: f ( x0 ) f ( x0 ) f ( x0 ) f ( n ) ( x0 ) f ( x0 ) ( x x0 ) ( x x0 ) 2 ( x x0 ) 3 ... ( x x0 ) n ... (1) 1! 2! 3! n! Заметим, что здесь мы имеем бесконечную сумму. Если ограничиться несколькими первыми слагаемыми, то получим приближенную формулу Тейлора: f ( x0 ) f ( x0 ) f ( x0 ) f ( n ) ( x0 ) 2 3 f ( x) f ( x0 ) ( x x0 ) ( x x0 ) ( x x0 ) ... ( x x0 ) n , (2) 1! 2! 3! n! правая часть которой называется многочленом Тейлора функции f(x). Эта приближенная формула позволяет заменять в различных математических расчетах (аналитических и численных) произвольную функцию ее многочленом Тейлора. Из формулы Тейлора видно, что чем точка x ближе к точке x0, тем выше точность такой замены и эта точность растет с ростом степени многочлена. Это означает, в свою очередь, что чем больше производных имеет функция в некоторой окрестности точки x0, тем выше точность, с которой многочлен Тейлора приближает (заменяет) функцию в этой окрестности. 1.1.2. Разложение основных элементарных функций в ряд Тейлора. Пусть функция f(x) имеет производные всех порядков в нуле. Тогда, полагая в (1) x0 = 0, сопоставим этой функции ряд Тейлора: f (0) f (0) 2 f (0) 3 f ( n ) (0) n f (0) x x x ... x ... . (3) 1! 2! 3! n! 2 Методы вычислений. Петрова К.В. Центр информатизации и оценки качества образования. Рассмотрим функцию f ( x) e x . Запишем для нее разложение в ряд Тейлора. Для этого вычислим производные до n-го порядка включительно. f ( x) e x e x f ( x) f ( x) e x e x ........................................... f ( n ) ( x) f ( n 1) ( x) e x e x ........................................... (n) x ( n) Имеем, f ( x) e , f (0) e 0 1 при n = 0, 1, 2, …. Для функции формула (3) примет вид f ( x) e x 1 1 1 1 1 x x 2 x 3 ... x n ... . 1! 2! 3! n! Доказано, что для любого действительного числа x 1 1 1 1 e x 1 x x 2 x 3 ... x n ... . 1! 2! 3! n! Действуя аналогичным образом, получаем разложения в ряд Тейлора других элементарных функций (см. таблицу 1). Таблица 1. Ограничения на х Разложение функции в ряд Тейлора 1 1 1 1 e x 1 x x 2 x 3 ... x n ... x ; 1! 2! 3! n! x x3 x5 x7 (1) n1 x 2 n1 sin x ... ... x ; 1! 3! 5! 7! (2n 1)! cos x 1 x2 x4 x6 (1) n x 2 n ... ... 2! 4! 6! (2n)! ln( 1 x) x 1 x p x2 x3 x4 (1) n1 x n ... ... 2 3 4 n 1 1 x 2 x 4 x 6 ... (1) n x 2 n ... 1 x2 x3 x5 x7 (1) n 1 x 2 n1 arctgx x ... ... 3 5 7 2n 1 p p( p 1) 2 p( p 1)( p 2)...( p n 1) n 1 x x ... x ... 1! 2! n x ; x 1;1 x 1;1 x 1;1 x 1;1 1.2. Применение разложения функции в ряд Тейлора. 1.2.1. Замечание о точности вычислений. При некоторых ограничениях на x функция f(x) совпадает с бесконечной суммой – рядом Тейлора. На практике мы не можем производить суммирование до бесконечности. Да и чаще всего требуется найти приближенное значение функции с определенной степенью точности. Итак, если требуется вычислить значение функции с точностью , то используем разложение данной функции в ряд Тейлора. Добавление нового слагаемого к сумме продолжается до тех пор, пока его абсолютная величина не станет меньше . 3 Методы вычислений. Петрова К.В. Центр информатизации и оценки качества образования. 1.2.2. Вычисление числа . Воспользуемся разложение функции f ( x) arctgx в ряд Тейлора arctgx x x3 x5 x7 (1) n 1 x 2 n1 ... ... 3 5 7 2n 1 . Тогда 4 arctg1 . Заметим, что x = 1 является допу4 стимым значением для замены функции в этой точке на ряд Тейлора. Получаем 13 15 17 (1) n112 n1 4 (1 ... ...) или 3 5 7 2n 1 1 1 1 1 1 1 1 4 (1 ...) . 3 5 7 9 11 13 15 Вычисления с помощью этого ряда будут тем точнее, чем больше членов ряда будет задействовано. n (точность) (только верные значащие цифры) 2 2,6666… -10 3,0418… -20 3,0916… 0,1 3,1 200 3,1365… 0,01 3,14 2000 3,14109… 0,001 3,141 и тем фактом, что arctg1 Аналогичным образом можно вычислить значение числа e, Значения тригонометрических функций. 1.2.3. Вычисление Задача: вычислить Решение. 3 n a. 30 с точностью 0,001. 1 27 30 30 10 1 1 1 3 Преобразуем 30 3 3 3 3 3 3 3 1 3 3 1 3 1 . 27 27 9 9 9 9 Теперь можно применить следующее разложение функции в ряд Тейлора: 1 x p 1 p x p( p 1) x 2 ... p( p 1)( p 2)...( p n 1) x n ... , 1! 2! n 1 1 при этом x 1;1 , p . 9 3 1 1 1 1 1 1 1 1 2 1 3 3 1 3 3 3 1 3 3 2 3 ... Получаем, 30 3 1 1! 9 2! 3! 9 9 3 0.1111 0.0041 0.0002 ... 3.1072... 3.107 >0.001 <0.001 3 Ответ: 3 30 =3,107 с точностью 0,001. 4 Методы вычислений. Петрова К.В. Центр информатизации и оценки качества образования. 1.3. Практикум. 1. Вычислить производные второго и третьего порядка для следующих функций: f ( x) cos x ; f ( x) (1 x) 4 ; f ( x) ln( 1 x) . 2. Вычислить приближенное значение числа e при n = 2, 3, 10, 30. 3. Вычислить 5 , ln2 с точностью 0,001. Ответы. 1. f (x) - cos x 12(1 x) 2 1 (1 x ) 2 f (x ) cos x (1 x) 4 ln( 1 x) f (x) sin x 24(1 x) 1 (1 x ) 3 2. n e 2 2,5 3 2,6666… 10 2,71828… 5 30 2,718281828… Методы вычислений. Петрова К.В. Центр информатизации и оценки качества образования. 2. Методы одномерной оптимизации. 2.1. Понятие оптимизации. Оптимизация – это целенаправленная деятельность, заключающаяся в получении наилучших результатов при соответствующих условиях. В математике оптимизация связана с нахождением оптимума (т.е. максимума или минимума) некоторой функции. Если рассматриваемая функция является функцией одной переменной, в этом случае говорят об одномерной оптимизации. Если на значения аргументов налагаются ограничения в виде равенств или неравенств, то такие задачи называют условными задачами оптимизации или задачами с ограничениями. В противном случае имеем задачу безусловной оптимизации. Несмотря на то, что безусловная оптимизация функции одной переменной наиболее простой тип оптимизационных задач, она занимает центральное место в теории оптимизации как с теоретической, так и с практической точек зрения. Это связано с тем, что задачи однопараметрической оптимизации достаточно часто встречаются в инженерной практике и, кроме того, находят свое применение при реализации более сложных итерактивных процедур многопараметрической оптимизации. Для определенности будем считать, что решаем задачу отыскания минимума функции y = f(x) на интервале (a; b). 2.2. Метод сканирования. Интервал поиска (a; b) разбивается на несколько равных участков, каждый из которых равен шагу поиска h (рис. 1). y h O a b x Рис. 1. Метод локализации. Далее последовательно определяются значения функции f(x) во всех точках разбиения аргумента и в точках a и b и запоминается наименьшее значение. Таким образом, минимум может быть найден с точностью до h. Достоинства метода: простота, возможность нахождения глобального минимума. Недостаток метода: большой объем вычислений. Пример. Найти минимум функции f ( x) x 2 2 x с точностью ε = 0,3 на интервале (-2; 1) 6 Методы вычислений. Петрова К.В. Центр информатизации и оценки качества образования. Решение. Точность ε = 0,3 - шаг поиска. Количество частей разбиения интервала b a n 1 , где […] обозначают целую часть выражения, записанного в скобках. n = 10. n Xn f(xn) 0 1 2 3 4 5 -2 -1,7 -1,4 -1,1 -0,8 -0,5 0 -0,51 -0,84 -0,99 -0,96 -0,75 Наименьшее значение функции: -0,99. Точка минимума: -1,1. 6 -0,2 -0,36 7 0,1 0,21 8 0,4 0,96 9 0,7 1,89 10 1 3 2.3. Метод локализации. Алгоритм метода: 1. Интервал поиска минимума (a; b) разбивается на четыре равные части точками x1, x2, x3. 2. Вычисляются значения функции y = f(x) во всех точках разбиения и в точках x = a, x = b. 3. Полученные значения f(x) сравниваются между собой, и из них выбирается наименьшее. 4. Локализуется минимум, причем новый интервал поиска равен двум старым подынтервалам с наименьшим значением f(x) на их общей границе (на рис. 2 это соответствует интервалу (a, x2)). 5. Интервал, в котором локализован минимум, опять делится на четыре равных подынтервала ( на рис. 2 точками x4, x5) и снова вычисляются значения функции y = f(x) в точках деления. Они сравниваются между собой, находится наименьшее, локализуется минимум в меньшем интервале ( на рис. 2 в интервале (x4, x5)) и так далее до тех пор, пока минимум не будет локализован в интервале, размер которого соответствует заданной точности поиска. Замечание. Интервал, поиска разбивается именно на четыре, подынтервала с целью уменьшения объема вычислений: при этом каждый последующий подынтервал делится пополам, и вычислять значение функции нужно только в двух новых точках, так как её значения на концах нового интервала и в его середине известны из предыдущих расчетов. 2.4. Метод золотого сечения. При построении процесса оптимизации стараются сократить объем вычислений и время поиска. Этого достигают обычно путем сокращения количества вычислений значений функции y = f(x). Одним из наиболее эффективных методов, в которых при ограниченном количестве вычислений f(x) достигается наилучшая точность, является метод золотого сечения. Если известно, что функция f(x) имеет только один минимум на отрезке [a; b], то положение точки минимума можно уточнить, вычислив f(x) в двух внутренних точках отрезка. При этом возможны две ситуации: 1. f ( x1 ) f ( x2 ) . Минимум реализуется на отрезке [a; x2]. 7 Методы вычислений. Петрова К.В. Центр информатизации и оценки качества образования. y O a x1 x2 b x 2. f ( x1 ) f ( x2 ) . Минимум реализуется на отрезке [x1; b]. y O a x1 x2 b x В методе золотого сечения каждая из точек x1 и x2 делит исходный интервал на две части так, что отношение целого к большей части равно отношению большей части к меньшей, т.е. равно так называемому «золотому отношению». Это соответствует следующему геометрическому представлению: y1 y2 y Здесь y y y y1 1 1 z y y . Обозначим 1 z , получим . Ре 2 или 1 z z y y2 y1 y y1 y1 3 5 0.382 . Итак, длины отрезков [a, x1] и [x2, 2 b] одинаковы и составляют 0,382 от длины (a, b). По значениям f(x1) и f(x2) определяется новый интервал (a, x2) или (x2, b), в котором локализован минимум. Найденный интервал снова делится двумя точками в том же отношении, причем одна из новых точек деления совпадает с уже использованной на предыдущем шаге. Таким образом, длина интервала неопределенности на каждом шаге сжимается с коэффициентом 0,618. На первом шаге необходимы два вычисления функции, на каждом последующем – одно. Алгоритм метода золотого сечения для минимизации функции. 1. Вычисляется значение функции f(x1), где x1 = a + 0,382(b - a). 2. Вычисляется значение функции f(x2), где x2 = b - 0,382(b - a). 3. Определяется новый интервал (a, x2) или (x2, b), в котором локализован минимум. 4. Внутри полученного интервала находится новая точка (x1 в случае 1) или (x2 в случае 2), отстоящая от его конца на расстоянии, составляющем 0,382 от его длины. В этой точке рассчитывается значение f(x). Затем вычисления повторяются, начиная с пункта 3, до тех пор, пока величина интервала неопределенности станет меньше или равна ε, где ε - заданное сколь угодно малое положительное число. шив данное уравнение, получим z 8 Методы вычислений. Петрова К.В. Центр информатизации и оценки качества образования. 2.5. Метод поиска с использованием чисел Фибоначчи. Данный материал отводится на самостоятельное изучение. 2.6. Практикум. 1. Укажите метод, который не используется в одномерной оптимизации: a) метод сканирования; b) метод золотого сечения; c) метод сопряженных направлений; d) метод локализации; 2. Критерием выбора нового отрезка в задаче отыскания максимума в методе “золотого сечения” является: a) Если f(x1)< f(x2), то новый отрезок: [a; x2], если f(x 1 ) f(x 2 ), то: [x 1 ; b]. b) Если f(x 1 )< f(x 2 ), то новый отрезок: [x 1 ; b], если f(x 1 ) f(x 2 ), то: [а; x 2 ]. c) Если f(x 1 )< f(x 2 ), то новый отрезок: [x 1 ; b], если f(x 1 ) f(x 2 ), то: [а; x 1 ] d) Если f(x 1 )< f(x 2 ), то новый отрезок: [x 2 ; b], если f(x 1 ) f(x 2 ), то: [а; x 1 ]. 3. В методе “золотого сечения” x 1 и x 2 находятся по формуле: a) x 1 = а + 0,382*(b-a), x 2 = b - 0,382*(b-a). b) x 1 = b + 0,382*(b-a), x 2 = a - 0,382*(b-a). c) x 1 = а + 0,382*(b-a), x 2 = b + 0,382*(b-a). d) x 1 = а + 0,382 / (b-a), x 2 = b - 0,382 / (b-a). 4. В каком из методов одномерной оптимизации общее число вычислений необходимо выбирать заранее? a) В метод золотого сечения. b) В метод локализации. c) В метод сканирования. d) В методе Фибоначчи. 5. Используя метод “золотого сечения”, максимизировать функцию: f(x)=2*x 2 +3*x на интервале (0;2). Длина конечного интервала неопределенности не должна превосходить 0,5. a) xmax= 1,236; f(xmax) = 6,7634; b) xmax = 1,875; f(xmax) = 12,6563; c) xmax = 1,764; f(xmax) = 11,5154; d) xmax = 1,657; f(xmax) = 10,4623. 6. В методе локализации найдены значения a=0 f(a) = 0 x1 = 0,5 f(x1) = -9,16 9 Методы вычислений. Петрова К.В. Центр информатизации и оценки качества образования. X2 = 1,0 f(x2) = -11,7 X3 = 1,5 f(x2) = 11,32 b=2 f(b) = 90,0 Определить новый интервал для следующего шага. a) (0; 1) b) (-9,16; 11,32) c) (0,5; 1,5) d) (-9,16; -11,7) 7. В таблице приведены результаты первых двух шагов минимизации функции f ( x) x 2 2 x на интервале (-3; 5) методом золотого сечения. a b x1 x2 f(x1) f(x2) № шага 1 -3,000 5,000 a) b) 0,115 7,667 2 c) d) -1,112 0,056 -0,987 0,115 Вставьте недостающую информацию. Ответы. 1 c 2 b 3 a 4 d 7. a) 0,056 b) 1,944 c) -3,000 d) 1,944 10 5 b 6 b