Eurax

Chciałbym Zaznaczyć
Na swoim Blogu umieszczam nie tylko swoje artykuły.Przy innych publikacjach umieszczę źródło.

Fraktale - Benoit Mandelbrot

Benoît B. Mandelbrot (ur. 20 listopada 1924, w Warszawie) – francuski matematyk, pochodzenia polskiego.

W latach 1949-1957 mieszkał we Francji. Pracował w Centre national de la recherche scientifique w Paryżu, a następnie na Uniwersytecie w Lille. Od 1957 roku pracował w USA dla firmy IBM, miał zatem dostęp do najnowocześniejszych (na owe czasy) komputerów. Mandelbrot dotarł do prac dwóch francuskich matematyków: Gastona Julii i Pierre'a Fatou, którzy badali zachowanie się iteracji pewnych funkcji zespolonych. Mandelbrot wykorzystał do tego celu komputery. Uzyskane przez niego wykresy przerosły najśmielsze oczekiwania. Otrzymane rysunki miały fantastyczne kształty. Niezależnie od powiększenia ukazywały coraz to nowe szczegóły. Były to fraktale.

Mandelbrot w 1993 r. został uhonorowany Nagrodą Wolfa w fizyce, a w 2003 r. został wyróżniony prestiżową Nagrodą Japońską.

Fraktale

Przykłady fraktali, będących tematem prac naukowych Mandelbrota.



Przykład - Implementacja w Javie



import java.awt.*;
import java.applet.*;

public class FracApp extends Applet {
public void init() {
setBackground(new Color(255,255,255));
}


public int checkC(double reC,double imC) {
double reZ=0,imZ=0,reZ_minus1=0,imZ_minus1=0;
int 0;
for (i=0;i<30;i++) {
imZ=2*reZ_minus1*imZ_minus1+imC;
reZ=reZ_minus1*reZ_minus1-imZ_minus1*imZ_minus1+reC;
if (reZ*reZ+imZ*imZ>4) return i;
reZ_minus1=reZ;
imZ_minus1=imZ;
}
return i;
}


public void paint (Graphics g) {
double reC, imC, zelle=0.00625;
int x,y;
Color colAppleman = new Color(0,129,190);

imC=-1.1;
for (y=0;y<350;y++) {
reC=-2.1;
for (x=0;x<440;x++) {
if(checkC(reC,imC)==30) {
g.setColor(colAppleman);
g.drawLine(x,y,x,y);
}
reC=reC+zelle;
}
imC=imC+zelle;
}
}
}


Fraktale : Sierpinski ( Implementacja Java )

Implementacja Fraktala - Trójkąt Sierpińskiego w Javie.

Sierpiński Wacław, urodził się w 1882, zmarł w 1969, matematyk, jeden z twórców warszawskiej szkoły matematycznej, autor licznych prac z dziedziny teorii mnogości, teorii liczb, teorii funkcji rzeczywistych i topologii. Studiował na uniwersytecie w Warszawie, a następnie podjął pracę w szkolnictwie średnim. Przyłączywszy się do strajku szkolnego w 1905, porzucił tę pracę i wyjechał do Krakowa, gdzie się doktoryzował. Od 1910 był profesorem na uniwersytecie we Lwowie. Prowadzony tam przez Sierpińskiego wykład teorii mnogości był pierwszym w świecie systematycznym wykładem tej teorii. W czasie I wojny światowej Sierpiński był internowany w Rosji przez władze carskie. W 1918 powrócił do Lwowa, a od nowego roku akademickiego 1918/19 objął katedrę matematyki w odrodzonym po latach niewoli Uniwersytecie Warszawskim (UW). W 1920—51 Sierpiński wraz z S. Mazurkiewiczem (do 1945), następnie z K. Kuratowskim pełnił funkcję redaktora naczelnego polskiego czasopisma matematycznego „Fundamenta Mathematicae". Był inicjatorem Pierwszego Kongresu Matematyków Krajów Słowiańskich, który odbył się w 1929 w Warszawie; reprezentował matematykę polską na sześciu kongresach międzynarodowych. W 1931 — 51 był prezesem Towarzystwa Naukowego Warszawskiego. W okresie okupacji hitlerowskiej wykładał na tajnym uniwersytecie, nie przerywając pracy naukowej. W 1945, po krótkim pobycie na Uniwersytecie Jagiellońskim, powrócił na UW i kontynuował działalność naukową oraz dydaktyczną. W 1958—69 był redaktorem naczelnym wznowionego czasopisma polskiego „Acta Arithmetica", jedynego wówczas na świecie czasopisma poświęconego głównie teorii liczb. W czasie niezwykle aktywnego życia Sierpiński wykładał na 47 uniwersytetach świata i wykształcił kilka pokoleń matematyków. Jego imieniem nazwano jedną z nagród Polskiego Towarzystwa Matematycznego. Dorobek naukowy Sierpińskiego obejmuje około 900 publikacji, w tym kilkadziesiąt książek, m. in. monografie, podręczniki akademickie, podręczniki szkolne, książeczki popularnonaukowe (kilka ważnych dzieł ukazało się tylko w językach obcych). Pierwsze prace Sierpińskiego dotyczyły teorii liczb. Później (1909) skierował Sierpiński zainteresowania ku teorii mnogości, przyczyniając się do przekształcenia tej dyscypliny matematycznej w usystematyzowaną teorię. Zajmował się głównie aksjomatem wyboru, hipotezą continuum, a także arytmetyką liczb kardynalnych i liczb porządkowych. Niektóre prace Sierpińskiego były poświęcone zagadnieniu przystawania przez rozkład i rozkładom paradoksalnym. W topologii znana jest krzywa Sierpińskiego, zwana także -dywanem Sierpińskiego. Wyniki Sierpińskiego w zakresie funkcji rzeczywistych dotyczą m. in. szeregów funkcyjnych i różniczkowalności funkcji. Sierpiński jest autorem takich książek, jak: Teoria liczb niewymiernych (1910), Teoria liczb (1914), Zarys teorii mnogości, część l Liczby pozaskończone (1923), część 2 Topologia ogólna (1928), Wstęp do teorii mnogości i topologii (1930), Wstęp do teorii funkcji zmiennej rzeczywistej (1932), Wstęp do teorii liczb (1933), Przekroje. Wstęp do teorii liczb niewymiernych (1934), Zasady algebry wyższej (1946), Trójkąty pitagorejskie (1954), Arytmetyka teoretyczna (1955), O rozwiązywaniu równań w liczbach całkowitych (1956), Czym się zajmuje teoria liczb (1957), O rozkładach liczb wymiernych na ułamki proste (1957), O stu prostych, ale trudnych zagadnieniach arytmetyki, z pogranicza geometrii i arytmetyki (1959), Teoria liczb (część 2 1959), Co wiemy, a czego nie wiem v o liczbach pierwszych (1961), Liczby trójkątne (1962), 200 zadań z elementarnej teorii liczb (1964), O teorii mnogości (1964).

