[Users-fr] Ce message concerne la fonction horner.

Lucien Povy lucien.povy at free.fr
Ven 17 Jan 18:28:53 CET 2014


Bonjour,
Quand on veut exécuter l'instruction suivante
-->H=[1+s;(1+s+s*s);1/(2+3*s+s*s)];
-->f=[1+%i,(1-s)/(1+s),1/s,4]; scilab renvoie :
-->Mat=horner(H,f)
  !--error 60
Dimension erronée de l'argument : Dimensions incompatibles.
at line      22 of function horner called by :
Mat=horner(H,f)
Pourtant il est bien dit dans le programme horner que
H peut être un vecteur colonne et que f peut être un vecteur ligne
voici le commentaire dans le programme.

// Special cases aded to improve efficiency:
// - p = row vector, x = column vector
// - p = column vector, x = row vector
// - x = scalar

Par le passé cette instruction marchait parfaitement (version 2.?).
Comment revenir au cas précédent ?
Mais cela marche si f est un scalaire :
-->Mat=horner(H,f(1,2))
  Mat  =

!                                           2      3      4  5 6     7     !
!     2 +  14s +  42s +  70s +  70s +  42s +  14s +  2s      !
!  --------------------------------------------------------  !
!                 2      3      4      5      6     7     8  !
!   1 +  8s +  28s +  56s +  70s +  56s +  28s +  8s +  1s   !
!                  2      3      4      5      6     7     8 !
!   3 +  18s +  46s +  66s +  60s +  38s +  18s +  6s +  1s  !
!  --------------------------------------------------------- !
!                 2      3      4      5      6     7     8  !
!   1 +  8s +  28s +  56s +  70s +  56s +  28s +  8s +  1s   !
!                 2      3      4      5      6     7     8  !
!   1 +  8s +  28s +  56s +  70s +  56s +  28s +  8s +  1s   !
!  --------------------------------------------------------  !
!                               2          3           4 5         
6       7   !
!    6 +  38s +  102s +  150s +  130s +  66s +  18s +  2s    !
Mais ici impossible de simplifier le résultat !!!!
Bien cordialement.





Plus d'informations sur la liste de diffusion users-fr