File:Cauchy sequence illustration2.svg

From Wikimedia Commons, the free media repository
Revision as of 23:57, 2 May 2014 by Jim.belk (talk | contribs) (Undo revision 122960740 by Jim.belk (talk))
Jump to navigation Jump to search

Original file(SVG file, nominally 305 × 170 pixels, file size: 50 KB)

Captions

Captions

Add a one-line explanation of what this file represents
Description
English: Illustration of en:Cauchy sequence
Date
Source Based on File:Cauchy_sequence_illustration2.png by Oleg Alexandrov
Author Own work
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.
 
This W3C-unspecified diagram was created with MATLAB.

Source Codes

Using MATLAB
% draw an illustration of a sequence that is not Cauchy
function main() 

% prepare the screen and define some parameters   
   figure(1); clf; hold on; axis equal; axis off;

   fontsize=30; thick_line=3; thin_line=2;
   black=[0, 0, 0]; red=[1, 0, 0]; blue=[0, 0, 1];
   arrowsize=0.5; arrow_type=1; arrow_angle=30; % (angle in degrees)
   circrad=0.07; % radius of ball showing up in places


   B=9;
   X=0:0.06:B;

   f=inline('(X+2)./(X+0.8)', 'X');
   Y=sin(5*X).*f(X);

   for i=1:length(X)
	  ball(X(i), Y(i), circrad, blue);
   end

   X=0:0.05:(B+0.3);
   Z=f(X);
   plot(X, Z, 'r--', 'linewidth', thin_line)
   plot(X, -Z, 'r--', 'linewidth', thin_line)


   % draw the coordinate axes
   shift=-3;
   Kx=1.1; Ky=1.3; 
   L=max(Y); 
   arrow([-1 shift], [Kx*B, shift],  thin_line, arrowsize, arrow_angle, arrow_type, black) 
   arrow([-1, shift], [-1, Ky*L],    thin_line, arrowsize, arrow_angle, arrow_type, black) 


   text(Kx*B+0.6, shift,  '\it{n}', 'fontsize', fontsize, 'HorizontalAlignment', 'c')
   text(-1, Ky*L+0.8,  '\it{x_n}', 'fontsize', fontsize, 'HorizontalAlignment', 'c')

   % save to disk
   saveas(gcf, 'Cauchy_sequence_illustration2.eps', 'psc2') % export to eps

function ball(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, th, arrow_size, sharpness, arrow_type, color)
   
% Function arguments:
% start, stop:  start and end coordinates of arrow, vectors of size 2
% th:           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', th, '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', th, 'Color', color); 
      plot(real([stop, point1]), imag([stop, point1]), 'LineWidth', th, 'Color', color);
      plot(real([stop, point2]), imag([stop, point2]), 'LineWidth', th, 'Color', color);
   end
Using python
from matplotlib.pyplot import *
from mpl_toolkits.axes_grid.axislines import SubplotZero
from numpy import arange, sin

x1 = arange(0.,9.1,.05)
x2 = arange(0.,9.6,.1)
z = lambda x: (x+2.) / (x+.8)
y = lambda x: sin(5.*x) * z(x)

fig = figure(figsize=(4,2))
ax = SubplotZero(fig,111)
fig.add_subplot(ax)

ax.axis["top"].set_visible(False)
ax.axis["right"].set_visible(False)
ax.axis["left"].set_axisline_style("->")
ax.axis["bottom"].set_axisline_style("->")
ax.set_yticks([])
ax.set_xticks([])
ax.set_xlim(-1,10)
ax.set_ylim(-3,3)

ax.plot(x1,y(x1),'bo',ms=2.5)
ax.plot(x2, z(x2),'r--',lw=1.5)
ax.plot(x2,-z(x2),'r--',lw=1.5)

ax.text(10,-2.8,u'$n$')
ax.text(-.75,3,u'$X_n$')
fig.savefig("test.svg",bbox_inches="tight",pad_inches=.15)

File history

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

Date/TimeThumbnailDimensionsUserComment
current03:54, 9 September 2011Thumbnail for version as of 03:54, 9 September 2011305 × 170 (50 KB)Krishnavedala (talk | contribs)With text corrected and much smaller file size
09:05, 11 February 2011Thumbnail for version as of 09:05, 11 February 2011512 × 317 (186 KB)Reubot (talk | contribs)crop viewbox
14:35, 10 February 2011Thumbnail for version as of 14:35, 10 February 2011512 × 384 (186 KB)Reubot (talk | contribs){{Information |Description ={{en|1=Illustration of en:Cauchy sequence}} |Source =Based on File:Cauchy_sequence_illustration2.png by Oleg Alexandrov |Author ={{own}} |Date =2011-02-11 |Permiss

The following page uses this file:

File usage on other wikis

The following other wikis use this file: