Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 06.11.2014
Сообщений: 18

Метод Розенброка

27.11.2014, 16:33. Показов 971. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Помогите пожалуйста дописать код. т.к. не совсем понимаю конечный алгоритм.

Visual Basic
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Public Class Rosenbrok
    Implements iOpt2D
 
    'макс. число неудачных серий 
    Const N As Integer = 5
    'направления
    Private d() As Point
    'величина шага вдоль каждого направления
    Private delta As Point
 
    Public Function optimize(x0 As Point, f As FuncND, params As iOptParameters, Optional ByRef n_iter As Integer = 0) As Point Implements iOpt2D.optimize
        'конвертация параметров метода в нужный формат
        Dim p As RbOptParameters = CType(params, RbOptParameters)
        'инициализация массивов
        ReDim d(x0.UBound)
        delta = New Point(x0)
        Dim y1, y2, yi, yi1, t, v As Point
        Dim ai, b1 As Point
        Dim f1, f2 As Double
        Dim flag As Boolean = False
        'число неудачных серий
        Dim l As Integer = 0
        Dim r As Point
        Dim di As Point
        Dim lamda As Point
        Dim dt As Point
        'заполнение начальных направлений (координатные направления)
        For i = 0 To x0.UBound
            di = New Point(x0)
            di(i) = 1
            d(i) = di
            'начальный шаг по всем направлениям = 1
            delta(i) = 1
        Next
        y1 = x0.Clone
        For i = 0 To x0.UBound
            'шаг 2
            yi = y1
            yi1 = yi + d(i) * delta(i)
            f1 = f(yi)
            f2 = f(yi1)
            If f2 < f1 Then
                delta(i) *= alfa
                yi = yi1
                f1 = f(yi)
            End If
            If f2 >= f1 Then
                delta(i) *= beta
            End If
            'шаг 3
            'If i < x0.UBound   то дальше попадем в шаг 2
            If i = x0.UBound Then
                If f2 < f1 Then y1 = yi1 : i = 0
                If f2 = f1 Then
                    f1 = f(y1)
                    'if f2 < f1   то дальше попадем в шаг 4
                    If f2 = f1 Then l += 1
                    If l < N Then
                        'шаг 4
                        y2 = yi1
                        t = y2 - y1
                        If t.RVLength <= eps Then Return y2
                        If t.RVLength > eps Then
                   
                       'вот тут надо дописать 4 шаг
                            
                        End If
                    End If
                End If
            End If
            If l = N Then
                'достигнуто макс. кол-во неудачных серий
                For j = 0 To x0.UBound
                    If Math.Abs(delta(i)) <= eps Then flag = True
                    If Math.Abs(delta(i)) >= eps Then flag = False
                Next j
                If flag = True Then Return y1
                If flag = False Then y1 = yi1 : i = 0
            End If
        Next i
    End Function
End Class

Вот сам алгоритм.
Миниатюры
Метод Розенброка  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.11.2014, 16:33
Ответы с готовыми решениями:

Одностадийный метод розенброка
Нашла библиотеку для 4х стадийного метода розкнюрока, но совершенно ничего там не могу понять. Написала свою систему, ее якобиан....

Метод Розенброка (реализация)
Люди добрые можете пожалуйста помочь, нужно реализовать Метод Розенброка (метод вращающихся координат) функции 2ух переменных в Matlab, 2...

Как реализовать метод Розенброка
Никак не получается написать программу для нахождения минимума функции двух переменных, методом Розенброка. Помогите пожалуйста кто...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2014, 16:33
Помогаю со студенческими работами здесь

Метод Розенброка, зацикливается скрипт
function lekciyarozenbrok z1=0; %приращение по первому вектору z2=0; %приращение по второму вектору eps=0.01; h1=1; d1=; d2=; ...

Опитимизация решений. Метод Розенброка
Здравствуйте! Пытаюсь реализовать алгоритм Розенброка. Вот м файл(но он работает некорректно): % for test xa = -3; xb ...

Метод Розенброка на C++ перенесение на форму
Здравствуйте, пишу курсовую работу на С++, уже готова реализация в консоли, но прикалупались, что требуется на форму все красиво сделать и...

Оптимизация методом Розенброка
Помогите пожалуйста написать программу по методам оптимизации найти минимум функции: f(x)=a*x1+b*x2+e^(c*x1+d*x2) Методом Розенброка.

Найти ошибку в программе для метода Розенброка
const n=2; a=2; b=-0.5; eps=0.01; label 0,1,2,3,4,5,6,7,8,9,10; var x,y,t1,t2,h,norm :real; i,j,k :integer; ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru