Matlab метод средней точки

Дата добавления: 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, (x1)=1, (x2)=2. Производная (x) является квадратичной функцией, непрерывной на отрезке [x1; x2] и имеющей на его концах различные знаки. Поэтому, в интервале она может изменить знак лишь один раз в точке , которая является стационарной точкой многочлена H(x), а именно точкой его минимума, так как производная меняет знак с минуса на плюс. Из необходимого условия (x)=0 экстремума этого многочлена получаем квадратичное уравнение

.

Его решение определяется следующим образом:

, где

, .

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

Алгоритм метода кубической аппроксимации.

Начальный этап. Задать начальный интервал [x1, x2] и точность поиска l. Перейти к основному этапу.

Основной этап. Шаг 1. Вычислить значения функции f(x1)=f1, f(x2)=f2 и значения производных f’(x1)=f’1, f’(x2)=f’2. Рассчитать коэффициенты , и оптимальное решение
. Перейти к шагу 2.

Шаг 2. Если |x2x1| 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'( ) |x2x1| Критерий
-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 Достигнут
Читайте также:  Resume by rtc alarm что это

Таким образом, на шестом шаге с точностью 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 .

int(S,v)

Вычисляется неопределенный интеграл от функции S по ее символьной переменной v , определенной в syms .

int(S,a,b)

Вычисляется определенный интеграл от a до b функции S по ее символьной переменной, определенной в syms . A и b могут быть переменными символьного или вещественного типа.

int(S,v,a,b) Вычисляется определенный интеграл от a до b функции S по ее символьной переменной v , определенной в syms . A и b могут быть переменными символьного или вещественного типа.

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

График подинтегральной функции:

Обратите внимание на форматирование графика прямо в тексте программы.

В следующем примере подинтегральная функция и переменная интегрирования задаются в символьной форме.

Обратите внимание, что в данном примере для построения графика используется m – файл f.m:

Это связано с тем, что аргументом функции fplot не может быть символьная функция.

График интегрируемой функции:

2. Аналитическое дифференцирование средствами MATLAB.

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

Для вычисления производных аналитически в MATLAB спользуется функция diff .

Синтаксис:

Вызов Описание
diff(S) Вычисляется аналитическое выражение для производной от функции S, заданной символьно.
diff(S,n) Вычисляется аналитическое выражение для производной от функции S порядка n.

Пример использования функции diff при вычислении максимума второй производной на отрезке [a, b]

3. Теоретическая оценка погрешности численного интегрирования

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

Пример. Определить теоретическую погрешность численного интегрирования методом трапеций в случае одного элементарного отрезка интегрирования..

Теоретическая погрешность для метода трапеций составляет

Читайте также:  Как построить эмпирическую функцию распределения в excel

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

В результате получим

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 для метода Симпсона.

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

Оцените статью
ПК Знаток
Добавить комментарий

Adblock
detector