Дата добавления: 2015-07-23 ; просмотров: 4797 ; Нарушение авторских прав
Начальный этап. Выбрать начальный интервал [a1, b1] и точность поиска l. Задать k = 1 и перейти к основному этапу.
Основной этап. Шаг 1. Вычислить среднюю точку =(ak+bk)/2 и значение производной f’( ) Перейти к шагу 2.
Выбираем начальный интервал [-10, 10]. Результаты расчетов представлены в таблице 2.10.
Расчет экстремума функции f(x) = (1-x) 2 +3(x-5) 2 +8 методом средней точки.
№ | ak | bk | f(x) | f'(x) | |bk-ak| | Критерий | |
-10.000 | 10.000 | 0.000 | 84.000 | -32.000 | 20.000 | Не достигнут | |
0.000 | 10.000 | 5.000 | 24.000 | 8.000 | 10.000 | Не достигнут | |
0.000 | 5.000 | 2.500 | 29.000 | -12.000 | 5.000 | Не достигнут | |
2.500 | 5.000 | 3.750 | 20.250 | -2.000 | 2.500 | Не достигнут | |
3.750 | 5.000 | 4.375 | 20.563 | 3.000 | 1.250 | Не достигнут | |
3.750 | 4.375 | 4.063 | 20.016 | 0.500 | 0.625 | Не достигнут | |
3.750 | 4.063 | 3.906 | 20.035 | -0.750 | 0.313 | Не достигнут | |
3.906 | 4.063 | 3.984 | 20.001 | -0.125 | 0.156 | Не достигнут | |
3.984 | 4.063 | 4.023 | 20.002 | 0.188 | 0.078 | Не достигнут | |
3.984 | 4.023 | 4.004 | 20.000 | 0.031 | 0.039 | Не достигнут | |
3.984 | 4.004 | 3.994 | 20.000 | -0.047 | 0.020 | Не достигнут | |
3.994 | 4.004 | 3.999 | 20.000 | -0.008 | 0.010 | Достигнут |
Таким образом, на двенадцатой итерации с точности 0,01 найден экстремум функции f(x) = (1-x) 2 +3(x-5) 2 +8, который находится в точке =3,999.
2.3.3. Метод кубической аппроксимации.
В методе кубической аппроксимации при построении многочлена, аппроксимирующего минимизируемую функцию, помимо значений функции используются и значения ее производных.
Предполагается, что заданы две точки x1 и x2 таким образом, что минимум функции f(x) находится внутри интервала [x1; x2], известны значения функции в этих точках f(x1)=f1, f(x2)=f2 и значения производных f’(x1)=f’1, f’(x2)=f’2. Аппроксимирующая функция задана полиномом, который имеет вид:
Несложно проверить, что H(x1)=f1, H(x2)=f2, H΄(x1)=f΄1, H΄(x2)=f΄2. Производная H΄(x) является квадратичной функцией, непрерывной на отрезке [x1; x2] и имеющей на его концах различные знаки. Поэтому, в интервале она может изменить знак лишь один раз в точке , которая является стационарной точкой многочлена H(x), а именно точкой его минимума, так как производная меняет знак с минуса на плюс. Из необходимого условия H΄(x)=0 экстремума этого многочлена получаем квадратичное уравнение
.
Его решение определяется следующим образом:
, где
, .
Если , то новый интервал будет равен , иначе . Вычисления прекращаются, когда длина конечного интервала не станет меньше заданной точности.
Алгоритм метода кубической аппроксимации.
Начальный этап. Задать начальный интервал [x1, x2] и точность поиска l. Перейти к основному этапу.
Основной этап. Шаг 1. Вычислить значения функции f(x1)=f1, f(x2)=f2 и значения производных f’(x1)=f’1, f’(x2)=f’2. Рассчитать коэффициенты , и оптимальное решение
. Перейти к шагу 2.
Шаг 2. Если |x2 – x1| 2 –16/x методом кубической аппроксимации. Выбираем начальный интервал [-5; 10] и точность поиска равную 0,1. Результаты расчета приведены в таблице 2.11.
Результаты расчета минимума функции f(x) = x 2 –16/x методом кубической аппроксимации.
№ | x1 | x2 | f(x1) | f(x2) | f'(x1) | f'(x2) | z | ω | μ | f'( ) | |x2–x1| | Критерий | |
-5.0 | 10.0 | 28.20 | 98.400 | -9.360 | 20.160 | -3.240 | 14.114 | 0.350 | 0.256 | 245.150 | 15.00 | Не достигнут | |
-5.0 | 0.26 | 28.20 | -62.498 | -9.360 | 245.150 | 287.561 | 291.523 | 0.703 | -1.307 | 6.745 | 5.256 | Не достигнут | |
-5.0 | -1.31 | 28.20 | 13.947 | -9.360 | 6.745 | 8.965 | 11.979 | 0.756 | -2.207 | -1.129 | 3.693 | Не достигнут | |
-2.2 | -1.31 | 12.12 | 13.947 | -1.129 | 6.745 | -0.476 | 2.800 | 0.256 | -1.976 | 0.143 | 0.899 | Не достигнут | |
-2.2 | -1.98 | 12.12 | 12.002 | -1.129 | 0.143 | 0.560 | 0.689 | 0.897 | -2.000 | -0.001 | 0.231 | Не достигнут | |
-2.0 | -1.98 | 12.00 | 12.002 | -0.001 | 0.143 | -0.070 | 0.071 | 0.005 | -2.000 | 0.000 | 0.024 | Достигнут |
Таким образом, на шестом шаге с точностью 0,01 найден экстремум функции =-2,000,который совпадает с экстремумом, полученным аналитически.
3. ВАРИАНТЫ ЗАДАНИЙ ДЛЯ ВЫПОЛНЕНИЯ ПРАКТИЧЕСКИХ ЗАНЯТИЙ.
Выполнение заданий предусматривает:
– для заданной функции поиск экстремума аналитически и его анализ;
– определение начального интервала неопределенности методом сканирования, построение графика функции;
– поиск минимума функции методами одномерной оптимизации, рассмотренными выше, при заданных параметрах;
– выводы об эффективности методов.
Требования к отчету:
В отчете должны быть представлены результаты выполнения указанных этапов и выводы к ним. Отчет представляется индивидуально каждым студентом.
Варианты заданий приведены в таблице 3.1
№ | Вид функции f(x) | Точность |
x 2 – 2x + 1 | 0,010 | |
x 2 + x + 5 | 0,010 | |
x 2 + 3x – 7 | 0,020 | |
x 2 + 5x | 0,010 | |
x 2 + x – 1 | 0,015 | |
2x 2 + x | 0,010 | |
3x 2 – x | 0,005 | |
5x 2 – 2x | 0,010 | |
3x 2 + 2x –1 | 0,020 | |
2x 2 – x +5 | 0,010 | |
6x 2 + 8x | 0,010 | |
27/x + 3x | 0,020 | |
x 2 + x + 10 | 0,020 | |
x 2 – x +13 | 0,015 | |
x 2 + x +8 | 0,015 | |
x 2 + 9x | 0,010 | |
x 2 – 6x | 0,010 | |
16/x + 4x | 0,020 | |
9x 2 + 5x –3 | 0,020 | |
3x 2 + 8x + 2 | 0,015 | |
3x 2 + 18x – 6 | 0,010 | |
x 2 + 15x | 0,015 | |
x 2 + 3x + 3 | 0,010 | |
x 2 – 2x – 2 | 0,010 | |
8/x + 2x | 0,010 | |
7x 2 + 4x + 1 | 0,015 | |
2x 2 – 3x – 5 | 0,010 | |
3x 2 + 8x – 12 | 0,015 | |
5x 2 + 8x – 4 | 0,010 | |
7x 2 + 10x + 1 | 0,010 |
1. Мочалов С.П. Методы оптимизации металлургических процессов: Учебное пособие / КузПИ. –Кемерово, 1989.- 81с.
2. А.В. Аттеков, С.В. Галкин, В.С. Зарубин. Методы оптимизации: Учеб. для вузов / Под ред. В.С. Зарубина, А.П. Крищенко. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. – 440с. (Сер. Математика в техническом университете; Вып.XIV).
3. Поляк Б. Т. Введение в оптимизацию. -М.: Наука, 1983.
4. Моисеев Н. Н., Иванилов Ю. П., Столярова Е. М. Методы оптимизации. -М.: Наука, 1975.
5. Банди. Методы оптимизации. -М.: Радио и связь, 1988.
6. Курицкий Б.Я. Поиск оптимальных решений средствами Ecxel 7.0. –СПб.: BHV – Санкт-Петербург, 1997.- 384с., ил.
Все методы, рассмотренные до сих пор, основаны на предположении об унимодальности исследуемой функции. Эти методы используют вычисление значений функции в некоторых точках и не требуют вычисления значений производной функции. Использование информации о производной позволит повысить эффективность решения задачи оптимизации.
Рассмотрим метод средней точки, который называется также методом бисекции или методом деления отрезка пополам.
Пусть f(x) – унимодальная, непрерывно дифференцируемая на отрезке [a, b] функция и на этом отрезке точка x* является единственной стационарной точкой. Сведем задачу нахождения минимума функции f(x) к решению нелинейного уравнения
Положим a0 = a, b0 = b.
Так как функция f ‘(x) удовлетворяет условию (1.14), то она принимает на концах отрезка [a0, b0] значения разных знаков, т.е.
f(a0)f(b0) 0, либо f ‘(x0)
Оценка (1.15) характеризует погрешность метода средней точки и указывает на скорость сходимости: метод сходится со скоростью геометрической прогрессии, знаменатель которой q = 1/2.
Если задана требуемая точность , то процесс вычислений следует закончить, когда выполнится условие f ‘(xn) , после чего полагают x* xn.
Алгоритм 1.5 (Алгоритм метода средней точки).
Шаг 1. Ввести исходные данные: a, b, .
Шаг 2. Определить x0 = .
Шаг 3. Вычислить f ‘(x0).
Шаг 4. Проверить критерий окончания вычислений. Если f ‘(x0) , , перейти к шагу 6, иначе – к шагу 5.
Шаг 5. Перейти к новому отрезку локализации [a, b]. Если f ‘(x0) > 0, то положить b = x0. Иначе положить a = x0. Перейти к шагу 2.
Шаг 6. Положить x* x0. Вычислить f'(x*).
Реализация в пакете MathCAD 14
В итоге получаем f(x*) = -3.749, x*=0.382 с точностью за 15 итераций.
Методы численного интегрирования
К вычислениям определенных интегралов сводятся многие практические задачи физики, химии, экологии, механики и других естественных наук. На практике взять интеграл аналитически не всегда удается. В этом случае используются методы численного интегрирования. В данной лабораторной работе рассматриваются методы Ньютона – Котеса, в частности методы прямоугольников, трапеций, Симпсона и метод Гаусса. Кроме того, в лабораторной работе рассматриваются способы аналитического и численного отыскания интегралов средствами MATLAB.
Вычислительные формулы для всех рассматриваемых методов приведены в приложении, теоретический материал следует изучать по материалам лекций и рекомендованной литературе. Здесь же будут рассмотрены практические аспекты реализации методов численного интегрирования в MATLAB.
Вам следует внимательно изучить и выполнить приведенные здесь примеры, может быть для функций из ваших вариантов задач.
1. Аналитическое интегрирование средствами MATLAB.
В лабораторной работе, основной задачей которой является исследование методов численного интегрирования, в некоторых случаях для отыскания погрешности результатов требуется точные значения интегралов. Т.е. эти величины необходимо определить аналитически.
Для вычисления определенных и неопределенных интегралов в MATLAB спользуется функция int .
Синтаксис:
Вызов | Описание |
---|---|
int(S) |
Вычисляется неопределенный интеграл от функции S по ее символьной переменной, определенной в syms .
Вычисляется неопределенный интеграл от функции S по ее символьной переменной v , определенной в syms .
Вычисляется определенный интеграл от a до b функции S по ее символьной переменной, определенной в syms . A и b могут быть переменными символьного или вещественного типа.
Пример использования функции int . В данном примере подинтегральная функция задается явным образом.
График подинтегральной функции:
Обратите внимание на форматирование графика прямо в тексте программы.
В следующем примере подинтегральная функция и переменная интегрирования задаются в символьной форме.
Обратите внимание, что в данном примере для построения графика используется m – файл f.m:
Это связано с тем, что аргументом функции fplot не может быть символьная функция.
График интегрируемой функции:
2. Аналитическое дифференцирование средствами MATLAB.
В лабораторной работе, основной задачей которой является исследование методов численного интегрирования, для отыскания теоретической погрешности результатов требуется знание производной от интегрируемой функции до четвертого порядка включительно.
Для вычисления производных аналитически в MATLAB спользуется функция diff .
Синтаксис:
Вызов | Описание |
---|---|
diff(S) | Вычисляется аналитическое выражение для производной от функции S, заданной символьно. |
diff(S,n) | Вычисляется аналитическое выражение для производной от функции S порядка n. |
Пример использования функции diff при вычислении максимума второй производной на отрезке [a, b]
3. Теоретическая оценка погрешности численного интегрирования
Рассмотрим примеры использования теоретической оценки погрешности интегрирования на примере двух задач.
Пример. Определить теоретическую погрешность численного интегрирования методом трапеций в случае одного элементарного отрезка интегрирования..
Теоретическая погрешность для метода трапеций составляет
В случае элементарного отрезка иртегрирования, если заданы пределы интегрирования и подинтегральная функция, задачу можно решить например следующим образом:
В результате получим
M2 =
16.4000
Погрешность
R =
0.1164
Т.о. теоретическая оценка абсолютной погрешности погрешности составляет 0.1 . В задаче 1 лабораторной работы вам предлагается убедиться, что данная теоретическая оценка действительно справедлива.
4. Численное интегрирование
Вычислительные формулы приведены в приложении . Их анализ показывает, что формулы для одного элементарного отрезка интегрирования не требуют каких либо новых знаний. Необходимо только приготовить m-функцию , в которой следует определить интегрируемую функцию. И конечно для оценки погрешности интегрирования следует знать точное значение интеграла (см. выше).
Случай формул для составного отрезка интегрирования более сложный. Здесь требуется вычислять значения сумм. Например в методе Симпсона
В языке программировани MATLAB, как и в других языках программирования, существует оператор цикла for , возможностей которого достаточно для решения поставленных задач.
Здесь для задания интегрируемой функции необходимо создать m – файл f.m
5. Численное интегрирование средствами MATLAB
В MATLAB реализованы множество современных методов численного интегрирования. Мы рассмотрим простейшие из них.
А. Метод трапеций. Метод трапеции реализован в MATLAB несколькими функциями:
Наиболее интересна последняя из них. Данная функция вычисляет интеграл от функции у(х) по х методом трапеций . Аргумент и функция задаются в виде векторов или х — в виде вектора, а у — в виде матрицы. Если у(х) — матрица, то функция возвращает вектор значений интеграла для каждого столбца матрицы.
Пример. Пусть подынтегральная функция имеет вид
у(х) = х*е x + ln(x) + 1
Необходимо вычислить определенный интеграл в диапазоне от 1 до 10 с шагом 0.5.
Решение:
Б. Метод Симпсона. Метод Симпсона реализован в MATLAB также несколькими функциями. Мы рассмотрим простейшую из них:
quad(‘fun’, a, b)
quad(‘fun’, a, b, tol)
- ‘fun’ — подынтегральная функция, взятая в одинарные кавычки;
- а, b — пределы интегрирования;
- tol — относительная погрешность, задаваемая пользователем; по умолчанию tol=10 -3 .
Пример. Вычислить интеграл от функции x+e x на отрезке [1, 2] с точностью 10 -5 .
quad(‘x+exp(x)’, 1, 2, 1e-5)
6. Правило Рунге оценки погрешности интегрирования
В формулах для оценки погрешности квадратурных формул R используются значения производных подинтегральной функции, что требует дополнительного анализа и вычислений. В связи с этим получило распространение практическое правило Рунге оценки погрешности.
- I – точное значение интеграла,
- I(n) – значение интеграла вычисленное при n узлах интегрирования h = (b-a)/n,
- I(2n) – значение интеграла вычисленное при 2*n узлах интегрирования, h = (b-a)/2n.
Необходимо определить, с какой точностью вычислен итеграл I(2n), т.е. найти абсолютную погрешность
Для непосредственно определения данной погрешности необходимо найти максимум модуля соответствующей производжной от интегрируемой функции на отрезке [a, b]. Часто это достаточно трудоемкий или вообще невозможный процесс. Напрмер если интегрируемая функция задана таблично. В таких случаях оценку погрешности величины I(2n) можно провести следующим образом:
Здесь m = 3 для методов средних прямоугольников и трапеций, m = 15 для метода Симпсона.
Примечание. Если решается задача численного вычисления интеграла с заданной точностью, процесс удвоения числа узлов интегрирования продолжается до тех пор, пока величена не станет меньше заданной погрешности.