Amoeba4_400.svg
Size of this PNG preview of this SVG file:
592 × 599 pixels
.
Other resolutions:
237 × 240 pixels
|
474 × 480 pixels
|
759 × 768 pixels
|
1,012 × 1,024 pixels
|
2,024 × 2,048 pixels
|
1,185 × 1,199 pixels
.
Summary
Description Amoeba4 400.svg | 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 |
Date | (UTC) |
Source | File:Amoeba4 400.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:
Vector version
. The original can be viewed here:
Amoeba4 400.png
:
. Modifications made by
Zerodamage
.
|
Licensing
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 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');
Original upload log
This image is a derivative work of the following images:
-
File:Amoeba4_400.png
licensed with PD-self
- 2007-03-09T03:59:48Z Oleg Alexandrov 1896x1917 (269569 Bytes) Made by myself with Matlab. {{PD-self}}
Uploaded with derivativeFX