Zaloguj się
Blog na Matlab.pl
Forum polskich użytkowników
 
UŻYTKOWNICY GRUPY PROFIL Zaloguj się, by sprawdzić wiadomości FAQ
 



Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Obliczenia za pomocą punktu KKT/Mnożnik Lagrange'a
Forum MATLAB Strona Główna-> Matematyka, statystyka i prawdopodobieństwo
Post Wysłany: 19 Styczenia 2017, Czw 6:54 pm Temat postu: Obliczenia za pomocą punktu KKT/Mnożnik Lagrange'a Odpowiedz z cytatem
 
AUTOR:
EasyMan



Dołączył: 19 Sty 2017
Posty: 2


Ogląda profil użytkownika Wyślij prywatną wiadomość
Witam, napisałem takie równanie w matlabie, nazywane punktem KKT, albo mnożnikami Lagrange'a. Czy ktoś wie czy dobrze to zapisałem?
Z góry dziękuję


Kod:

    
%minf(x)=(x(1)+3)^4+(4x(2)+4)^4
        
%minf(x)=(x(1)+3)^4+(4*(x(2)+1))^4
%nabla/gradient f(x)=[4*(x(1) + 3)^3 ; 64*(x(2)+1)^3]
    %
ograniczenie p.o. x(1)+x(2)^2=-3
        
%ograniczenie p.o. x(1)+x(2)^2+3=0
%lambda nabla/gradient g(x)=[1 ; 2x(2)]=-3
    
%WARUNKI KKT %Lagrange'a
clc
it=1;
x=[1; 1];
lamb=[3] %L(,)=((x(1)+3)^4+(4x(2)+4)^4)*lamb(x(1)+x(2)^2)
while it<=50
    GradL=[(4*(x(1)+3)^3)-lamb*1
           (64*(x(2)+1)^3)-lamb*2*x(2)
           -(x(1)+x(2)^2+3)];
   %Hes=[x1'
wiersz1    x1'wiersz2   x1'wiersz3
        
%x2'wiersz1    x2'wiersz2   x2'wiersz3
        %x1'
wiersz3    x2'wiersz3   zero ]
    Hes=[(4*(3*(x(1)+3)^2))-lamb*0      0                 -1
        0                       (192*(x(2)+1)^2)-lamb*2   -2*x(2)
        -1                           -2*x(2)              0];
    dx=-Hes\GradL;
    lamb=dx(3,1)
    x=x+[dx(1,1);dx(2,1)]
    it=it+1;
    if max (abs(GradL))<1e-6
        break
    end
end                   


https://www.mathworks.com/help/optim/examples/tutorial-for-the-optimization-toolbox.html?prodcode=ML


 

Post Wysłany: 21 Styczenia 2017, Sob 6:33 pm Temat postu: Odpowiedz z cytatem
 
AUTOR:
EasyMan



Dołączył: 19 Sty 2017
Posty: 2


Ogląda profil użytkownika Wyślij prywatną wiadomość
Dobrze zrobione
Kod:

clc
it
=1;
x=[1;1;1];
L(1)=[1];
L(2)=[1];
while
it<100
d_fx
=[-2*(L(1)-1)*x(1)
-
3*L(1)*(x(2)-2)^2-2*L(2)+4*x(2)
-
2*L(2)*x(3)+4*L(2)+8*x(3)-8
-x(1)^2-(x(2)-2)^3+4
-2*x(2)-(x(3)-2)^2+2];
d2_fx=[-2*(L(1)-1) 0 0 -2*x(1) 0
0 4
-6*L(1)*(x(2)-2) 0 -3*(x(2)-2)^2 -2
0 0 8
-2*L(2) 0 4-2*x(3)
-
2*x(1) -3*(x(2)-2)^2 0 0 0
0
-2 4-2*x(3) 0 0];
dx=-d2_fx\d_fx;
x=x+[dx(1,1);dx(2,1);dx(3,1)];
L(1)=L(1)+dx(4,1);
L(2)=L(2)+dx(5,1);
if
norm(dx)<1e-6;
break
end
it
=it+1;
end
x


 

Post Wysłany: 31 Styczenia 2017, Wto 7:42 am Temat postu: Odpowiedz z cytatem
 
AUTOR:
mirek22



Dołączył: 31 Sty 2017
Posty: 3


Ogląda profil użytkownika Wyślij prywatną wiadomość
co to jest za kod zrobiony



_________________
continue reading
 

Forum MATLAB Strona Główna-> Matematyka, statystyka i prawdopodobieństwo
Wyświetl posty z ostatnich:   

Napisz nowy temat     Odpowiedz do tematu Zobacz poprzedni temat :: Zobacz następny temat

Wszystkie czasy w strefie CET (Europa)

Skocz do:  

Statystyki forum:



Od dnia 08.06.2006 forum odwiedzano 34591801
Najwięcej użytkowników 266 było obecnych 19 Lutego 2015, Czw 7:03 pm

Aktualnie online:




Najnowsze posty na forum:
wpisywanie wartości  (27 Lutego 2017, Pon 1:43 pm)
szybki zarobek na dziś  (27 Lutego 2017, Pon 9:52 am)
całka  (26 Lutego 2017, Nie 6:21 pm)
[MATLAB] najmniejsza wartość niepodzielna  (26 Lutego 2017, Nie 4:10 pm)
Wartości w strukturze i ich porównanie  (23 Lutego 2017, Czw 9:33 pm)
Problem optymalizacji wielokryterialnej  (15 Lutego 2017, Sro 12:06 am)
Zadanie z matlaba  (14 Lutego 2017, Wto 6:48 pm)
pomoc przy wykresie funkcji kwadratowej  (13 Lutego 2017, Pon 7:54 pm)
Współrzędne kartezjańskie uwikłane przy przejściu z układu ?  (13 Lutego 2017, Pon 2:20 pm)
nowe okno po kliknięciu na wykres  (12 Lutego 2017, Nie 6:41 pm)
Twoje prawa:
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Nie możesz ściągać plików na tym forum