Tricraprog Épisode 3, le LOGO

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

Modérateurs : Papy.G, fneck, Carl

Répondre
Avatar de l’utilisateur
Mokona
Messages : 1036
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Tricraprog Épisode 3, le LOGO

Message par Mokona »

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

__sam__
Messages : 7909
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Tricraprog Épisode 3, le LOGO

Message par __sam__ »

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),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
gleike
Messages : 1340
Inscription : 16 oct. 2014 11:12
Localisation : Ludres (54710) Meurthe & Moselle

Re: Tricraprog Épisode 3, le LOGO

Message par gleike »

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 : 512
Inscription : 14 sept. 2013 12:17

Re: Tricraprog Épisode 3, le LOGO

Message par joaopa »

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 de l’utilisateur
Mokona
Messages : 1036
Inscription : 17 déc. 2016 22:01
Localisation : Nord Est des Yvelines
Contact :

Re: Tricraprog Épisode 3, le LOGO

Message par Mokona »

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 : 7909
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Tricraprog Épisode 3, le LOGO

Message par __sam__ »

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),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
Carl
Modérateur
Messages : 13232
Inscription : 08 avr. 2007 13:21
Localisation : http://www.doledujura.fr
Contact :

Re: Tricraprog Épisode 3, le LOGO

Message par Carl »

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) Consulté 8097 fois
log2.jpg
log2.jpg (533.05 Kio) Consulté 8097 fois
log3.jpg
log3.jpg (452.14 Kio) Consulté 8097 fois
Carl
Asic512
Messages : 128
Inscription : 30 juin 2019 21:13

Re: Tricraprog Épisode 3, le LOGO

Message par Asic512 »

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 : 7909
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Tricraprog Épisode 3, le LOGO

Message par __sam__ »

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),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Asic512
Messages : 128
Inscription : 30 juin 2019 21:13

Re: Tricraprog Épisode 3, le LOGO

Message par Asic512 »

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 : 7909
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Tricraprog Épisode 3, le LOGO

Message par __sam__ »

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) Consulté 8055 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),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Avatar de l’utilisateur
pascalien
Messages : 959
Inscription : 21 janv. 2019 23:40
Localisation : 93200 ST DENIS
Contact :

Re: Tricraprog Épisode 3, le LOGO

Message par pascalien »

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 : 128
Inscription : 30 juin 2019 21:13

Re: Tricraprog Épisode 3, le LOGO

Message par Asic512 »

@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 : 7909
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Tricraprog Épisode 3, le LOGO

Message par __sam__ »

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),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Répondre