Racine et factorisation de polynome du deuxieme degré

Contenu du snippet

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.

A voir également

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.