Tricraprog Épisode 3, le LOGO

Les bonnes adresses méritant quelques minutes de votre temps.

Modérateurs : Papy.G, fneck, Carl

Répondre
Avatar du membre
Mokona
Messages : 541
Enregistré le : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Tricraprog Épisode 3, le LOGO

Message par Mokona » 28 juil. 2020 15:15

Un an et quelques jours après l'épisode sur le BASIC, en voici un nouveau sur le LOGO.


__sam__
Messages : 5374
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Tricraprog Épisode 3, le LOGO

Message par __sam__ » 29 juil. 2020 00:50

Super! Je l'ai regardé en mangeant ce soir. As tu connaissance de sources autres que ce que tu montres dans la vidéo utilisant l'aspect symbolique (à la lisp) du logo ? Je pense à des trucs sympa (pour moi) comme des calculs de dérivées d'expression mathématiques (à une époque c'était mon hobby de faire ca en basic, et j'avais galéré comme pas possible), ou mieux des calculs de développement limités (idem, je faisais ca quand j'étais jeune quand les adultes pensaient que je "jouais" sur l'ordinateur(1).)
____
(1) C'est pas faux dans le fond car pour moi programmer est un jeu, mais un jeu sérieux bien plus intéressant que de battre un high-score.
Samuel.
A500 Vampire V2+ ^8^, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.

Avatar du membre
gleike
Messages : 781
Enregistré le : 16 oct. 2014 11:12
Localisation : Ludres (54710) Meurthe & Moselle

Re: Tricraprog Épisode 3, le LOGO

Message par gleike » 29 juil. 2020 10:53

Vidéo très intéressante, concept du Logo et de ses dérivés bien expliqué d'une voix claire et compréhensible.

J'essaye toujours d'obtenir et d'installer le Logo si il est disponible sur les machines que je possède,
mais je ne pousse pas la programmation trop loin.

Merci.

joaopa
Messages : 502
Enregistré le : 14 sept. 2013 12:17

Re: Tricraprog Épisode 3, le LOGO

Message par joaopa » 29 juil. 2020 22:36

Bonsoir,

quelqu'un a t-il déjà vu des sources en Z80 pour un logo? J'ai farfouillé sur le web. Je n'ai rien trouvé de probant à part un logo home-made pour calculatrice TI...

Avatar du membre
Mokona
Messages : 541
Enregistré le : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: Tricraprog Épisode 3, le LOGO

Message par Mokona » 30 juil. 2020 18:49

Merci.

Pour les développements limités, je n'ai jamais fait ça en Logo. Parser une fonction et en trouver sa dérivée est un exercice que j'ai déjà vu passer dans un bouquin... il faudrait que je retrouve.

Je n'ai pas trouvé de sources Z80 pour du Logo non plus. J'avais commencé à écrire un interpréteur Logo au début de mon étude pour bien comprendre le langage. L'idée était ensuite d'en porter une version sur Z80 et d'en faire une ROM VG5000... Bon... mon interpréteur n'étant pas terminé, je n'en suis pas là...

__sam__
Messages : 5374
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Tricraprog Épisode 3, le LOGO

Message par __sam__ » 30 juil. 2020 23:50

Les développements limités c'est très facile à partir du moment ou l'on est capable d'évaluer une expression symbolique, sauf qu'au lieu de l'évaluer avec des nombres "simple", on les évalue avec des trucs "genre polynômes (sauf que le produit n'augmente pas leur degré, tout est mangé par le O(x^n)... c'est une sorte de "modulo"). Ca se code super bien en fait, mais ca ne couvre pas toutes les expressions imaginables si on tombe sur une expression dont on a pas encodé l'évaluation.

L'autre possibilité et de calculer les dérivées symboliques successives, puis de les évaluer au point qu'on souhaite (0 en général), et utiliser le développement de Taylor. Ca doit donner le même résultat, mais à coup sur ici (on sait dire quand il n'y en a vraiment pas, et pas parce qu'il nous manque une règle d'évaluation).
Samuel.
A500 Vampire V2+ ^8^, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.

Avatar du membre
Carl
Modérateur
Messages : 11217
Enregistré le : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Tricraprog Épisode 3, le LOGO

Message par Carl » 31 juil. 2020 23:25

Sympa cette épisode Logo, Merci Mokona !

Si quelqu'un à besoin de doc sur le sujet, j'ai quelques bouquins PDF de dispo : (1 Go environ).
log1.jpg
log1.jpg (536.15 Kio) Vu 529 fois
log2.jpg
log2.jpg (533.05 Kio) Vu 529 fois
log3.jpg
log3.jpg (452.14 Kio) Vu 529 fois
Carl

Asic512
Messages : 59
Enregistré le : 30 juin 2019 21:13

Re: Tricraprog Épisode 3, le LOGO

Message par Asic512 » 01 août 2020 00:09

Un exemple comme le développement à l'ordre 2 en 0 de x^3sin(1/x) doit laisser de telles méthodes muettes non ?
Asic512

__sam__
Messages : 5374
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Tricraprog Épisode 3, le LOGO

Message par __sam__ » 01 août 2020 00:43

Ben oui, parce que le développement limité n'existe pas en 0 pour cette fonction (la dérivée seconde -4 cos(1/x) + (-1 + 6 x^2) sin(1/x)/x, n'a pas de limite en 0).
Samuel.
A500 Vampire V2+ ^8^, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.

