КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Последовательные приближения корней
Останавливаясь на приближении x (3), будем иметь: x = 0.7852; y = 0.4966; z =0.3699.
4.3. Решение нелинейных систем методами спуска Общий недостаток всех рассмотренных выше методов решения систем нелинейных уравнений состоит в локальном характере сходимости, затрудняющем их применение в случаях (достаточно типичных), когда существуют проблемы с выбором начального приближения, обеспечивающего сходимость итерационной вычислительной процедуры. В этих случаях можно использовать численные методы оптимизации - раздела вычислительной математики, выделяемого в самостоятельную дисциплину. Для использования наглядной геометрической интерпретации приводимых ниже рассуждений и их результатов ограничимся, как и в предыдущем пункте, рассмотрением системы, состоящей из двух уравнений с двумя неизвестными
Из функций
Так как эта функция неотрицательная, то найдется точка (вообще говоря, не единственная)
Следовательно, если тем или иным способом удается получить точку
Последовательность точек
где Таким образом, при построении численного метода вида (4.18) минимизации функции При выборе направления спуска естественным является выбор такого направления, в котором минимизируемая функция убывает наиболее быстро.
Как известно из математического анализа функций нескольких переменных, направление наибольшего возрастания функции в данной точке показывает ее градиент в этой точке. Поэтому примем за направление спуска вектор
- антиградиент функции
Оптимальный шаг в направлении антиградиента - это такой шаг, при котором значение
Такой выбор шагового множителя, называемый исчерпывающим спуском, вместе с формулой (4.19) определяет метод наискорейшего спуска. Геометрическая интерпретация этого метода хорошо видна из рис. 4.1, 4.2. Характерны девяностоградусные изломы траектории наискорейшего спуска, что объясняется исчерпываемостью спуска и свойством градиента (а значит, и антиградиента) быть перпендикулярным к линии уровня в соответствующей точке. Наиболее типичной является ситуация, когда найти точно (аналитическими методами) оптимальное значение Несмотря на то, что задача нахождения минимума функции одной переменной Зачастую успешной является такая стратегия градиентного метода, при которой шаговый множитель Главное достоинство градиентных методов решения нелинейных систем - глобальная сходимость. Нетрудно доказать, что процесс градиентного спуска приведет к какой-либо точке минимума функции из любой начальной точки. При определенных условиях найденная точка минимума будет искомым решением исходной нелинейной системы. Главный недостаток - медленная сходимость. Доказано, что сходимость этих методов - лишь линейная[1], причем, если для многих методов, таких, как метод Ньютона, характерно ускорение сходимости при приближении к решению, то здесь имеет место скорее обратное. Поэтому есть резон в построении гибридных алгоритмов, которые начинали бы поиск искомой точки - решения данной нелинейной системы - глобально сходящимся градиентным методом, а затем производили уточнение каким-то быстросходящимся методом, например, методом Ньютона (разумеется, если данные функции обладают нужными свойствами). Разработан ряд методов решения экстремальных задач, которые соединяют в себе низкую требовательность к выбору начальной точки и высокую скорость сходимости. К таким методам, называемым квазиньюто-новскими, можно отнести, например, метод переменной метрики (Дэвидона-Флетчера-Пауэлла), симметричный и положительно определенный методы секущих (на основе формулы пересчета Бройдена). При наличии негладких функций в решаемой задаче следует отказаться от использования производных или их аппроксимаций и прибегнуть к так называемым методам прямого поиска {циклического покоординатного спуска. Хука и Дживса, Роленброка и т.п.). Описание упомянутых и многих других методов такого типа можно найти в учебной и в специальной литературе, посвященной решению экстремальных задач (см., например. [17-19]). Замечание 1. Для разных семейств численных методов минимизации могут быть рекомендованы свои критерии останова итерационного процесса. Например, учитывая, что в точке минимума дифференцируемой функции должно выполняться необходимое условие экстремума, на конец счета градиентным методом можно выходить, когда достаточно малой становится норма градиента. Если принять во внимание, что минимизация применяется к решению нелинейной системы, то целесообразнее отслеживать близость к нулю минимизируемой неотрицательной функции, т.е. судить о точности получаемого приближения по квадрату его евклидовой метрике. Замечание 2. Для решения n -мерной системы (4.1) следует свести задачу к решению экстремальной задачи:
Рассмотрим далее примеры реализации некоторых алгоритмов поиска экстремумов функций, зависящих от нескольких переменных, в пакете MATLAB. Пример 4.1. Алгоритм поиска экстремума с шагом, не зависящим от свойств минимизируемой функции. Простейший вариант метода наискорейшего спуска рассмотрим на примере поиска минимума квадратической функции 1. Создание файла F_L4.m, с>держащего описание функции, возвращающей значения функции f (x, y) в узлах координатной сетки
% листинг файла F_L4.m function z=F_L4(x,y,mu) N=length(x); z=zeros(N); for i=1:N for j=1:N z(i,j)=x(i).^2+mu*y(j).^2; end; end; 2. Построение графиков исследуемой функции при различных значениях параметра m N=23; Xmin=-5;Xmax=5; Ymin=-5;Ymax=5; i=1:N;j=1:N; x(i)=Xmin+i*(Xmax-Xmin)/N; y(j)=Ymin+j*(Ymax-Ymin)/N; M1=F_L4(x,y,0.5);M2=F_L4(x,y,1);M3=F_L4(x,y,1.5); [X Y]=meshgrid(x,y); surfc(X,Y,M1); colormap gray surfc(X,Y,M2); colorap gray surfc(X,Y,M3); colormap gray
Рис. 4.3. Поверхность и карта линий уровня функции
Рис. 4.4. Поверхность и карта линий уровня функции
Рис. 4.5. Поверхность и карта линий уровня функции Из рис. 4.3-4.5 видно, что при 3. Создание файла Dx_F_L4.m, содержащего описание функции, возвращающей значения частной производной, по переменной x.
% листинг файла Dx_F_L4.m function z=Dx_F_L4(x,y,mu) N=length(x); z=zeros(N); i=1:N; j=1:N; for i=1:N for j=1:N z(i,j)=2*x(i); end; end;
4. Создание файла Dy_F_L4.m, содержащего описание функции, возвращающей значения частной производной, по переменной y.
% листинг файла Dy_F_L4.m function z=Dy_F_L4(x,y,mu) N=length(x); z=zeros(N); i=1:N; j=1:N; for i=1:N for j=1:N z(i,j)=2*mu*x(i); end; end;
5. Создание файла L_Grad.m, содержащего описание функции, возвращающей длину градиента функции f (x, y, m)
% листинг файла L_Grad.m function z=L_Grad(x,y,mu) N=length(x); z=zeros(N); for i=1:N for j=1:N z(i,j)=Dx_F_L4(x(i),y(j),mu).^2+Dy_F_L4(x(i),y(j),mu).^2; z(i,j)=z(i,j).^0.5; end; end; 6. Создание файла S_x.m, содержащего описание функции, возвращающей значение проекции на ось oX нормированного единичного вектора, сонаправленного с вектором, направление которого противоположно направлению вектора градиента
% листинг файла S_x.m function z=S_x(x,y,mu); N=length(x); z=zeros(N); i=1:N; j=1:N; for i=1:N for j=1:N z(i,j)=-Dx_F_L4(x(i),y(j),mu)./L_Grad(x(i),y(j),mu); end; end; 7. Создание файла S_y.m, содержащего описание функции, возвращающей значение проекции на ось oY нормированного единичного вектора, сонаправленного с вектором, направление которого противоположно направлению вектора градиента
% листинг файла S_y.m function z=S_y(x,y,mu); N=length(x); z=zeros(N); for i=1:N for j=1:N z(i,j)=-Dy_F_L4(x(i),y(j),mu)./L_Grad(x(i),y(j),mu); end; end;
8. Создание файла Lambda.m, содержащего описание функции, возвращающей значение шага % листинг файла Lambda.m function z=Lambda(x,y,nu,alpha,beta,gamma,lambda0); z=alpha*lambda0/(beta+gamma*nu);
9. Создание файла MG.m, содержащего описание функции, возвращающей значения переменных x,y и соответствующее значение функции f (x, y, m) на каждом шаге итерационного процесса
% листинг файла MG.m function [X,Y,ff]=MG(x0,y0,mu,nu,alpha,beta,gamma,lambda0) X(1)=x0; Y(1)=y0; ff(1)=F_L4(x0,y0,mu); for i=2:nu X(i)=X(i-1)+Lambda(X(i-1),Y(i-1),nu,alpha,beta,gamma,… lambda0)*s_x(X(i-1),Y(i-1),mu); Y(i)=Y(i-1)+Lambda(X(i-1),Y(i-1),nu,alpha,beta,gamma,… ambda0)*s_y(X(i-1),Y(i-1),mu); ff(i)=F_L4(X(i),Y(i),mu); end; 10. Нахождение минимума функции f (x, y, m) и визуализация итерационного процесса Vmax=20; % максимальное число шагов итерационного процесса x0=2; y0=-1; % начальное приближение lambda0=0.3; % начальное значение шага к экстремуму beta=1; alpha=1; gamma=1; % параметры, используемые для % определения шага mu=1;nu=20; [X,Y,ff]=MG(x0,y0,mu,nu,alpha,beta,gamma,lambda0); plot(X);
Дата добавления: 2014-01-06; Просмотров: 279; Нарушение авторских прав?; Мы поможем в написании вашей работы! |