Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - 日本語 - Русский
Ajuda do Scilab >> Funções Elementares > Ponto flutuante > clean

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
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Feb 14 15:00:39 CET 2019