racine n-ième ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : racine n-ième ?

par Pidj24 » 30 janv. 2006, 00:34

hmm, mouais ça a l'air d'aller... :)

Et il se passe quoi si il existe plusieurs "^" dans la chaine ?

En fait ça marche très bien avec un, mais à partir du moment où il y en a plus d'un, il ne change plus rien :s

Une idée ?

Merci !
Ciao
Pierre

par Pidj24 » 29 janv. 2006, 21:06

hmm, ok, donc mon pb est purement l'expression régulière...

Je vais tester la proposition de Truc :)
Merci !
Ciao. Pierre

par sadeq » 27 janv. 2006, 13:32

Voici une formule mathématique pour calculer les puissance et les racines.

On sait que :
x² peut s'écrire sous forme exponentielle : exp (2 * log(x) )

Alors généralisons :
  • Puissance n° de x s'écrit: x ^ n = exp( n * log(x) )
    Racine n° de x s'écrit: x ^1/n = exp( log(x) / n )
Et en voici le programme PHP
<?php
//Données à calculer
$x = 27;
$n = 3; 

//Fonction n° écrite sous forme logique
$str = "$x^1/$n"; 

//Pour calculer la racine n° vaut mieu utiliser la forme exponentielle
//x ^1/n = exp( log(x) / n )
echo "<p>$str = ".exp(log($x)/$n);
?>

par jobherzt » 27 janv. 2006, 12:14

tu peux aussi t'amuser a implementer la methode de newton pour calculer des valeurs approches des racines :-) c'est bourrin, mais rigolo.... en caclculant plusieurs iterations de la suit :
pour la racine k-ieme de a

Code : Tout sélectionner

x(n+1)=(a/(x(n)^(k-1))+x(n))/2
ou un truc du genre...

par Truc » 27 janv. 2006, 01:10

allô ?
à l'huile :lol:

je ne suis pas un expert en expressions régulières mais ceci fonctionne:
$str='4^3';
$str=preg_replace('#(\d+)\^(\d+)#','bcpow($1,$2)',$str);
echo $str;
après ça reste une chaine et non plus une fonction.

par Pidj24 » 27 janv. 2006, 00:25

allô ?

par Pidj24 » 02 janv. 2006, 01:06

merci pour cette info :) très utile :p

donc un bcpow(81,(1/4)) fait l'affaire alors ?

Et sinon, j'ai un ptit problème avec le preg_replace, justement à propos de ça:
je voudrais, à partir par exemple d'un $str = '4^3'; obtenir un $str2 = 'bcpow(4,3)'; ...

Je cale dans la fonction preg_replace, pour mettre plusieurs expressions. J'ai essayé preg_replace("([0-9]*)\^([0-9]*)","bcpow($0,$1)",$str); mais marche pas, j'ai du me planter quelque part... J'ai essayé idem avec $1 et $2 , et idem avec \\0 \\1 et \\2 , rien ne va. Je pense que c'est dans le premier argument que j'ai un problème, pas dans le deuxième...

Une idée ?

Merci !
++
Pierre

par albat » 01 janv. 2006, 23:50

Rappel mathématique :
Une racine n-ième de X s'écrit X^(1/n)
La racine quatrième de 81 (qui donne 3) peut s'écrire : 81^(1/4) ;)

par Cyrano » 01 janv. 2006, 21:33

Il faudrait fouiller dans les fonctions mathématiques de PHP et éventuellement dans les classes PEAR dédiées aux calculs mathématiques pour trouver ton bonheur.

racine n-ième ?

par Pidj24 » 01 janv. 2006, 21:21

bonjour tlm,

simple question de base: comment on fait en php pour faire la racine n-ième d'un nombre ?

Par exemple comment faire la racine quatrième de 81 (qui donne 3) ?
Donc ici le contraire de 3 exposant 4... *-)

Merci
Pierre