Implementacja w Javie.











import java.applet.*;
import java.awt.*;

public class Sierpinski extends Applet {

Graphics g;
Point a1,b1,c1, a2,b2,c2, a3,b3,c3;

int level = 0;

public void init() {
setBackground(new Color(255,255,255));
}

public boolean mouseDown(Event ev, int x, int y) {
if (!ev.metaDown()) level += 1;
else if (level>0) level -= 1;
repaint();
return true;
}


public void paint(Graphics g) {


int xCoords[] = {10, 390, 200};
int yCoords[] = {390, 390, 10};
g.drawPolygon(xCoords, yCoords, 3);

drawTriangle(g, new Point(10,390),new Point(390,390),new Point(200,10), level);
}


public void drawTriangle(Graphics g, Point a, Point b, Point c, int level) {

if (level==0) return;

level -= 1;

int xCoords[] = {c.x, (c.x+b.x)/2, (a.x+c.x)/2};
int yCoords[] = {b.y, (c.y+a.y)/2, (c.y+a.y)/2};

g.drawPolygon(xCoords, yCoords, 3);


a1 = a;
b1 = new Point(c.x, b.y);
c1 = new Point((a.x+c.x)/2, (c.y+a.y)/2);
drawTriangle(g, a1, b1, c1, level);

a2 = new Point(c.x, b.y);
b2 = b;
c2 = new Point((c.x+b.x)/2, (c.y+a.y)/2);
drawTriangle(g, a2, b2, c2, level);

a3 = new Point((a.x+c.x)/2, (c.y+a.y)/2);
b3 = new Point((c.x+b.x)/2, (c.y+a.y)/2);
c3 = c;
drawTriangle(g, a3, b3, c3, level);
}
}

1001 - Liczba Szeherezady

Liczba Szeherezady (1001) widnieje w tytule nieśmiertelnych bajek "Z tysiąca i jednej nocy". Choć nie jest ona tak użyteczna, jak np. liczba π, to jednak z punktu widzenia matematyki jest nie mniej ciekawa. Posiada ona bowiem kilka bardzo interesujących własności.

Jedną z tych własności jest jej rozkład na czynniki pierwsze. Liczba Szeherezady jest bowiem iloczynem trzech kolejnych liczb pierwszych.

7 x 11 x 13 = 1001

Drugą ciekawą własnością Liczby Szeherezady jest fakt, że jest ona najmniejszą czterocyfrową liczbą naturalną, którą można zapisać w postaci sumy sześcianów dwóch liczb naturalnych:

1001 = 103 + 13

Jeśli założymy, że rok składa się z 52 tygodni, to dojdziemy do wniosku, że 1001 nocy to dokładnie:

1 + 1 + 1/2 + 1/4 roku

Niby nic takiego, jednak część tej sumy jest fragmentem początkowym bardzo często spotykanego w rachunkach szeregu:

S = 1 + 1/2 + 1/4 + 1/8 + ...

Kolejną interesującą własność tej liczby odkryjemy przy próbie pomnożenia jej przez dowolną liczbę trzycyfrową. Odkryjemy wówczas, że wynikiem tego mnożenia jest zapisana dwukrotnie dana liczba trzycyfrowa.

124 x 1001 = 124124
372 x 1001 = 372372

Python - Wprowadzenie Do Liczb Rzymskich


Nie tak dawno pisałem na temat zapisu liczb w notacji rzymskiej oraz zadań testowych w Javie .

Dziś to samo zadanie ale w Pythonie.


def int2roman(number):
numerals = { 1 : "I", 4 : "IV", 5 : "V", 9 : "IX", 10 : "X", 40 : "XL",
50 : "L", 90 : "XC", 100 : "C", 400 : "CD", 500 : "D", 900 : "CM", 1000 : "M" }
result = ""
for value, numeral in sorted(numerals.items(), reverse=True):
while number >= value:
result += numeral
number -= value

return resultprint int2roman(input("Enter an integer (1 to 4999): ")


Rezultat wykonania programu:

Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)]
Type "help", "copyright", "credits" or "license" for more information.
>>>
Evaluating romantoint.py
Enter an integer (1 to 4999): 1967
MCMLXVII
>>>

Chyba nie muszę komentować program napisany w Javie to 176 linii , a w Pythonie 10.

Źródła.