Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
Menu
Calculatrices
Graph 35 à 100 (CFX)
Graph 25/25+ (Pro) (fx-7400)
Graph 35+USB/75/85/95 (SD)
Graph 100/100+ (AFX)
ClassPad 300/330
Fx-CG 10/20
Fx-CP 400
Graph 90+E
Liens
¤ Vous cherchez une fonction ?
Cours/E-activities >> Graph 90+E >> Maths >> Ensemble de Mandelbrot
Ensemble de Mandelbrot
Version : 1.0 Taille : 1416 octets Ajouté le : 2022-06-17 19:11 Modifié le : 2022-06-19 12:30
Auteur et posteur :
ZecterHors ligneMembrePoints: 155 Défis: 0 Message
Planète Casio - Cours Casio de maths - Ensemble de Mandelbrot - zecter - Calculatrices
Nombre de visites sur cette page : 279
Score au progrank : 0
Pas encore de note !
Vous devez être connecté(e) pour noter (inscription).
36 téléchargements | Soumettre un test


Description en français :

Un programme Python que j'ai créé pour visualiser l'ensemble de Mandelbrot sur calculatrice, basé sur le (magnifique) tutoriel de The Coding Train : https://www.youtube.com/watch?v=6z7GQewK-Ks

J'y utilise une fonction de mon module Color Converter Python, donc vous en aurez besoin dans le même dossier.

Pour modifier la taille de l'écran de visualisation (je vous conseille 60x60 pour 2 minutes de chargement, ou bien 100x100 pour les détails mais 5 minutes de chargement , l'image que j'ai mise est en 150x150), la taille ou l'emplacement de la "simulation" (j'ai pas trouvé de mot plus adéquat, ou alors zoom), ou le nombre d'itérations maximum (100 c'est bien), modifiez les valeurs des variables juste après les définitions de fonctions dans le fichier.

English description:

A Python program that i created to display the Mandelbrot Set on calculator, based on the (excellent) tutorial from The Coding Train : https://www.youtube.com/watch?v=6z7GQewK-Ks

I use a function in it for rendering from my module Color Converter Python, so you will need it in the same directory.

To dchange the size of the visualization screen (I advise 60x60 for 2-3 minutes of loading, or 100x100 for the details but with 5-10 minutes of loading , the image I put is 150x150), the size or the location of the "simulation" (I didn't find any better word, or maybe "zoom"), or the number of maximum iterations (100 is good), you need to change the variables just after the definitions of functions in the file.


Commentaires :


LephenixnoirHors ligneAdministrateurPoints: 22621 Défis: 149 Message
Posté le 17-06-2022 à 21:02 | #
Joli ! Y'a les couleurs et tout. J'ai eu quelques soucis (déjà Planète Casio renomme les scripts, c'est con, du coup Colorcon.pycolrconv.py, et ensuite il manquait un from casioplot import *), mais rien de majeur.

J'aurais bien aimé qu'on puisse le faire plus rapide, mais je vois pas d'optimisation. A part précalculer 2**2 et simplifier les carrés en multiplications (x**2x*x), mais je doute qu'on gagne grand chose
RedcmdHors ligneMembrePoints: 337 Défis: 7 Message
Posté le 17-06-2022 à 23:40 | #
(idk valid js syntax)

Could try something like this
It saves 2 squares and 1 mult
for (i = 0; i < maxi; i++) {
    x2 = x*x
    y2 = y*y
    if x2+y2 > 4:
        break
    x = ((x*y)<<1)+y
    y = x2-y2+x
}


Lephenixnoir a écrit :
simplifier les carrés en multiplications (x**2 → x*x)

I would have thought the other way around
heres a version that is faster only if squaring is must faster multiplying
It replaces a mult with a square. but adds on additional add and sub
for (i = 0; i < maxi; i++) {
    x2 = x * x;
    y2 = y * y;
    x2y2 = x2 + y2;
    if (x2y2 > 4)
        break;
    xy = x + y;
    x = xy * xy - x2y2 + sy;
    zr = x2 - y2 + sx;
}
ZecterHors ligneMembrePoints: 155 Défis: 0 Message
Posté le 18-06-2022 à 11:43 | #
Merci pour ces retours ! Je serais toujours étonné de voir des commu aussi actives !

Merci Lephe pour ces problèmes, je viens de découvrir le fait que planet casio renomme les scripts (j'avais oublié l'import mais c'est parce que je me suis fait une librairie de dessin 2D genre lignes, carrés, ronds, ... qui avait déjà l'import dedans mais je l'ai enlevée parce que elle ne servait plus à rien).

Lephenixnoir a écrit :
J'aurais bien aimé qu'on puisse le faire plus rapide, mais je vois pas d'optimisation. A part précalculer 2**2 et simplifier les carrés en multiplications (x**2 → x*x), mais je doute qu'on gagne grand chose

Oui j'ai laissé le 2**2 mais on peut le remplacer par 4, mais sinon oui c'est difficile à optimiser, sauf si j'ajoute des add-ins de performances.

Thanks Redcmd ! I will try your ideas later (sry I don't have time right now), thank you for your suggestions !

Redcmd a écrit :
(idk valid js syntax)

I think I can read your code, it's not that complicated. Although on your line
x = ((x*y)<<1)+y
is that bit shifting ? I've already seen it but idk how to use this if you could help me.
RedcmdHors ligneMembrePoints: 337 Défis: 7 Message
Posté le 18-06-2022 à 11:55 | #
Zecter a écrit :
is that bit shifting?

yes it is bit shifting
x << 1 is the same as x * 2, but *should* be much faster
x << 2 == x * 4
x << 3 == x * 8
x << 4 == x * 16
x << 5 == x * 32

Bit shifting however only works on ints, not floats
I'm not sure which js uses
LephenixnoirHors ligneAdministrateurPoints: 22621 Défis: 149 Message
Posté le 18-06-2022 à 11:58 | #
The Mandelbrot set is obviously float-based, so bit shifts won't work

(Also this is Python! But JS only uses double except for arbitrary-precision ints that were introduced later)
ZecterHors ligneMembrePoints: 155 Défis: 0 Message
Posté le 18-06-2022 à 12:07 | #
Oh ok @Redcmd thanks for that ! Although as @Lephenixnoir said :
Lephenixnoir a écrit :
(Also this is Python! But JS only uses double except for arbitrary-precision ints that were introduced later)

This is Python and floats. But otherwise thanks !

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 82 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd