File:Subderivative illustration.png

Subderivative_illustration.png(540 × 463 pixels, file size: 21 KB, MIME type: image/png)

Captions

Captions

Add a one-line explanation of what this file represents

Summary edit

Transferred from en.wikipedia to Commons by Maksim.

The original description page was here. All following user names refer to en.wikipedia.

Licensing edit

Public domain 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.

Source code (Matlab) edit

function main() % Subderivative illustration

%  set up the plotting window, and some graphing paramenters
   figure(1); clf; hold on; axis equal; axis off;
   thick_line=2.5; thin_line=2; arrow_size=0.3; arrow_type=1; arrow_angle=20; %(angle in degrees)
   font_size=30; ball_rad=0.04;
   black=[0, 0, 0]; red=[1, 0, 0];

%  define the function; plot the x and y axes and the function
   a=-1.5; b=3; h=0.02; 
   X=[a  0 1 2 3]; Y=[0.3  0.2 0.5 1.5 3];
   arrow([a 0],       [b, 0],      thin_line, arrow_size, arrow_angle, arrow_type, black)  
   arrow([0, min(Y)-1], [0, max(Y)], thin_line, arrow_size, arrow_angle, arrow_type, black); 
   plot(X, Y, 'linewidth', thick_line); 

   % the "tangent" lines
   x0=X(3); y0=Y(3);
   s=0.8; plot(X, s*(X-x0)+y0, 'linewidth', thick_line, 'color', [1, 0, 0])
   s=0.5; plot(X, s*(X-x0)+y0, 'linewidth', thick_line, 'color', [1, 0, 0])

   % auxiliary line
   plot([x0 x0], [0, y0], 'linewidth', thin_line, 'color', [0, 0, 0], 'linestyle', '--')
   
%  graph some suggestive balls
   ball_full (x0, 0, ball_rad, [0 0 0 ]); 
   ball_full (x0, y0, ball_rad, [1 0 0 ]); 

%   text, sir
   H=text(x0, -0.006*font_size,  'x_0');
   set(H, 'fontsize', font_size, 'HorizontalAlignment', 'c', 'VerticalAlignment', 'c')

   axis(1.1*[a b min(Y)-1 max(Y)])
%  save to postscript
   saveas(gcf, 'Subderivative_illustration.eps', 'psc2')
   
function ball_full(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');


  function arrow(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 degrees
% 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 numbers
   i=sqrt(-1);
   start=start(1)+i*start(2); stop=stop(1)+i*stop(2);
   rotate_angle=exp(i*pi*sharpness/180);

% 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);

   if arrow_type==1 % filled arrow

      % plot the stick, but not till the end, looks bad
      t=0.5*arrow_size*cos(pi*sharpness/180)/abs(stop-start); stop1=t*start+(1-t)*stop;
      plot(real([start, stop1]), imag([start, stop1]), 'LineWidth', thickness, 'Color', color);

      % fill the arrow
      H=fill(real([stop, point1, point2]), imag([stop, point1, point2]), color);
      set(H, 'EdgeColor', 'none')
      
   else % two-segment arrow
      plot(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);
   end
date/time username edit summary
20:06, 18 December 2005 en:User:Oleg Alexandrov (source code)
20:04, 18 December 2005 en:User:Oleg Alexandrov

Original upload log edit

Legend: (cur) = this is the current file, (del) = delete this old version, (rev) = revert to this old version.

Click on date to download the file or see the image uploaded on that date.

This math 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 “Subderivative illustration.svg”—then the template Vector version available (or Vva) does not need the new image name parameter.

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeThumbnailDimensionsUserComment
current18:34, 20 March 2006Thumbnail for version as of 18:34, 20 March 2006540 × 463 (21 KB)Maksim (talk | contribs)La bildo estas kopiita de wikipedia:en. La originala priskribo estas: == Licensing == {{PD-self}} ==Source code (Matlab)== <pre><nowiki> function main() % Subderivative illustration % set up the plotting window, and some graphing paramenters f

There are no pages that use this file.

File usage on other wikis

The following other wikis use this file: