Исходный файл (SVG-файл, номинально 512 × 512 пкс, размер файла: 249 КБ)

Краткое описание

Описание
English: Consider a function f whose graph looks like a hill. The blue curves are the level sets; the red curves follow the direction of the gradient. The cautious hiker follows the blue paths; the bold hiker follows the red paths. Note that blue and red paths always cross at right angles.

Source code:

 Lx1=-1.7; Lx2=2.3; Ly1=-2; Ly2=2;  % box dimensions
 N=60; % split the box into N x N grid
 [X, Y]=meshgrid(Lx1:1/N:Lx2, Ly1:1/N:Ly2); % the grid
 
 f=inline('-((y+1).^4/25+(x-1).^4/10+x.^2+y.^2-1)');   % draw the level sets of f
 fx=inline('-2/5*(x-1).^3-2*x'); fy=inline('-4/25*(y+1).^3-2*y'); % partial deriv  
 Z=f(X, Y); % the function value
 
 figure(1); clf; hold on; axis equal; axis off; % pop up a figure
 h=0.5; % spacing between heights
 v=[-20:h:0.8 0.85]; % the heights
 [c,h] = contour(X, Y, Z, v, 'b'); % the level sets at those heights
 
 x0=0.1333; y0=-0.0666; % coordinates of the top of the hill
 delta=0.01; % descend from the top of the hill with this step size
 Angles=linspace(0, 2*pi, 20); % will draw 19 descent curves with Angles(i)
 
 for i=1:length(Angles)
   x=x0+0.1*cos(Angles(i)); y=y0+0.1*sin(Angles(i)); % starting point
   Curve_x=[x]; Curve_y=[y]; % will hold a descent curve following the gradient
   
   % descend from the hill 
   for j=1:500
     x=x-delta*fx(x);
     y=y-delta*fy(y);
     Curve_x=[Curve_x x]; Curve_y=[Curve_y y]; % append the updated values
     
     if max(abs(x), abs(y)) > 5 % stop when going beyond the picture frame
       break;
     end
   end
   plot(Curve_x, Curve_y, 'r') % plot the curve of steepest descent
 end
 
 axis([Lx1 Lx2 Ly1 Ly2]); % the picture frame  
 plot2svg('level_grad.svg',gcf); % Download plot2svg from Matlab central
%
Дата
Источник File:Level_grad.png
Автор Oleg Alexandrov
Другие версии File:Level_grad.png

Source code modified by me to output SVG directly from Matlab

Лицензирование

Public domain Я, владелец авторских прав на это произведение, передаю его в общественное достояние. Это разрешение действует по всему миру.
В некоторых странах это не может быть возможно юридически, в таком случае:
Я даю право кому угодно использовать данное произведение в любых целях без каких-либо условий, за исключением таких условий, которые требуются по закону.

Краткие подписи

Добавьте однострочное описание того, что собой представляет этот файл

Элементы, изображённые на этом файле

изображённый объект

История файла

Нажмите на дату/время, чтобы посмотреть файл, который был загружен в тот момент.

Дата/времяМиниатюраРазмерыУчастникПримечание
текущий08:49, 25 августа 2010Миниатюра для версии от 08:49, 25 августа 2010512 × 512 (249 КБ)GyroMagicianFixed page size to image size (using Inkscape)
08:48, 25 августа 2010Миниатюра для версии от 08:48, 25 августа 2010512 × 384 (249 КБ)GyroMagician{{Information |Description={{en|1=Source code: Lx1=-1.7; Lx2=2.3; Ly1=-2; Ly2=2; % box dimensions N=60; % split the box into N x N grid [X, Y]=meshgrid(Lx1:1/N:Lx2, Ly1:1/N:Ly2); % the grid f=inline('-((y+1).^4/25+(x-1).^4/10+x.^2+y.^2-1)');

Следующая страница использует этот файл:

Глобальное использование файла

Данный файл используется в следующих вики: