File:TV pic2.png

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search

Original file(886 × 989 pixels, file size: 19 KB, MIME type: image/png)

Captions

Captions

Graph of the function sin(1/x)

Summary[edit]

Made by myself with Matlab.

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 discontinuity()

   % set up the plotting window
   thick_line=2.5; thin_line=2; arrow_size=3; arrow_type=2;
   fs=30; circrad=0.06;

   
   a=0; b=2/pi; h=0.0001; x0=1;
   X=a:h:b;
%   Y=0.5*sin(1./(X+eps));
   f=inline('X');
   Y=f(X).*sin(1./(X+eps));
   Z=f(X);
   

   figure(3); clf; hold on; axis equal; axis off;

   Q=-0.3; R=2/pi;
   arrow([Q 0], [R, 0], thin_line, arrow_size, pi/8,arrow_type, [0, 0, 0]) % xaxis
   arrow([0 Q], [0, R], thin_line, arrow_size, pi/8,arrow_type, [0, 0, 0]); % y axis


   plot(X, Z, 'linewidth', thin_line, 'linestyle', '--', 'color', [1, 0, 0]);
   plot(X, -Z, 'linewidth', thin_line, 'linestyle', '--', 'color', [1, 0, 0]);
   plot(X, Y, 'linewidth', thick_line);
   
   axis ([-0.2, R, -0.3, R]);
   saveas(gcf, 'TV_pic2.eps', 'psc2');


function arrow(start, stop, thickness, arrowsize, sharpness, arrow_type, color)

   
%  draw a line with an arrow at the end
%  start is the x,y point where the line starts
%  stop is the x,y point where the line stops
%  thickness is an optional parameter giving the thickness of the lines   
%  arrowsize is an optional argument that will give the size of the arrow 
%  It is assumed that the axis limits are already set
%  0 < sharpness < pi/4 determines how sharp to make the arrow
%  arrow_type draws the arrow in different styles. Values are 0, 1, 2, 3.
   
%       8/4/93    Jeffery Faneuff
%       Copyright (c) 1988-93 by the MathWorks, Inc.
%       Modified by Oleg Alexandrov 2/16/03

   
   if nargin <=6
      color=[0, 0, 0];
   end
   
   if (nargin <=5)
      arrow_type=0;   % the default arrow, it looks like this: ->
   end
   
   if (nargin <=4)
      sharpness=pi/4; % the arrow sharpness - default = pi/4
   end

   if nargin<=3
      xl = get(gca,'xlim');
      yl = get(gca,'ylim');
      xd = xl(2)-xl(1);            
      yd = yl(2)-yl(1);            
      arrowsize = (xd + yd) / 2;   % this sets the default arrow size
   end

   if (nargin<=2)
      thickness=0.5; % default thickness
   end
   
   
   xdif = stop(1) - start(1);
   ydif = stop(2) - start(2);

   if (xdif == 0)
      if (ydif >0) 
         theta=pi/2;
      else
         theta=-pi/2;
      end
   else
      theta = atan(ydif/xdif);  % the angle has to point according to the slope
   end

   if(xdif>=0)
      arrowsize = -arrowsize;
   end

   if (arrow_type == 0) % draw the arrow like two sticks originating from its vertex
      xx = [start(1), stop(1),(stop(1)+0.02*arrowsize*cos(theta+sharpness)),NaN,stop(1),...
            (stop(1)+0.02*arrowsize*cos(theta-sharpness))];
      yy = [start(2), stop(2), (stop(2)+0.02*arrowsize*sin(theta+sharpness)),NaN,stop(2),...
            (stop(2)+0.02*arrowsize*sin(theta-sharpness))];
      plot(xx,yy, 'LineWidth', thickness, 'color', color)
   end

   if (arrow_type == 1)  % draw the arrow like an empty triangle
      xx = [stop(1),(stop(1)+0.02*arrowsize*cos(theta+sharpness)), ...
            stop(1)+0.02*arrowsize*cos(theta-sharpness)];
      xx=[xx xx(1) xx(2)];
      
      yy = [stop(2),(stop(2)+0.02*arrowsize*sin(theta+sharpness)), ...
            stop(2)+0.02*arrowsize*sin(theta-sharpness)];
      yy=[yy yy(1) yy(2)];

      plot(xx,yy, 'LineWidth', thickness, 'color', color)
      
