Darbo tikslas: suprogramuoti gradientinio nusileidimo metodą ir patyrinėti žingsnio ilgio įtaką optimizavimo procesui.
1. Pasirinkta programavimo kalba sudarykite programą, įgyvendinančią gradientinio nusileidimo algoritmą.
, čia Nr - varianto numeris.
3. Sukurtąja programa minimizuokite Rosenbrock funkciją
4. Grafiškai pavaizduokite gradientinio nusileidimo kelią.
5. Patyrinėkite nusileidimo kelią, esant įvairiems gradientinio nusileidimo žingsnio ilgiams.
6. Patyrinėkite nusileidimo kelią, keisdami pradinio taško vietą.
Pastaba: Užduočiai realizuoti rekomenduojama naudoti pateiktas pavyzdines programas MATLAB kalboje.
Programa MATLAB kalboje:
function main
x=-3:0.1:5;
clf
plot(x,tikslo_funkcija(x),'k');
hold on
% Priskiriame pradine kintamojo x verte, nuo kurios veliau
% leisimes "zemyn"
x0=3;
xs=x0; % pagalbinis kintamasis, kuri naudosime, skaiciuodami sekanti x
itsk=200; % iteracijus skaicius
zingsnis=0.7; % zingsnis
% Ciklas, kuriame vykdomi nusileidimo "zemyn" zingsneliai
for i=1:itsk
% Naujos x vertes skaiciavimas
x=xs-zingsnis*gradientas(xs);
% Nusileidimo zingsnio braizymas
plot([xs x],[tikslo_funkcija(xs) tikslo_funkcija(x)], 'r-o')
xs=x;
end
hold off
%----------------------------------------------------------------------
%--- Tikslo funkcijos skaiciavimo paprograme
%----------------------------------------------------------------------
function y = tikslo_funkcija(x)
y = x-sin(x-13/10);
%----------------------------------------------------------------------
%--- Tikslo funkcijos gradiento skaiciavimo paprograme
%----------------------------------------------------------------------
function g=gradientas(x)
g = 1-cos(x-13/10);
%--- Gradiento metodo taikymo kavadratinei funkcijai z=x.^2+2*y.^2 pavyzdys
%
function main
clc, clear
%--- Braizome funkcijos konturini brezini
[x,y]=meshgrid(-3:.3:3);
z=x.^2+(13/3)*y.^2;
figure(1)
hold off
contour(x,y,z)
[dx,dy]=gradient(z,.2,.2);
hold on
quiver(x,y,dx,dy)
% Priskiriame pradine...
Šį darbą sudaro 415 žodžiai, tikrai rasi tai, ko ieškai!
★ Klientai rekomenduoja
Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?
Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!
Norint atsisiųsti šį darbą spausk ☞ Peržiūrėti darbą mygtuką!
Mūsų mokslo darbų bazėje yra daugybė įvairių mokslo darbų, todėl tikrai atrasi sau tinkamą!
Panašūs darbai
Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.
Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.
Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!