С Новым годом! Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/89: Рейтинг темы: голосов - 89, средняя оценка - 4.62
1 / 1 / 0
Регистрация: 13.04.2013
Сообщений: 7
1

Метод наискорейшего спуска

16.12.2014, 15:48. Показов 18535. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Метод наискорейшего спуска для нахождения минимума функции:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
clc
clear all
%---- Задаём функцию
y=@(x)211*x(1).^2-420*x(1).*x(2)+211*x(2).^2-192*x(1)+50*x(2)-25;
%------
dyx1=@(x)422*x(1) - 420*x(2) - 192;
dyx2=@(x)422*x(2) - 420*x(1) + 50;
%------
E=0.0001;
% Метод наискорейшего спуска
a=1;
x=[0,0];
k=0;
while (sqrt(dyx1(x)^2+dyx2(x)^2)>E)
    f=@(a)y(x-a*[dyx1(x),dyx2(x)]);
    local_min=dihotomy(f,0,3,E);
    a=local_min(1);
    x=x-a*[dyx1(x),dyx2(x)];
    k=k+1;
end
 
%График
[x1,x2] = meshgrid(-200:1:200);
z=211*x1.^2+-420*x1.*x2+211*x2.^2-192*x1+50*x2-25;
surf(x1,x2,z)
shading interp;
text(x(1), x(2), 'Минимум', 'color', 'r'); 
%Ответ
k
x
y(x)
Длина шага а вычисляется методом дихотомии:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function [ ret ] = dihotomy(cb,a,b,eps)
    d2=eps/10;
    n=0;
    x_min=a;
    while (b-a)>eps
        x_min = (b+a)/2;
        fp=cb(x_min+d2);
        fm=cb(x_min-d2);
        if fp<fm
            a=x_min-d2;
        else
            b=x_min+d2;
        end
        n=n+1;
    end
    ret=[x_min,n];
end
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.12.2014, 15:48
Ответы с готовыми решениями:

Метод наискорейшего спуска или градиентный метод
Помогите пожалуйста с заданием. Дали отчет и там нужно сделать 4 задания, 3 сделал осталось...

Метод покоординатного спуска
Помогите кто-нибудь реализовать метод покоординатного спуска на MATLAB вот некоторые материалы...

Метод покоординатного спуска
Друзья, имеется матлабовский файл, в котором реализован прогноз на базе нечетких лингвистических...

Метод градиентного спуска
Помогите с заданием. Дали курсовую. там 6 заданий, 5 сделал ,осталось одно вот такое ===&gt;...

1
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 18
31.05.2018, 14:46 2
Matlab M
1
a=local_min(1);
Товарищи формучане, почему здесь стоит 1?


Есть еще вопрос по графику. В моем случае 3 переменные участвуют в уравнении и я не до конца понимаю, что нужно, чтобы этот график выводился.
Matlab M
1
2
3
4
5
6
7
while (sqrt(dyx1(x)^2+dyx2(x)^2+dyx3(x))>E)
    f=@(a)y(x-a*[dyx1(x),dyx2(x),dyx3(x)]);
    local_min=dihotomy(f,0,3,E);
    a=local_min(1);
    x=x-a*[dyx1(x),dyx2(x),dyx3(x)];
    k=k+1;
end
Исходное уравнение выглядит следующим образом: y=@(x)(x(1)-Kx)^2+(x(2)-Ky)^2+(x(3)-Kz)^2-Lk^2;
0
31.05.2018, 14:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2018, 14:46
Помогаю со студенческими работами здесь

Градиентный метод найскорейшего спуска.
Градиентный метод найскорейшего спуска. Функция и данные теже: clear all; clc; % Значения...

Метод спуска для решения нелинейного уравнения
Пожалуйста приведите пример решения нелинейного уравнения 2x4-8x3+8x2-1 методом спуска(не...

Метод наискорейшего спуска
Здравствуйте! Помогите переделать код из Maple в Mathematica (ни первое, ни второе не знаю):...

Метод наискорейшего спуска
Помогите пожалуйста реализовать метод f(x1,x2):=3x1^2-6x1x2-x2^3-12x1+12x2


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru