jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Fractales de Newton Jeu 12 Aoû 2021 - 10:36 | |
| La méthode de Newton est un bon moyen d'obtenir des images intéressantes, d'autant plus qu'on n'a pas besoin de forts agrandissements. Le site https://beaute-fractale.monsite-orange.fr/index.html donne de très nombreux exemples. Nous allons essayer d'en reproduire quelques-uns avec FBCroco (les images ne seront pas identiques car les méthodes de coloration sont différentes). Nous partirons du programme newton.bas tel qu'il est fourni dans la version 0.33 de FBCroco. Pour chaque exemple, nous ne donnerons que les lignes qui sont à changer dans le programme original. Commençons donc avec un polynôme : - Code:
-
....................................................................... ' Parametres de base (a modifier eventuellement)
' Fonction polynome : f(z) = 5 + 12*z + 15*z^2 + 3*z^3 + 9*z^4 + 14*z^5
const p = 5 ' Degre du polynome
data 5, 0 ' Coefficients data 12, 0 data 15, 0 data 3, 0 data 9, 0 data 14, 0
const PicWidth = 600 ' Largeur de l'image .......................................................................
' Programme principal
dim Coef@(p), i%, coef_x, coef_y
for i = 0 to p read coef_x, coef_y coef(i) = cmplx(coef_x, coef_y) next i
dim x%, y%, btn% .......................................................................
' Sous-programmes ....................................................................... sub iter_sub (z@, f@, df@) ' Calcul d'une iteration
CPoly_Deriv z, coef(), f, df end_sub .......................................................................
La procédure CPoly_Deriv, introduite dans la version 0.33 de FBCroco, calcule le polynôme (f) et sa dérivée (df) au point z. Voici l'image obtenue, et un agrandisement dans la partie centrale : Sur l'image de gauche les gros points verts représentent les 5 racines du polynôme : une racine réelle (-1) et 4 racines complexes, conjuguées 2 à 2 (donc symétriques par rapport à Ox). | |
|
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Fractales de Newton Ven 13 Aoû 2021 - 17:37 | |
| Autre exemple, avec une fraction rationnelle : - Code:
-
....................................................................... ' Parametres de base (a modifier eventuellement)
' Fraction rationnelle : ' f(z) = (1 + z + z^2 + ... + z^(p-2)) / (1 + z + z^2 + ... + z^(p-1))
const p = 9
const PicWidth = 600 ' Largeur de l'image .......................................................................
' Programme principal
dim coef1@(p-2), coef2@(p-1), i%
for i = 0 to p - 2 coef1(i) = C_one coef2(i) = C_one next i
coef2(p-1) = C_one
dim x%, y%, btn% .......................................................................
' Sous-programmes .......................................................................
sub iter_sub (z@, f@, df@) ' Calcul d'une iteration
CFrac_Deriv z, coef1(), coef2(), f, df end_sub .......................................................................
Les tableaux coef1() et coef2() contiennent les coefficients du numérateur et du dénominateur. C_one est une variable prédéfinie de FBCroco, égale au nombre complexe (1,0) La procédure CFrac_Deriv calcule la fraction rationnelle (f) et sa dérivée (df) au point z Et voici le résultat : On retrouve bien les 7 racines (degré du numérateur : p - 2 = 7) dont une réelle. | |
|
jean_debord
Nombre de messages : 1266 Age : 70 Localisation : Limoges Date d'inscription : 21/09/2008
| Sujet: Re: Fractales de Newton Jeu 26 Aoû 2021 - 8:39 | |
| La fonction de Fibonacci (déjà présentée dans le topic éponyme) peut être étendue au cas des nombres complexes. Et comme elle a des racines (au moins les racines réelles pour x < 0) on peut lui appliquer la méthode de Newton. Les images obtenues sont très intéressantes. Ici l'image de base (au centre) et deux agrandissements dans les parties gauche (x < 0) et droite (x > 0) Et voici les codes à modifier dans le programme newton.bas : - Code:
-
' Parametres de base (a modifier eventuellement)
const SQR5 = sqr(5) const PHI = (1 + SQR5) / 2 ' Nombre d'or const LNPHI = log(PHI)
const PicWidth = 500 ' Largeur de l'image const PicHeight = 500 ' Hauteur de l'image
dim x0 = 0 ' Coord. X du centre dim y0 = 0 ' Coord. Y du centre dim MaxIter% = 200 ' Nb maxi d'iterations dim ZoomFact = 1 ' Facteur de zoom dim ColorFact = -3 ' Positif pour dessiner des bandes
const InsideCol = CL_NOIR ' Couleur des points non-convergents
...............................................................
sub iter_sub (z@, f@, df@) ' Calcul d'une iteration
dim p@, s@, c@
p = PHI^z s = csin(PI * z) / p c = ccos(PI * z) / p
f = (p - c) / SQR5 df = ((p + c) * LNPHI + PI * s) / SQR5 end_sub
| |
|
Contenu sponsorisé
| Sujet: Re: Fractales de Newton | |
| |
|