Jump to content

File:Amoeba3.svg

Page contents not supported in other languages.
This is a file from the Wikimedia Commons
From Wikipedia, the free encyclopedia

Original file (SVG file, nominally 1,584 × 1,258 pixels, file size: 2 KB)

Summary

Description The amoeba of P(z, w) = 1 + z+z2 + z3 + z2w3 + 10zw + 12z2w+10z2w2
Date (UTC)
Source File:Amoeba3.png
Author Vectorised by Zerodamage, from the original work by Oleg Alexandrov


This is a retouched picture, which means that it has been digitally altered from its original version. Modifications: Vectorization. The original can be viewed here: Amoeba3.png. Modifications made by Zerodamage.

Licensing

w:en:Creative Commons
attribution share alike
This file is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license.
You are free:
  • to share – to copy, distribute and transmit the work
  • to remix – to adapt the work
Under the following conditions:
  • attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • share alike – If you remix, transform, or build upon the material, you must distribute your contributions under the same or compatible license as the original.

Source code


% find the amoeba of a polynomial, see
% http://wiki.riteme.site/wiki/Amoeba_%28mathematics%29

% consider a polynomial in z and w
%f[z_, w_] = 1 + z + z^2 + z^3 + z^2*w^3 + 10*z*w + 12*z^2*w + 10*z^2*w^2

% as a polynomial in w with coeffs polynonials in z, its coeffs are 
% [z^2, 10*z^2, 12*z^2+10*z, 1 + z + z^2 + z^3] (from largest to smallest)

% as a polynomial in z with coeffs polynonials in w, its coeffs are 
% [1, 1+w^3+12*w+10*w^2, 1+10*w, 1] (from largest to smallest)

function main()

   figure(3); clf; hold on;
   axis([-10, 10, -6, 7]); axis equal; axis off;
   fs = 20; set(gca, 'fontsize', fs);
   
   ii=sqrt(-1);
   tiny = 100*eps;
   
   Ntheta = 300;
   NR=      400; NRs=100; % NRs << NR  

   % LogR is a vector of numbers, not uniformly distributed (more points where needed).
   A=-10; B=10; AA = -0.1; BB = 0.1; 
   LogR  = [linspace(A, B, NR-NRs), linspace(AA, BB, NRs)]; LogR = sort (LogR);
   R     = exp(LogR);

   % a vector of angles
   Theta = linspace(0, 2*pi, Ntheta);

   Rho = zeros(1, 3*Ntheta); % will store the absolute values of the roots
   One = ones (1, 3*Ntheta);

   % draw the 2D figure as union of horizontal pieces and then union of vertical pieces
   for type=1:2

	  for count_r = 1:NR
		 count_r
		 
		 r = R(count_r);
		 for count_t =1:Ntheta
			
			theta = Theta (count_t);

			if type == 1
			   z=r*exp(ii*theta);
			   Coeffs = [z^2, 10*z^2, 12*z^2+10*z, 1 + z + z^2 + z^3];
			else
			   w=r*exp(ii*theta);
			   Coeffs = [1, 1+w^3+12*w+10*w^2, 1+10*w, 1];
			end

			% find the roots of the polynomial with given coefficients
			Roots = roots(Coeffs);

                        % log |root|. Use max() to avoid log 0.
			Rho((3*count_t-2):(3*count_t))= log (max(abs(Roots), tiny)); 
		 end
		 

		 % plot the roots horizontally or vertically
		 if type == 1
			plot(LogR(count_r)*One, Rho, 'b.');
		 else
			plot(Rho, LogR(count_r)*One, 'b.');
		 end
		 
	  end

   end
   
   saveas(gcf, 'amoeba3.eps', 'psc2');

% A function I decided not to use, but which may be helpful in the future.   
%function find_gaps_add_to_curves(count_r, Rho)
%
%   global Curves;
%   
%   Rho = sort (Rho);
%   k = length (Rho);
%
%   av_gap = sum(Rho(2:k) - Rho (1:(k-1)))/(k-1);
%
%   % top-most and bottom-most curve
%   Curves(1, count_r)=Rho(1); Curves(2, count_r)=Rho(k);
%
%   % find the gaps, which will give us points on the curves limiting the amoeba
%   count = 3;
%   for j=1:(k-1)
%	  if Rho(j+1) - Rho (j) > 200*av_gap
%
%		 Curves(count, count_r) = Rho(j);   count = count+1;
%		 Curves(count, count_r) = Rho(j+1); count = count+1;
%	  end
%   end

% The polynomial in wiki notation
%<math>P(z_1, z_2)=1 + z_1\,</math>
%<math>+ z_1^2 + z_1^3 + z_1^2z_2^3\,</math>
%<math>+ 10z_1z_2 + 12z_1^2z_2\,</math>
%<math>+ 10z_1^2z_2^2.\,</math>

Original upload log

This image is a derivative work of the following images:

  • File:Amoeba3.png licensed with PD-self
    • 2007-03-02T15:45:04Z Oleg Alexandrov 1267x1006 (12078 Bytes) Made by myself with Matlab.
    • 2007-03-02T15:39:58Z Oleg Alexandrov 1267x1006 (12205 Bytes) Made by myself with Matlab.
    • 2007-03-02T11:10:55Z Oleg Alexandrov 122x100 (1293 Bytes) Made by myself with Matlab.
    • 2007-03-02T11:08:58Z Oleg Alexandrov 1208x1006 (27215 Bytes) Made by myself with Matlab.
    • 2007-03-02T11:04:24Z Oleg Alexandrov 1267x833 (15788 Bytes) Made by myself with Matlab.
    • 2007-03-02T11:04:05Z Oleg Alexandrov 1267x833 (15788 Bytes) Made by myself with Matlab.
    • 2007-03-02T11:01:12Z Oleg Alexandrov 1356x914 (21608 Bytes) Made by myself with Matlab.
    • 2007-03-02T10:59:51Z Oleg Alexandrov 1378x972 (18538 Bytes) Made by myself with Matlab.
    • 2007-03-02T10:48:46Z Oleg Alexandrov 1378x972 (18538 Bytes) Made by myself with Matlab.

Uploaded with derivativeFX

Captions

Add a one-line explanation of what this file represents

Éléments décrits dans ce fichier

depicts

8 August 2012

image/svg+xml

664f58e7f87f6929da77154dce1a3465f7390cd0

2,109 byte

1,258 pixel

1,584 pixel

File history

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

Date/TimeThumbnailDimensionsUserComment
current14:49, 8 August 2012Thumbnail for version as of 14:49, 8 August 20121,584 × 1,258 (2 KB)Zerodamage== {{int:filedesc}} == {{Information |Description=== |Source={{Derived from|Amoeba3.png|display=50}} |Date=2012-08-08 14:48 (UTC) |Author=*File:Amoeba3.png: Oleg Alexandrov *derivative work: [[User:{{subst:REVISIONUSER}}|...

The following page uses this file:

Global file usage

The following other wikis use this file: