Diese Datei stammt aus Wikimedia Commons und kann von anderen Projekten verwendet werden. Die Beschreibung von deren Dateibeschreibungsseite wird unten angezeigt.
Diese Datei verwendet Text-Einbettung, die mit einem Texteditor leicht übersetzbar ist.
Lizenz
Zerodamage, der Nutzungsrechtsinhaber dieses Werkes, veröffentlicht es hiermit unter der folgenden Lizenz:
Public domainPublic domainfalsefalse
Dieses Werk wurde von seinem Urheber Zerodamage als gemeinfrei veröffentlicht. Dies gilt weltweit. In manchen Staaten könnte dies rechtlich nicht möglich sein. Sofern dies der Fall ist: Zerodamage gewährt jedem das bedingungslose Recht, dieses Werk für jedweden Zweck zu nutzen, es sei denn, Bedingungen sind gesetzlich erforderlich.
Source code
% Illustration of gradient descentfunctionmain()% the ploting windowfigure(1);clf;holdon;set(gcf,'color','white');set(gcf,'InvertHardCopy','off');axisequal;axisoff;% the box Lx1=-2;Lx2=2;Ly1=-2;Ly2=2;% the function whose contours will be plottedN=60;h=1/N;XX=Lx1:h:Lx2;YY=Ly1:h:Ly2;[X,Y]=meshgrid(XX,YY);f=inline('-((y+1).^4/25+(x-1).^4/10+x.^2+y.^2-1)');Z=f(X,Y);% the contoursh=0.3;l0=-1;l1=20;l0=h*floor(l0/h);l1=h*floor(l1/h);v=[l0:1.5*h:00:h:l10.80.888];[c,h]=contour(X,Y,Z,v,'b');% graphing settingssmall=0.08;small_rad=0.01;thickness=1;arrowsize=0.06;arrow_type=2;fontsize=13;red=[1,0,0];white=0.99*[1,1,1];% initial guess for gradient descentx=-0.6498;y=-1.0212;% run several iterations of gradient descentfori=0:4H=text(x-1.5*small,y+small/2,sprintf('x_%d',i));set(H,'fontsize',fontsize,'color',0*[111]);% the derivatives in x and in y, the step sizeu=-2/5*(x-1)^3-2*x;v=-4/25*(y+1)^3-2*y;alpha=0.11;ifi<4plot([x,x+alpha*u],[y,y+alpha*v]);arrow([x,y],[x,y]+alpha*[u,v],thickness,arrowsize,pi/8,...arrow_type,[1,0,0])x=x+alpha*u;y=y+alpha*v;endend% some dummy text, to expand the saving window a bittext(-0.9721,-1.5101,'*','color',white);text(1.5235,1.1824,'*','color',white);% save to epssaveas(gcf,'Gradient_descent.eps','psc2')functionarrow(start, stop, thickness, arrow_size, sharpness, arrow_type, color)% Function arguments:% start, stop: start and end coordinates of arrow, vectors of size 2% thickness: thickness of arrow stick% arrow_size: the size of the two sides of the angle in this picture ->% sharpness: angle between the arrow stick and arrow side, in radians% arrow_type: 1 for filled arrow, otherwise the arrow will be just two segments% color: arrow color, a vector of length three with values in [0, 1]% convert to complex numbersi=sqrt(-1);start=start(1)+i*start(2);stop=stop(1)+i*stop(2);rotate_angle=exp(i*sharpness);% points making up the arrow tip (besides the "stop" point)point1=stop-(arrow_size*rotate_angle)*(stop-start)/abs(stop-start);point2=stop-(arrow_size/rotate_angle)*(stop-start)/abs(stop-start);ifarrow_type==1% filled arrow% plot the stick, but not till the end, looks badt=0.5*arrow_size*cos(sharpness)/abs(stop-start);stop1=t*start+(1-t)*stop;plot(real([start,stop1]),imag([start,stop1]),'LineWidth',thickness,'Color',color);% fill the arrowH=fill(real([stop,point1,point2]),imag([stop,point1,point2]),color);set(H,'EdgeColor','none')else% two-segment arrowplot(real([start,stop]),imag([start,stop]),'LineWidth',thickness,'Color',color);plot(real([stop,point1]),imag([stop,point1]),'LineWidth',thickness,'Color',color);plot(real([stop,point2]),imag([stop,point2]),'LineWidth',thickness,'Color',color);endfunctionball(x, y, r, color)Theta=0:0.1:2*pi;X=r*cos(Theta)+x;Y=r*sin(Theta)+y;H=fill(X,Y,color);set(H,'EdgeColor','none');%plot2svg must be retrieved from http://www.zhinst.com/blogs/schwizer/plot2svg;
Ursprüngliches Datei-Logbuch
This image is a derivative work of the following images:
2007-06-23T03:33:09Z Oleg Alexandrov 482x529 (25564 Bytes) {{Information |Description=An illustration of the gradient descent method. I graphed this with Matlab |Source=Originally from [http://en.wikipedia.org en.wikipedia]; description page is/was [http://en.wikipedia.org/w/index.ph
== {{int:filedesc}} == {{Information |Description=An illustration of the gradient descent method. I graphed this with Matlab |Source={{Derived from|Gradient_descent.png|display=50}} |Date=2012-08-07 19:02 (UTC) |Author=*File:Gradient_descent.png:...
Diese Datei enthält weitere Informationen, die in der Regel von der Digitalkamera oder dem verwendeten Scanner stammen. Durch nachträgliche Bearbeitung der Originaldatei können einige Details verändert worden sein.
Bildtitel
Matlab Figure Converted by PLOT2SVG written by Juerg Schwizer