Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Fraktály v počítačové grafice XXIII

ggg
ggg (neregistrovaný)
28. 3. 2006 12:12 Nový

Komplexni mocniny u Newtona

celé vlákno
Diky za dalsi pekny clanek. Co me ale zajima jsou komplexni mocniny ktere tu byly zmineny. Kdyz jsem po tom trochu badal tak jsem zjistil ze vypocty pro komplexni exponenty jsou docela slozite a jejich vypocet je urcite celkem pomaly. Vzorce pro komplexni exponenty jsem nasel tady. Zajimalo by me jestli existuji nejake zjednodusujici rovnice pro urychleni vypoctu, protoze se mi ted opravdu nechce nejake si odvodit sam (jestli to je vybec mozne). Jinak jeste jednou diky za pekny serial a hodne sil v pokracovani (at je jeste pekne dlouhy :))
Pavel Tisnovsky
Pavel Tisnovsky (neregistrovaný)
28. 3. 2006 13:00 Nový

Re: Komplexni mocniny u Newtona

celé vlákno
Dobry den, mam dojem, ze napriklad v programu FractInt jsou u fraktalu zalozenych na vzorcich z->z^x+c (Mandelbrotova a Juliova mnozina) a z^c-1=0 (Newtonova mnozina) nektera zjednoduseni implementovana. Ta zjednoduseni se IMHO aplikuji jak pred rozpisem cisel Z a C ve vzorcich na slozky, tak i po tomto rozpisu (spis nez o vysokou matematiku pujde o hrani si se zavorkami a Hornerovo schema). Podivam se do zdrojovych kodu, sice to neni snadne vycist, ale po chvili hledani to snad najdu [tusim, ze se jedna o soubor formula.c].
Pavel Tišnovský aura:98
5. 4. 2006 11:05 Nový

Re: Komplexni mocniny u Newtona

celé vlákno

Dobry den,

tak jsem se dival do zdrojaku FractIntu, a vypada to, ze vypocty u Newtonovych mnozin vyssich mocnin (tj. zn-1=0) jsou tam reseny docela jednoduse. Cely vypocet je rozdelen do dvou kroku:

  1. Jedrive si vyjadri vsechny koreny daneho polynomu, coz je jednoduche, protoze koreny lezi na jednotkove kruznici a jsou po ni pravidelne rozmisteny. Jednim z korenu je hodnota 1+0i, takze se zacne od ni a provede se (n-1) kroku s rozdilem uhlu 2*Pi/n. To je ta prvni (a jednodussi cast).
  2. Potom jsou ve zdrojacich vytvoreny funkce pro nasobeni a deleni dvou komplexnich cisel. Pomoci techto funkci je vyjadren Newtonuv vztah, tj. jak f(z) a f'(z), tak i jejich podil. To neni algoritmicky tezke vytvorit, protoze derivace polynomu zn je nzn-1 a to i v oboru komplexnich cisel. Podil f(z) a f'(z) je tedy mozne take vyjadrit algoritmicky a potom uz pouzit "jen" ty nasobici a delici funkce.

Zminovane funkce vypadaji takto:

complex_mult(_CMPLX arg1,_CMPLX arg2,_CMPLX *pz)
{
   pz->x = arg1.x*arg2.x - arg1.y*arg2.y;
   pz->y = arg1.x*arg2.y+arg1.y*arg2.x;
   return(0);
}


complex_div(_CMPLX numerator,_CMPLX denominator,_CMPLX *pout)
{
   double mod;
   if((mod = modulus(denominator)) < flt_min) return(1); conjugate(&denominator); complex_mult(numerator,denominator,pout); pout->x = pout->x/mod;
   pout->y = pout->y/mod;
   return(0);
}

Zasílat nově přidané příspěvky e-mailem