%     plot the arrow stick
      plot([start(1) stop(1)+0.02*arrowsize*cos(theta)*cos(sharpness)], [start(2), stop(2)+ ...
                    0.02*arrowsize*sin(theta)*cos(sharpness)], 'LineWidth', thickness, 'color', color)
      
   end
   
   if (arrow_type==2) % draw the arrow like a full triangle
      xx = [stop(1),(stop(1)+0.02*arrowsize*cos(theta+sharpness)), ...
            stop(1)+0.02*arrowsize*cos(theta-sharpness),stop(1)];
      
      yy = [stop(2),(stop(2)+0.02*arrowsize*sin(theta+sharpness)), ...
            stop(2)+0.02*arrowsize*sin(theta-sharpness),stop(2)];
      H=fill(xx, yy, color);% fill with black
      set(H, 'EdgeColor', 'none')
      
%     plot the arrow stick
      plot([start(1) stop(1)+0.01*arrowsize*cos(theta)], [start(2), stop(2)+ ...
                    0.01*arrowsize*sin(theta)], 'LineWidth', thickness, 'color', color)
   end

   if (arrow_type==3) % draw the arrow like a filled 'curvilinear' triangle
      curvature=0.5; % change here to make the curved part more curved (or less curved)
      radius=0.02*arrowsize*max(curvature, tan(sharpness));
      x1=stop(1)+0.02*arrowsize*cos(theta+sharpness);
      y1=stop(2)+0.02*arrowsize*sin(theta+sharpness);
      x2=stop(1)+0.02*arrowsize*cos(theta)*cos(sharpness);
      y2=stop(2)+0.02*arrowsize*sin(theta)*cos(sharpness);
      d1=sqrt((x1-x2)^2+(y1-y2)^2);
      d2=sqrt(radius^2-d1^2);
      d3=sqrt((stop(1)-x2)^2+(stop(2)-y2)^2);
      center(1)=stop(1)+(d2+d3)*cos(theta);
      center(2)=stop(2)+(d2+d3)*sin(theta);

      alpha=atan(d1/d2);
      Alpha=-alpha:0.05:alpha;
      xx=center(1)-radius*cos(Alpha+theta);
      yy=center(2)-radius*sin(Alpha+theta);
      xx=[xx stop(1) xx(1)];
      yy=[yy stop(2) yy(1)];

      H=fill(xx, yy, color);% fill with black
      set(H, 'EdgeColor', 'none')

%     plot the arrow stick
      plot([start(1) center(1)-radius*cos(theta)], [start(2), center(2)- ...
                    radius*sin(theta)], 'LineWidth', thickness, 'color', color);
   end

File history

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

Date/TimeThumbnailDimensionsUserComment
current06:26, 25 February 2007Thumbnail for version as of 06:26, 25 February 2007886 × 989 (19 KB)Oleg Alexandrov (talk | contribs)
06:21, 25 February 2007Thumbnail for version as of 06:21, 25 February 2007886 × 989 (25 KB)Oleg Alexandrov (talk | contribs)Made by myself with Matlab.
06:20, 25 February 2007Thumbnail for version as of 06:20, 25 February 2007886 × 989 (25 KB)Oleg Alexandrov (talk | contribs)Made by myself with Matlab.
06:13, 25 February 2007Thumbnail for version as of 06:13, 25 February 2007481 × 500 (9 KB)Oleg Alexandrov (talk | contribs)Made by myself with Matlab.

The following page uses this file:

File usage on other wikis

The following other wikis use this file: