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

Метод Нелдера - Мида

09.12.2016, 13:07. Показов 1155. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, обращаюсь с такой же просьбой как и khanhmtak45. Задание такое же, у меня получился вот такой код для первой функции, но Matlab выдает ошибки, помогите пожалуйста разобраться! И еще такой вопрос, Octave от Matlab сильно отличается?
Кликните здесь для просмотра всего текста
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
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
clc,clear;
>>x=u(1);
>>y=u(2);
>>x^2=@(u) u(1).^2;
>>y^2=u(2).^2;
>> fun(x,y) = (4 + 12 * u(1)- @(u) u(1).^2 + 30 * u(2) - 3 * u(2).^2 + u(1).*u(2));
>> V = [1 2; 1 -3; -2 1];
>> [V0,y0,dV,dy]=nelder(fun,V,10,500,0.01,1)
function[V0,y0,dV,dy]=nelder(F,V,min1,max1,epsilon,show)
%Вход   -   F   -   функция, вводимая как строка ’F’
%       -   V   -   матрица размера 3 х п, содержащая исходный симплекс
%       - mini & maxi - минимальное и максимальное количество итераций
%       - epsilon - допустимое отклонение
%       - show == 1 - показывает число итераций (Р и Q)
%Выход  -   V0  -   вершина для минимума
%       -   уО  -   значение функции F(V0)
%      -    dV  -   размер окончательного симплекса
%      -    dy  -   грань ошибки для минимума
%      -    Р   -   матрица, содержащая итерации вершин
%      -    Q   -   массив, содержащий итерации для F(P)
if nargin==5,
    show=0;
end
[mm n]=size(V);
% Последовательность вершин
for j=1:n+1
    Z=V(j,1:n);
    Y(j)=feval(F,Z);
end
[mm lo]=min(Y);
[mm hi]=max(Y);
li=hi;
ho=lo;
for j=1:n+1
    if (j~=lo&j~=hi&Y(j)<=Y(li))
        li=j;
    end
    if (j~=hi&j~=lo&Y(j)>=Y(ho))
        ho=j;
    end
end
cnt=0;
% Начало алгоритма Нелдера-Мида
while(Y(hi)>Y(lo)+epsilon&cnt<max1)| cnt<min1
    S=zeros(1,n);
    for j=1:n+1
        S=S+V(j,1:n);
    end
    M=(S-V(hi,1:n))/n;
    R=2*M-V(hi,1:n);
    yR=feval(F,R);
    if(yR<Y(ho))
        if (Y(li)<yR)
            V(hi,1:n)=R;
            Y(hi)=yR;
        else
            E=2*R-M;
            yE=feval(F,E);
            if(yE<Y(li))
                V (hi,1:n)=E;
                Y(hi)=yE;
            else
                V(hi,1:n)=R;
                Y(hi)=yR;
            end
        end
    else
        if(yR<Y(hi))
            V(hi,1:n)=R;
            Y(hi)=yR;
        end
        C=(V(hi,1:n)+M)/2;
        yC=feval(F,C);
        C2=(M+R)/2;
        yC2=feval(F,C2);
        if(yC2<yC)
            C=C2;
            yC=yC2;
        end
        if(yC<Y(hi))
            V(hi,1:n)=C;
            Y(hi)=yC;
        else
            for j=1:n+1
                if (j~=lo)
                    V(j,1:n)=(V(j,1:n)+V(lo,1:n))/2;
                    Z=V(j,1:n);
                    Y(j)=feval(F,Z);
                end
            end
        end
    end
    [mm lo]=min(Y);
    [mm hi]=max(Y);
    li=hi;
    ho=lo;
    for j=1:n+1
        if (j~=lo&j~=hi&Y(j)<=Y(li))
            li=j;
        end
        if (j~=hi&j~=lo&Y(j)>=Y(ho))
            ho=j;
        end
    end
    cnt=cnt+1;
    P(cnt,:)=V(lo,:);
    Q(cnt)=Y(lo);
end
%Конец алгоритма Нелдера-Мида
%Определение размера симплекса
snorm=0;
for j=1:n+1
    s=norm(V(j)-V(lo));
    if(s>=snorm)
        snorm=s;
    end
end
Q=Q';
V0=V(lo,1:n);
y0=Y(lo);
dV=snorm;
dy=abs(Y(hi)-Y(lo));
if show==1
    disp(P);
    disp(Q);
end
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.12.2016, 13:07
Ответы с готовыми решениями:

Метод Нелдера-Мида
нашел код в книге, должна быть рабочая. Как ее запустить? в матлабе вообще не разбираюсь (метод...

Метод Нелдера — Мида
Доброго времени суток. У меня реализован алгоритм Нелдера — Мида для многомерной оптимизации.В...

Метод Нелдера Мида на C#
Просто даже не пойму с чего начать. Есть код на С но как его портировать мне не совсем понятно....

Метод Нелдера - Мида
Привет всем! Я пишу программу по методу Нелдера - Мида. Написал но вовремя компиляци ругается на...

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

Метод нелдера-мида
Помогите пожалуйста написать программу. На delphi 7. Нахождение минимума функции методом...

Метод Нелдера-Мида
Очень нужна программка реализованная методом Нелдера-Мида, заранее спасибки

Метод Нелдера-Мида на Mathcad
Стало интересно, и решила реализовать метод Нелдера-Мида из &quot;Численные методы для физиков....

Метод Нелдера-Мида(деформируемого многогранника)
Здравствуйте, прошу помочь, никак не могу понять как запрограммировать метод деформируемого...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Проектирование и моделирование
hw_wired 28.01.2025
Введение в моделирование Моделирование представляет собой один из фундаментальных методов научного познания, который позволяет изучать объекты и явления через создание их упрощенных аналогов. В. . .
Алгоритмы и исполнители
hw_wired 28.01.2025
Введение в алгоритмы В современном мире информационных технологий алгоритмы играют основополагающую роль в решении различных задач и автоматизации процессов. Алгоритм представляет собой точную. . .
Хранение информации
hw_wired 28.01.2025
Введение: Роль систем хранения информации в современном мире В современную эпоху цифровых технологий эффективное хранение информации становится одним из ключевых факторов успешного развития любой. . .
Обработка числовой информации
hw_wired 28.01.2025
Введение в обработку числовой информации В современном мире обработка числовой информации стала неотъемлемой частью как профессиональной деятельности, так и повседневной жизни. Электронные таблицы. . .
Мультимедиа
hw_wired 28.01.2025
Введение в мультимедийные технологии В современном мире мультимедийные технологии стали неотъемлемой частью нашей жизни, проникнув во все сферы человеческой деятельности. Термин "мультимедиа". . .
Обработка текстовой информации
hw_wired 28.01.2025
Введение в обработку текстовой информации В современном мире обработка текстовой информации играет фундаментальную роль в различных сферах человеческой деятельности. Текстовые редакторы стали. . .
Обработка графической информации
hw_wired 28.01.2025
Введение в компьютерную графику Компьютерная графика стала неотъемлемой частью современного цифрового мира, пройдя впечатляющий путь развития от простейших черно-белых изображений до сложных. . .
Python в Алгоритмике: Решение задач
hw_wired 28.01.2025
Введение в Python и Алгоритмику В современном мире программирование стало неотъемлемой частью образования и профессионального развития. Python зарекомендовал себя как один из самых популярных и. . .
Компьютер как универсальное устройство для работы с информацией
hw_wired 28.01.2025
Введение в устройство компьютера Компьютер представляет собой универсальное электронное устройство, предназначенное для автоматической обработки информации. В современном мире компьютер стал. . .
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
Информационное моделирование
hw_wired 28.01.2025
Введение в информационное моделирование В современном мире информационное моделирование стало неотъемлемой частью научной, образовательной и профессиональной деятельности. Это мощный инструмент. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru