Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

[ Matlab] metodaHooke-Jeavese znajdz jej minimum

#1
[ Matlab] metodaHooke-Jeavese znajdz jej minimum
Kod:
% % Dana jest funkcja :
% % 
% % y(p,q,r,s) = abs(p-1.1) + sqr(q-2.2) + abs(r+3.3) + abs(s-4.4)
% % 
% % 1.z wykorzystaniem metody Hooke'a-Jeavese'a znajdz jej minimum,
% % 2.podaj kolejne punkty bazowe oraz ilosc iteracji,
% % 
% % dane :
% % punkt startowy :   5,5,5,5
% % dokladnosc : 0.01
% % krok pocz. : 1
% % wspol. korekc. : 0.5
% % 
% % 3.okresl wplyw wspolczynnika korekcyjnego (zmieniajacego sie od 0.1 do 0.9
% %   co 0.1) na dokladnosc wyniku oraz ilosc iteracji.
clc; clear all;
syms r; syms s; syms p; syms q; x=[5;5;5;5];
y = abs(p-1.1) + (q-2.2)^2 + abs(r+3.3) + abs(s-4.4);
e=0.01; t=1; beta=0.9; d=eye(4); iter=0; n=4; xb0=x(:,1);
while(t>=e),
    q0=subs(y,x(:,1));
    roboczy=1;
    ok=[0;0;0;0];
        for k=1:n,
        x(:,k+1)=x(:,k)+t*d(:,k);
        q1=subs(y,x(:,k+1));
      %  assume(q1,'real'); assume(q0,'real'); 
        if(q1<q0),
            ok(k,1)=1;
            q0=q1;
        else
            x(:,k+1)=x(:,k)-t*d(:,k);
            q1=subs(y,{p,q,r,s},x(:,k+1));
            if(q1<q0),
                ok(k,1)=1;
                q0=q1;
            else
                x(:,k+1)=x(:,k);
            end
        end
    end
        if(ok(4,1)==1)
        xb=x(:,5);
    elseif(ok(3,1)==1)
        xb=x(:,4);
    elseif(ok(2,1)==1)
        xb=x(:,3);
    elseif(ok(1,1)==1)
        xb=x(:,2);
    else
        t=t*beta;
        roboczy=0;
    end
        if(roboczy==1)
        iter=iter+1;
        x(:,1)=2*xb-xb0;
        xb0=xb;
        fprintf('Krok %d',iter)
        xb
    end
end

x(:,1)
subs(y,{p,q,r,s},x(:,1))

Ktoś wie co tutaj jest źle ? Cz
 System operacyjny: windows_seven Przeglądarka: chrome
Programy: Polecane / Nowe / Inne




Podobne wątki ([ Matlab] metodaHooke-Jeavese znajdz jej minimum)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Batch - odczytywanie temperatury karty graficznej i zapisywanie jej do zmiennej ~Anonim 4 9712 03.09.2017, 21:41
Ostatni post: ~Anonim
  [Matlab] Gra "Papier kamień nożyce" samanta19 7 9419 07.04.2017, 15:54
Ostatni post: Szachista
  Algorytm znajdowania minimum w ciągu - prośba o pomoc majster69 3 7819 18.10.2015, 11:20
Ostatni post: majster69

Skocz do:


Wybrane wątki ([ Matlab] metodaHooke-Jeavese znajdz jej minimum)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Przekazywanie wskaźnika przez referencję w Qt Trojan3000 3 12310 10.12.2019 13:16
Ostatni post: Ajgor
  Proszę o pomoc w uzupełnieniu ankiety dt. Zawodu Programisty MaleMonki 0 2548 17.11.2019 12:47
Ostatni post: MaleMonki
  Spring framework – jakie strony polecacie do nauki? olek23 5 6631 15.11.2019 15:57
Ostatni post: Alsenas
  Programowanie windy (problem) w C++ mysza2323 2 5612 06.11.2019 23:04
Ostatni post: mysza2323
  Programy w C ~Anonim 1 5916 22.10.2019 17:48
Ostatni post: Szachista
  Książki do nauki C# olek23 14 18272 17.10.2019 13:06
Ostatni post: Ajgor
  Wyświetlanie informacji z bazy danych na stronie www PitPlay 1 7264 16.09.2019 11:18
Ostatni post: Ajgor
  Błąd przy uruchamianiu programu w Java z wiersza poleceń Physicist 3 4423 30.08.2019 14:16
Ostatni post: Physicist
  Python z wiersza poleceń Physicist 15 20014 21.08.2019 20:14
Ostatni post: Physicist
  Transfer plików via FTP Visual Basic FireBytes 3 6936 15.08.2019 07:41
Ostatni post: Szachista
  Menu wysuwane z boku patryk67 1 7134 07.08.2019 12:43
Ostatni post: aht
  Visual Basic Excel l.całkowitą przedstawić w postaci szesnastkowej fugaz 4 9003 18.06.2019 21:36
Ostatni post: fugaz
  Nauka do Olimpiady Informatycznej? piotr0905 1 8518 08.06.2019 16:50
Ostatni post: wlisik
Ściana Prosta gra w Builder C++ Kiranek1 1 8446 31.05.2019 15:20
Ostatni post: Szachista
  Menu (Nie widoczne długie opisy) wanhelsing 5 10527 28.04.2019 19:31
Ostatni post: koneton