Rozmiar pierwotny(1896 × 1917 pikseli, rozmiar pliku: 263 KB, typ MIME: image/png)

Opis

Opis The amoeba of P(z, w)=50 z3 +83 z2 w+24 z w2 +w3+392 z2+414 z w+50 w2 -28 z +59 w-100
Data
Źródło Praca własna
Autor User:Oleg Alexandrov
Ta ilustracja ma także wersję wektorową („SVG”).
Zaleca się wykorzystywanie w galeriach dostępnej wersji wektorowej zamiast obecnej.

File:Amoeba4 400.png → File:Amoeba4 400.svg

Więcej o grafice wektorowej przeczytasz w artykule Przenoszenie grafik Commons do formatu SVG.
Dostępna jest także informacja o obsłudze grafik SVG przez MediaWiki.

W innych językach
Alemannisch  Bahasa Indonesia  Bahasa Melayu  British English  català  čeština  dansk  Deutsch  eesti  English  español  Esperanto  euskara  français  Frysk  galego  hrvatski  Ido  italiano  lietuvių  magyar  Nederlands  norsk bokmål  norsk nynorsk  occitan  Plattdüütsch  polski  português  português do Brasil  română  Scots  sicilianu  slovenčina  slovenščina  suomi  svenska  Tiếng Việt  Türkçe  vèneto  Ελληνικά  беларуская (тарашкевіца)  български  македонски  нохчийн  русский  српски / srpski  татарча/tatarça  українська  ქართული  հայերեն  বাংলা  தமிழ்  മലയാളം  ไทย  한국어  日本語  简体中文  繁體中文  עברית  العربية  فارسی  +/−
Nowa grafika

Licencja

Public domain Ja, właściciel praw autorskich do tej pracy, udostępniam ją jako własność publiczną. Dotyczy to całego świata.
W niektórych krajach może nie być to prawnie możliwe, jeśli tak, to:
Zapewniam każdemu prawo do użycia tej pracy w dowolnym celu, bez żadnych ograniczeń, chyba że te ograniczenia są wymagane przez prawo.

Source code (MATLAB)

% find the amoeba of the polynomial
% p(z, w)=50 z^3+83 z^2 w+24 z w^2+w^3+392 z^2+414 z w+50 w^2-28 z +59 w-100
% See http://en.wikipedia.org/wiki/Amoeba_(mathematics).

function main()

   figure(3); clf; hold on;
   axis equal; axis off;
   axis([-4.5, 5, -3.5, 6]); 
   fs = 20; set(gca, 'fontsize', fs);
   ii=sqrt(-1);
   tiny = 100*eps;
   
   Ntheta = 500; % for Ntheta=500 the code will run very slowly, but will get a good resolution
   NR=      Ntheta; 

   % R is a vector of numbers, exponentiall distributed
   A=-5; B=5;
   LogR  = linspace(A, B, NR);
   R     = exp(LogR);

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

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

   % play around with these numbers to get various amoebas
   b1=1;  c1=1; 
   b2=3;  c2=15;
   b3=20; c3=b3/5; 
   d=-80; e=d/4;
   f=0; g=0;
   h=20; k=30; l=60;
   m=0; n = -10; p=0; q=0;
   
%  Draw the 2D figure as union of horizontal slices and then union of vertical slices.
%  The resulting picture achieves much higher resolution than any of the two individually.
   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);

%                         write p(z, w) as a polynomial in w with coefficients polynomials in z 
%                         first comes the coeff of the highest power of w, then of the lower one, etc.
			   Coeffs=[1+m,
				   c1+c2+c3+b1*z+b2*z+b3*z+k+p*z,
				   e+g+(c1+b1*z)*(c2+b2*z)+(c1+c2+b1*z+b2*z)*(c3+b3*z)+l*z+q*z^2,
				   d+f*z+(c3+b3*z)*(e+(c1+b1*z)*(c2+b2*z))+h*z^2+n*z^3];

			else
%                          write p(z, w) as a polynomial in z with coefficients polynomials in w 		
			   w=r*exp(ii*theta);
			   Coeffs=[b1*b2*b3+n,
				   h+b1*b3*(c2+w)+b2*(b3*(c1+w)+b1*(c3+w))+q*w,
				   (b2*c1+b1*c2)*c3+b3*(c1*c2+e)+f+(b1*c2+b3*(c1+c2)+b1*c3+b2*(c1+c3)+l)*w+...
				   (b1+b2+b3)*w^2+p*w^2,
				   d+c3*(c1*c2+e)+(c1*c2+(c1+c2)*c3+e+g)*w+(c1+c2+c3+k)*w^2+w^3+m*w^3];
			end
			
%                       find the roots of the polynomial with given coefficients
			Roots = roots(Coeffs);
			
%                       log |root|. Use max() to avoid log 0.
			Rho((degree*(count_t-1)+1):(degree*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, sprintf('amoeba4_%d.eps', NR), 'psc2');

Podpisy

Dodaj jednolinijkowe objaśnienie tego, co ten plik pokazuje

Obiekty przedstawione na tym zdjęciu

przedstawia

image/png

58973343fec280e75a3e896a225f156f45a7741c

269 569 bajt

1917 piksel

1896 piksel

Historia pliku

Kliknij na datę/czas, aby zobaczyć, jak plik wyglądał w tym czasie.

Data i czasMiniaturaWymiaryUżytkownikOpis
aktualny05:59, 9 mar 2007Miniatura wersji z 05:59, 9 mar 20071896 × 1917 (263 KB)Oleg AlexandrovMade by myself with Matlab. {{PD-self}}

Poniższa strona korzysta z tego pliku:

Globalne wykorzystanie pliku

Ten plik jest wykorzystywany także w innych projektach wiki: