clean
очищает матрицы (округление малых значений до нуля)
Синтаксис
B = clean(A) B = clean(A, epsa) B = clean(A, epsa, epsr)
Аргументы
- A
скалярное число, вектор, матрица или гиперматрица десятичных чисел или комплексные числа, в плотном или разреженном кодировании или полиномах или рациональных с действительными или комплексными коэффициентами.
- epsa, epsr
вещественные числа. Допустимые отклонения для очистки (значения по умолчанию соответственно 10-10 и 10-10)
Описание
Эта функция исключает (то есть устанавливает равными нулю) все коэффициенты с
абсолютным значением < epsa относительным значением
< epsr
(относительно max(abs(A)), игнорируя значения %inf и
%nan матрицы A).
Для массива полиномов или рациональных дробей, clean() применяется одинаково ко всему
набору их коэффициентов.
Примеры
--> 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
Для рациональных чисел:
--> 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
Смотрите также
- %eps — epsilon (машинная эпсилон -- относительная точность представления чисел с плавающей запятой)
- cond — condition number of a matrix
- nearfloat — получить предыдущее или следующее число с плавающей запятой
- number_properties — определение параметров чисел с плавающей запятой
| Report an issue | ||
| << ceil | Плавающая запятая | double >> |