Scilab Function

factors - factorisation réelle de polynômes

Calling Sequence

[lnum,g]=factors(pol [,'flag'])
[lnum,lden,g]=factors(rat [,'flag'])
rat=factors(rat,'flag')

Parameters

Description

renvoie les facteurs du polynôme pol dans la liste lnum et le "gain" g.

On a pol = g multiplié par le produit des termes de la liste lnum (si flag n'est pas donné). Si flag='c' , on a |pol(i omega)| = |g*prod(lnum_j(i omega)| . Si flag='d' alors on a |pol(exp(i omega))| = |g*prod(lnum_i(exp(i omega))| . Si l'argument de factors est une fraction rationnelle 1x1 rat=pol1/pol2 , les facteurs du numérateur pol1 et le dénominateur pol2 sont renvoyés dans les listes lnum et lden , respectivement.

Le "gain" est renvoyé dans g , c'est à dire rat = g multiplié par (produit des termes dans lnum) / (produit des termes dans lden).

Si flag vaut 'c' (resp. 'd' ), les racines de pol sont réfléchies par rapport à l'axe imaginaire (resp. le cercle unité), i.e. les facteurs dans lnum sont des polynômes stables. Idem si factors est appelé avec des arguments rationnels : les termes dans lnum et lden sont des polynômes stables si flag est donné. R2=factors(R1,'c') ou R2=factors(R1,'d') avec R1 une fraction rationnelle ou une liste syslin SISO : la sortie R2 est rationnelle avec un numérateur et un dénominateur stables et de même module que R1 sur l'axe imaginaire ( 'c' ) ou le cercle unité ( 'd' ).

Examples

n=poly([0.2,2,5],'z');
d=poly([0.1,0.3,7],'z');
R=syslin('d',n,d);
R1=factors(R,'d')
roots(R1('num'))
roots(R1('den'))
w=exp(2*%i*%pi*[0:0.1:1]);
norm(abs(horner(R1,w))-abs(horner(R,w)))
 

See Also

simp ,