File:Amoeba2.svg

From testwiki
Jump to navigation Jump to search
Original file (SVG file, nominally 940 × 904 pixels, file size: 1 KB)

This file is from Wikimedia Commons and may be used by other projects. The description on its file description page there is shown below.

Summary

Description
English: The amoeba of
Date
Source Own work based on: Amoeba2.png by Oleg Alexandrov
Author
Original:
Vector:
SVG development
InfoField
 The source code of this SVG is invalid due to 2 errors.
 This trigonometry was created with a text editor.
This trigonometry is a retouched picture, which means that it has been digitally altered from its original version. Modifications: Vectorization. The original can be viewed here: Amoeba2.png. Modifications made by Zerodamage.

Licensing

Zerodamage, the copyright holder of this work, hereby publishes it under the following license:
w:en:Creative Commons
attribution
This file is licensed under the Creative Commons Attribution 3.0 Unported license.
Attribution:
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.

C++ code

#include <iostream>
#include <fstream>
#include <cmath>
#include <complex>
using namespace std;

double small = 1e-14;
double mylog (double);
int main(){

  double A=-5, B=5;
  int N=1000;

  double h= (B-A)/(N-1);
  double theta0 = 2*M_PI/(N-1.0);

  ofstream mfile ("data.txt");

  for (int i=0 ; i < N ; i++){
    double r = exp(A+i*h);

    for (int j=0 ; j < N ; j++){
      double theta = j*theta0;

      complex<double> z2 = polar(r, theta);
      complex<double> root = sqrt(25.0*z2*z2-12.0*(z2*z2*z2+1.0));
      complex<double> z11 = (-5.0*z2+root)/6.0;
      complex<double> z12 = (-5.0*z2-root)/6.0;

      double a1 = mylog(abs(z11));
      double a2 = mylog(abs(z12));
      double b  = mylog(abs(z2));

      mfile << a1  << ' ' << b << endl;
      mfile << a2  << ' ' << b << endl;
    }
  }
  mfile.close();

  return 0;
}
double mylog (double x){

  if (x< 0){
    cerr << "Error in log, negative x!" << endl;
    exit(0);
  }

  if (x < small){
    return log (small);
  }

  return log (x);

}

Matlab code which reads the data output by the C++ code and graphs it

A=load('data.txt');

plot(A(:, 1), A(:, 2), '.');
axis equal; axis off;

axis([-4 6 -5 5])
saveas(gcf, 'amoeba2.eps', 'psc2');

Original upload log

This image is a derivative work of the following images:

Uploaded with derivativeFX

Captions

Add a one-line explanation of what this file represents

Items portrayed in this file

depicts

8 August 2012

image/svg+xml

54a4d9ac42c16b8ec9be6add4f48da23f8dc62f3

1,293 byte

904 pixel

940 pixel

File history

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

Date/TimeThumbnailDimensionsUserComment
current15:49, 8 August 2012Thumbnail for version as of 15:49, 8 August 2012940 × 904 (1 KB)wikimediacommons>Zerodamage== {{int:filedesc}} == {{Information |Description=== |Source={{Derived from|Amoeba2.png|display=50}} |Date=2012-08-08 14:47 (UTC) |Author=*File:Amoeba2.png: Oleg Alexandrov *derivative work: [[User:{{subst:REVISIONUSER}}|...

The following page uses this file: