comme le titre l'indique cet alias sert a factoriser des polynomes ou en obtenir les racines
pour utiliser l'alias faire :
//echo -a $polynome(3x²+5x-3,x).factor pour factoriser
//echo -a $polynome(3x²+5x-3,x).racine pour avoir les racines
il est tres important de preciser la variable ( x dans notre cas)
Source / Exemple :
alias polynome {
set %itr 1
unset %1
while ( %itr <= $len($1) ) {
if ( $mid($1,%itr,1) = $2 ) {
if ( $mid($1,$calc(%itr -1),1) !isnum ) || ( $mid($1,$calc(%itr -1),1) = $null ) { set %1 %1 $+ 1 $+ $mid($1,%itr,1) }
else { set %1 %1 $+ $mid($1,%itr,1) }
}
else { set %1 %1 $+ $mid($1,%itr,1) }
inc %itr
}
set %itr 1
while ( %itr <= $gettok(%1,0,$asc($2)) ) {
set % $+ $gettok(%ident,%itr,32) $remove($gettok(%1,%itr,$asc($2)),²,^2)
inc %itr
}
set %delta $calc( (%b * %b) - (4 * %a * %c) )
if ( %delta > 0 ) {
set %x1 $+($chr(40),%b,-,$sqrt($ifmatch),$chr(41),/,$calc(%a *2))
set %x2 $+($chr(40),%b,+,$sqrt($ifmatch),$chr(41),/,$calc(%a *2))
if ( $prop = racine ) { return delta >0 deux racines , x1= %x1 x2= %x2 }
if ( $prop = factor ) { return p( $+ $2 $+ )= $+($chr(40),$2,-,%x2,$chr(41),*,$chr(40),$2,-,%x1,$chr(41)) }
}
if ( %delta = 0 ) {
set %x $+(-,%b,/,$calc(2* %a))
if ( $prop = racine ) { return delta nulle une racine double x= %x }
if ( $prop = factor ) { return p( $+ $2 $+ )= $+($chr(40),$2,+,$gettok(%x,2-,45),$chr(41)) }
}
if ( %delta < 0 ) {
set %x1 $+($chr(40),%b,-,i,$sqrt($calc(0 - $ifmatch)),$chr(41),/,$calc(%a *2))
set %x2 $+($chr(40),%b,+,i,$sqrt($calc(0 - $ifmatch)),$chr(41),/,$calc(%a *2))
if ( $prop = racine ) { return delta<0 deux racines complexes , x1= %x1 x2= %x2 }
if ( $prop = factor ) { return p( $+ $2 $+ )= $+($chr(40),$2,-,%x2,$chr(41),*,$chr(40),$2,-,%x1,$chr(41)) }
}
}
Conclusion :
Pour utiliser l'alias faire :
//echo -a $polynome(3x²+5x-3,x).factor pour factoriser
//echo -a $polynome(3x²+5x-3,x).racine pour avoir les racines
Le mirc n'etant pas specialement consacré au math la definition des racines complexes laisse a desirer. La fonction ne fait pas de calcul formel alors inutile de rentrer des polynomes de la forme ax²+bx+c ça ne va rien donner
si on respecte tout ça yaura pas de bug j'insiste aussi sur le fait que ce n'est pas un addon c juste une exemple de la souplesse du mirc.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.