Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2024.0.0 - Português


clean

limpa matrizes (arredonda para zero entradas pequenas)

Seqüência de Chamamento

B = clean(A)
B = clean(A, epsa)
B = clean(A, epsa, epsr)

Parâmetros

A

número escalar, vetor, matriz ou hipermatriz de números decimais ou de números complexos, em codificação densa ou esparsa, ou de polinômios ou racionais com coeficientes reais ou complexos.

epsa, epsr

números reais positivos: tolerâncias de limpeza. Ambos os valores padrão são 10-10.

Descrição

Esta função ajusta para zero todos os coeficientes com valores absolutos< epsa e valores relativos< epsr (relativo em relação ao max(A), ignorando %inf e %nan valores de A) em um polinômio (possivelmente uma matriz de polinômios ou matriz de razões de polinômios).

Para uma matriz de constantes clean(A,epsa) ajusta para zero todas as entradas menores que epsa.

Exemplos

m = grand(3,5,"uin",1,9) .* 10.^grand(3,5,"uin",-16,1)
clean(m)
clean(m, 1e-7)
--> m = grand(3,5,"uin",1,9) .* 10.^grand(3,5,"uin",-16,1)
 m  =
   5.000D-08   5.          0.8         7.000D-08   4.000D-11
   0.00007     7.          4.000D-09   6.000D-13   2.000D-16
   2.000D-08   1.000D-14   1.          8.          0.7

--> clean(m)
 ans  =
   5.000D-08   5.   0.8         7.000D-08   0.
   0.00007     7.   4.000D-09   0.          0.
   2.000D-08   0.   1.          8.          0.7

--> clean(m, 1e-7)
 ans  =
   0.        5.   0.8   0.   0.
   0.00007   7.   0.    0.   0.
   0.        0.   1.    8.   0.7

For rationals:

x = poly(0,'x');
w = [3+2*x, 2+x; 3+x, 2-x]/5
r = w * inv(w)
clean(r)
--> w = [3+2*x, 2+x; 3+x, 2-x]/5
 w  =
   0.6 +0.4x   0.4 +0.2x
   0.6 +0.2x   0.4 -0.2x

--> r = w * inv(w)
 r  =
                                                                2
   -3.140D-16 + x                        -1.110D-15 + 3.331D-16x
   ---------------                       ------------------------
                                                           2
         x                                   1.3333333x + x
                                      2                             2
   1.110D-15 - 2.220D-16x - 5.551D-17x   -1.110D-15 + 1.3333333x + x
   ------------------------------------  ----------------------------
                           2                                 2
             1.3333333x + x                    1.3333333x + x

--> clean(r)
 ans  =
   1   0
   --  --
   1   1

   0   1
   --  --
   1   1

Ver Também

  • %eps — epsilon (floating-point relative accuracy)
  • cond — número de condicionamento de uma matriz
  • nearfloat — get previous or next floating-point number
  • number_properties — determina parâmetros de ponto flutuante
Report an issue
<< ceil Ponto flutuante double >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Oct 24 14:35:25 CEST 2023