Scilab-Branch-6.1-GIT
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
sfact
factorisation spectrale en temps discret
Séquence d'appel
F = sfact(P)
Paramètres
- P
matrice carrée de polynômes réels.
Description
Trouve F
, un facteur spectral de P
.
P
est une matrice de polynômes telle que chaque racine de
P
a une image miroir par rapport au cercle unité.
Le problème est singulier si une racine se trouve sur le cercle unité.
sfact(P)
renvoie une matrice de polynômes F(z)
antistable et telle que
P = F(z)* F(1/z) *z^n
Pour un polynôme unique, un algorithme spécifique est utilisé. Les algorithmes sont tirés du livre de Kucera.
Exemples
// Polynôme unique p = (%z -1/2) * (2 - %z) w = sfact(p); w*horner(w, 1/%z).num
// exemple matriciel z = %z; F1 = [z-1/2, z+1/2, z^2+2; 1, z, -z; z^3+2*z, z, 1/2-z]; P = F1*gtild(F1,'d'); // P est symétrique F = sfact(P) roots(det(P)) roots(det(gtild(F,'d'))) // racines stables roots(det(F)) // racines anti-stables clean(P-F*gtild(F,'d'))
// Utilisation en temps continu s = %s; p = -3*(s+(1+%i))*(s+(1-%i))*(s+0.5)*(s-0.5)*(s-(1+%i))*(s-(1-%i)); p = real(p); // p(s) = polynôme dans s^2, cherche un f stable tel que p=f(s)*f(-s) w = horner(p,(1-s)/(1+s)); // transformation bilinéaire w=p((1-s)/(1+s)) wn = w.num; // prend le numérateur fn = sfact(wn); // Factorisation f = horner(fn,(1-s)/(s+1)).num; // et transformation inverse f = f/sqrt(horner(f*gtild(f,'c'),0)); f = f*sqrt(horner(p,0)); // normalisation roots(f) // f est stable clean(f*gtild(f,'c')-p) // f(s)*f(-s) est égal à p(s)
Voir aussi
Report an issue | ||
<< rowcompr | Polynômes | simp >> |