a negatif, b sous la forme p/(2q+1), avec p et q entiers positifs
BifaceMcLeOD
BENB a écrit a écrit :
oui mais a^x n'a de sens que si x est entier ou a positif...
de meme que 0^0 n'a pas de sens...
Pas tout à fait exact : (-1)^n a du sens...
En fait, si je me souviens bien, a^b est défini dans l'ensemble des réels si l'une des conditions suivantes est respectée :
- a > 0, b réel.
- a = 0, b != 0.
- a entier strictement négatif, et b entier positif ou nul.
tgrx
Bah si la fonction ln existe, c'est tranquille, pas de souci ;)
Je@nb
Merci mais en tout cas ça marche
function puis(n,x : real) : real;
begin puis:=exp(x*ln(n));
end;
Par cotnre je ne sais pas mais la fonction lnexiste et je trouve juste
[edit]--Message édité par Je@nb--[/edit]
BENB
0^0 n'a absolument aucun sens mathematiquement parlant :
0^x = 0 x<>0 x^0 = 1 x<>0
ensuite a^x = (1/a)^(-x) donc peu importe que x soit >0 ou < 0...
par contre si x n'est pas entier a doit etre positif ou alors a verifier a cas par cas : si x=1/3 c'est une racine cubique...
mais c'est toujours discutable... car en fait il faut passer par des complexes et alors il y a plusieurs solutions...
wouatouwouatou
dun pt de vue Math, 0^0 c tres sensé, tout kom a^x ou x<0.. non ?
Mon nivo de math est tres faible.. alors... :D
BENB
BifaceMcLeOD a écrit a écrit :
Ah, au fait, Je@nb, il y a une petite contrainte dans la formule que tgrx t'a donnée, et que tu découvriras quand tu verras les fonctions logarithmes en cours : ces fonctions ne sont définies qu'entre zéro (exclu) et plus l'infini. La formule de calcul de a^x ne marche donc pas quand a est négatif...
oui mais a^x n'a de sens que si x est entier ou a positif...
de meme que 0^0 n'a pas de sens...
mystereetbouledegomme
:D Z avais taison le return n'existe pas en Pascal! J'avais pas vu que le post avec Power:=... etait de toi! :p :D
BifaceMcLeOD
Le mot-clé "returns" non plus n'existe pas en Pascal. ;)
Et effectivement, c'était de l'Ada. :crazy: :D
Tu remarqueras quand même la première implémentation que j'ai donnée fait bien "Power := ...".
mystereetbouledegomme
BifaceMcLeOD je pense que le return n'existe pas en PAscal en effet il faut faire plutot Power:=.... mais peut etre utilisais tu du ADA !
BifaceMcLeOD
Ah, au fait, Je@nb, il y a une petite contrainte dans la formule que tgrx t'a donnée, et que tu découvriras quand tu verras les fonctions logarithmes en cours : ces fonctions ne sont définies qu'entre zéro (exclu) et plus l'infini. La formule de calcul de a^x ne marche donc pas quand a est négatif...
BifaceMcLeOD
Ah ben non, ya encore mieux ! :D
Code :
function Power(a, x : in Double) returns Double is
begin
return Math.Exp(x * Math.Log(a));
end Power;
mystereetbouledegomme
Juste pour dire que je suis tout emu de voire du Pascal quel langage clair et symple a maitriser. :sweat: Je verse une larme ....
BifaceMcLeOD
Je@nb> De mémoire, la fonction logarithme népérien (notée ln en maths) s'appelle Log() en Pascal, et la fonction logarithme décimal (notée log en maths) s'appelle Log10() en Pascal.
Dans la formule que t'a donnée tgrx, c'est bien le logarithme népérien qu'il faut utiliser, ce qui nous donne :
Code :
function Power(a, x : real) : real;
begin
Power := Exp(x * Log(a));
end; /* Power */
[edit]--Message édité par BifaceMcLeOD--[/edit]
Je@nb
C pour les fréquences des sound.
Et j'ai besoin de fraction x/12 donc pas entière.
et la formule a besoin de nombres comme ça.
Voila
tgrx
Je pense que exp et ln existent en Pascal donc ca devrait passer.
Question bete : pourquoi tu veux faire des puissances non entieres si tu sais pas ce que sait ? :??:
(parce que la definition des puissances non entieres en maths c'est ce que j'ai ecrit au dessus)
Je@nb
Merci, je ne savais pas : je n'ai pas appris encore en Maths les exponentielle et les ln (d'ailleurs je ne sais pas comment on fait.
tgrx
Rappel mathematique :
a^x = exp(x*ln(a))
Je@nb
Salut,
Je cherche une fonction permettant d'élever un nombre à une puissance x où x n'est pas obligé d'être entier.
Si ça existe, je n'ai pas trouvé.
Si ça n'existe pas, comment le programmer.
Merci