Noise is good
2016-05-31 11:03
483 查看
由来
噪声是信号处理和图像处理中很让人厌烦的东西,往往我们想方设法去消除噪声或者减弱噪声,恢复原来的信号或者图像。可是,在矩阵运算过程中,我们可能会遇到一些特殊的矩阵,计算复杂度如噪声毛刺一般,比周围领域内的计算复杂度许多。(病态系统)这就象simplex algorithm算法一样,按照常规思维看的话
需要
O(m^2n)的计算复杂度,可是往往我们实验结果是线性的。这是为什么呢?这可以用smoothedcomplexity来解释。
matlab病态矩阵实验
构造病态矩阵 A,例如 n = 5 时 A 如下1 0 0 0 1 -1 1 0 0 1 -1 -1 1 0 1 -1 -1 -1 1 1 -1 -1 -1 -1 1
Test Code
% The script for ill-conditioned system example. % date: 2015-11-22 % author: Clython n = 80; b = randn(n,1); A = tril(ones(n) - ones(n)*2 + 2*eye(n)); A(:,end) = 1; x = A\b; disp('The ill-condition error :'); disp(norm(A*x - b)); % add noise to the matrix A A = A + rand(n,n,'double'); x = A\b; disp('After add noise to matrix A error:'); disp(norm(A*x - b));
Test Result
The ill-condition error :7.2116
After add noise to matrix A error:
7.6684e-14
结论
噪声有时也是好的,可以噪声对原有的病态系统进行平滑,取得意想不到效果。Why the Simplex Algorithm Usually Takes Polynomial Time
ABSTRACTWe introduce the smoothed analysis of algorithms, which is a hybrid of the worst-case and average-case analysis of algorithms. Essentially , we study the performance of algorithms under small random perturbations of their inputs. We show that the shadow vertex simplex algorithm has polynomial smoothed complexity.
Somothed Analysis of Algorithm
这篇文章对单精度算法的时间复杂度进行了分析和解释,为什么实际使用的单精度算法非常好。
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析