Asic512
Messages : 59
Enregistré le : 30 juin 2019 21:13

Re: Tricraprog Épisode 3, le LOGO

Message par Asic512 » 01 août 2020 10:13

En fait, x^3sin(1/x) est un O(x^3) donc un o(x^2) : le développement limité existe donc à l'ordre 2 en 0. Il est vrai par contre que la dérivée seconde n'existe pas en 0. Tous les développements limités ne sont donc pas de Taylor ... C'est la revanche de l'homme sur la machine :wink: .
Asic512

__sam__
Messages : 5374
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Tricraprog Épisode 3, le LOGO

Message par __sam__ » 01 août 2020 13:59

Et oui en effet puisque sin() est borné, x^3*sin()/x^2 -> 0 en 0, donc o(x^2), son D.L. est 0. Il fallait revenir à la définition.. mais tiens c'est étrange, mon vieux programme me donne:
dcmoto02.png
dcmoto02.png (4.98 Kio) Vu 487 fois
Comment c'est possible? je pense que c'est un bug, car le calcul du D.L. de 1/x en 0 me retourne 0 au lieu d'erreur dans la division des polynômes :lol:
Samuel.
A500 Vampire V2+ ^8^, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.

Avatar du membre
pascalien
Messages : 197
Enregistré le : 21 janv. 2019 23:40
Localisation : 93200 ST DENIS
Contact :

Re: Tricraprog Épisode 3, le LOGO

Message par pascalien » 04 août 2020 20:41

En effet je ne connaissais pas en détail le LOGO.

Il y avait sur le pascal apple2 une unité turtle.

Sinon, de mémoire, dans feu microsystèmes, il y a avait eu un article sur lisp et le calcul symbolique.
Je m'en était servi de base pour mes petits bidouillages lisp
http://franck-pissotte.fr/perso/logiciels.htm (programme symbolisp.7z)

Asic512
Messages : 59
Enregistré le : 30 juin 2019 21:13

Re: Tricraprog Épisode 3, le LOGO

Message par Asic512 » 04 août 2020 22:01

@sam : il n'est pas difficile d'obtenir le développement asymptotique en 0 des fractions rationnelles. On se ramène (quitte à multiplier le numérateur par une puissance de x assez grande) au cas où le degré du numérateur est plus grand que celui du dénominateur et on peut faire une division selon "les puissances croissantes" du premier par le second (il n'y a pas de "division par zéro").

Comment obtenais-tu les DL dans ton programme ? Tu analysais l'expression fournie et tu remplaçais chaque fonction classique sin/exp/cos par leur DL avec les règles usuelles de composition et multiplication ?
Asic512

__sam__
Messages : 5374
Enregistré le : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Tricraprog Épisode 3, le LOGO

Message par __sam__ » 05 août 2020 01:40

Oui c'est ca.. l'algo connait les D.L. des fonctions traditionnelles (sin(x), cos(x), tan(x), exp(x), sqrt(1+x), ln(1+x), ...), puis les compose (en faisant le produit, l'addition, les compositions) lors du parsing de l'expression. D'une certaine façon cela revient à évaluer l'expression symbolique non pas avec des nombres mais avec des polynôme modulo un degré fixé.

L'exercice est assez tordu en basic sans variables locales (à l'époque je ne connaissais que ca), mais trivial et assez jouissif à coder avec les langages polymorphiques (ce que ferais de nos jours).

Le programme basic affiche une erreur quand, lors de la composition F o G, le polynôme de G commence par un terme constant. En fait on pourrait être plus fin et voir que pour certaines fonctions F on peut exprimer le dev limité autour de n'importe quelle valeur a non nulle (sqrt(a+x) = sqrt(a)*sqrt(1 + x/sqrt(a)), ln(a+x) = ln(a) + ln(1 + x/a), exp(a+x)=exp(a)*exp(x)), on pourrait pousser le calcul plus loin. Mais bon j'étais jeune et j'avais faim votre honneur ;) [ah non c'est la mauvaise excuse ;) ]

Si le logo peut manipuler les listes et les floats aussi facilement que ne le ferait un lisp, je me replongerait bien dans l'exercice.
Samuel.
A500 Vampire V2+ ^8^, A1200(030@50mhz/fpu/64mb/cf 8go),
GVP530 (MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.

Répondre