This file is from Wikimedia Commons and may be used by other projects.
The description on its file description page there is shown below.
Summary
The 'gradient ascent' method applied to a function. This image shows the surface of the function (3D interpretation). See also: image:gradient ascent (contour).png.
Created with Maple 10, using the following code:
> restart:with(VectorCalculus):with(plots):with(plottools):
> z:=(x,y)->sin(1/2*x^2-1/4*y^2+3)*cos(2*x+1-exp(y)):
> grad:=VectorCalculus[Gradient](z(x,y),[x,y]);
> plot3d(z(x,y),x=-1.2..1.2,y=-1.2..1.2,axes=normal,numpoints=1000);p3d:=%:
> contourplot(z(x,y),x=-1.2..1.2,y=-1.2..1.2,axes=normal,contours=30,numpoints=3000);cont:=%:
> start:=[-1/4,1/3];ptf[0]:=Vector(start):
> steps:=15;
> for i from 0 to steps do:
print(ptf[i]):
pt[i]:=Vector([convert(ptf[i],list)[],z(ptf[i][1],ptf[i][2])]):
dir[i]:=evalf(Normalize(evalVF(grad,ptf[i])));
par[i]:=ptf[i]+lambda*dir[i];
lambd[i]:=fsolve(diff(z(par[i][1],par[i][2]),lambda)=0,lambda=0);
ptf[i+1]:=eval(par[i],lambda=lambd[i]);
od:i:='i':
> display(cont,'point(convert(ptf[i],list),color=blue)'$'i'=0..steps,'plot([par[i][1],par[i][2],lambda=0..lambd[i]])'$'i'=0..steps);
> display(p3d,'point(convert(pt[i],list),color=blue,symbol=circle,symbolsize=4)'$'i'=0..steps,'spacecurve([par[i][1],par[i][2],z(par[i][1],par[i][2])],lambda=0
Made a screenshot, cropped with paint shop pro 4.12, saved with Irfanview
This graph image could be re-created using vector graphics as an SVG file. This has several advantages; see Commons:Media for cleanup for more information. If an SVG form of this image is available, please upload it and afterwards replace this template with {{vector version available|new image name}}.
It is recommended to name the SVG file “Gradient ascent (surface).svg”—then the template Vector version available (or Vva) does not need the new image name parameter.
Licensing
Public domainPublic domainfalsefalse
I, the copyright holder of this work, release this work into the public domain. This applies worldwide. In some countries this may not be legally possible; if so: I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.
Captions
Add a one-line explanation of what this file represents
The 'gradient ascent' method applied to a function. This image shows the surface of the function (3D interpretation). See also: image:gradient ascent (contour).png. Created with Maple 10, using the following code: <code><pre> > restart:with(VectorC