Page 1 sur 1
transformer ln(8) en 3*ln(2)
Publié : sam. nov. 27, 2010 7:55 pm
par alb
Bonsoir,
Contrairement à simplifier qui transforme 4*ln(2)+3*ln(2) en ln(128), factor ou normal donne 7*ln(2).
En revanche il ne parait pas possible d'obtenir 7*ln(2) à partir de 4*ln(2)+ln(8)
Est-ce réaliste d'imaginer une suite d'instructions générales qui pour ce cas particulier renverrait 7*ln(2) ?
Autrement dit comment transformer par une méthode générale ln(8) en 3*ln(2) ?
Je suppose que la question a déjà été posée mais je n'en retrouve pas la trace.
Re: transformer ln(8) en 3*ln(2)
Publié : dim. nov. 28, 2010 8:17 am
par parisse
Pour 4*ln(2)+ln(8), tsimplify marche
Pour ln(8) en 3*ln(2), il n'y a pas de commandes automatiques (manuellement on peut faire ifactor dans l'argument du ln puis texpand).
edit-> meme manuellement ca ne marche pas parce que le 2^3 est évalué en 8. Il faudrait le quoter. tsimplify(ln('2^3')) renvoie bien 3*ln(2).
On pourrait modifier lnexpand, mais cela nécessiterait de savoir quand factoriser des entiers...
Re: transformer ln(8) en 3*ln(2)
Publié : dim. nov. 28, 2010 4:43 pm
par alb
Je proposerai aux élèves de charger ce petit programme qui leur permettra de vérifier seuls leurs simplifications de ln
Code : Tout sélectionner
Ln_entier(N):={
local L,s;
L:=ifactors(N);
s:=size(L);
return sum(L[2k+1]*ln(L[2k]),k,0,s/2-1);
}
:;
Ln(N):={
si type(N)==DOM_INT alors return Ln_entier(N);fsi;
si type(N)==DOM_RAT alors
return Ln_entier(numer(N))-Ln_entier(denom(N));sinon ln(N);
fsi;
}
:;
Ln(1024);tsimplify(ln(1024)); renvoie 10*ln(2),ln(1024)
tsimplify(5*Ln(125/(456*19))-4*Ln(490)+8*Ln(1024/405)+3/2*Ln(1024)); renvoie -10*ln(19)+76*ln(2)-37*ln(3)+3*ln(5)-8*ln(7)
alors que
tsimplify(5*ln(125/(456*19))-4*ln(490)+8*ln(1024/405)+3/2*ln(1024)); renvoie 76*ln(2)-37*ln(3)-5*ln(361)-4*ln(49)+3*ln(5)
Peut-on expliquer pourquoi 361=19^2 et 49=7^2 n'ont pas été simplifiés ?
Question sans rapport:
Est-ce que l'option Framebox de cfg est déjà opérationnelle ? non pas que ce soit urgent mais j'ai un doute sur Quit and update.
Re: transformer ln(8) en 3*ln(2)
Publié : dim. nov. 28, 2010 6:05 pm
par parisse
tsimplify détermine s'il existe des relations entre les arguments de ln en calculant le PGCD des arguments (ce qui ne pose pas les problèmes d'efficacité de la factorisation), c'est pour ça qu'on obtient ce type de résultats.
Pour framebox, c'est partiellement implémenté, mais je pense faire une mise à jour demain qui devrait améliorer la 3-d (où l'option framebox servira à faire apparaitre ou non le maillage et les valeurs). Update and quit ne marche bien que sur debian compatible (il faut alors utiliser testing pour giac), sous windows il semble que ça dépend des versions.
Re: transformer ln(8) en 3*ln(2)
Publié : dim. nov. 28, 2010 9:03 pm
par alb
Un truc qui m'échappe:
E:=ln(1024)-2*ln(16)+5/6+2*pi;
L:=simplifier(op(E));
sommet(op(op(L)[1]))=='ln'; renvoie 1 je suis
sommet(L[1])=='-'; renvoie 0 je suis

Re: transformer ln(8) en 3*ln(2)
Publié : lun. nov. 29, 2010 8:16 am
par parisse
C'est a cause du - binaire et du - unaire. Ici il faut utiliser sommet(L[1])==neg (c'est vrai qu'a l'affichage c'est trompeur).
Re: transformer ln(8) en 3*ln(2)
Publié : mer. déc. 01, 2010 6:46 pm
par alb
Une expression du type rationnel*ln(rationnel) est-elle toujours évaluée sous l'une des deux formes suivantes:
+ou-ln(rationnel)
ou bien
+ou-ln(rationnel)/(entier positif) ?
Merci pour framebox, c'est parfait.
Re: transformer ln(8) en 3*ln(2)
Publié : mer. déc. 01, 2010 7:25 pm
par parisse
alb a écrit :Une expression du type rationnel*ln(rationnel) est-elle toujours évaluée sous l'une des deux formes suivantes:
+ou-ln(rationnel)
ou bien
+ou-ln(rationnel)/(entier positif) ?
Non, pas forcément, il faut se méfier de l'affichage qui réécrit les produits. Par exemple 2/3*ln(5) devient est codé '*'(2,inv(3),ln(5))
Re: transformer ln(8) en 3*ln(2)
Publié : mer. déc. 01, 2010 7:39 pm
par alb
J'ai oublié un mot dans ma question:
Est-ce que simplify(rationnel*ln(rationnel)) etc....
Re: transformer ln(8) en 3*ln(2)
Publié : jeu. déc. 02, 2010 8:29 am
par parisse
ca en a tout l'air, mais je ne le garantis pas!