目录### 代码包含4个文件, main.cpp, 提供了一个调用svds的样例 fun.h, 提供了一些公共函数,比如排序等等 svds.cpp, 奇异值分解的实现 svds.h,奇异值分解的头文件 main.cpp### fun.h### svds.h ...
. lanczos方法的大致思路 为了求 m 阶方阵 X 最大的 r 个特征值和特征向量: X m times m approx U m times r S r times r U T m times r , 其中 U 是列正交矩阵,即 U TU I ,每一列为一个特征向量, S 是对角阵,对角线上每个元素为特征值。 r 为分解的秩 lanczos算法分三步求解: 对 X 进行正交变换得到一个三 ...
2016-09-21 02:21 4 5318 推荐指数:
目录### 代码包含4个文件, main.cpp, 提供了一个调用svds的样例 fun.h, 提供了一些公共函数,比如排序等等 svds.cpp, 奇异值分解的实现 svds.h,奇异值分解的头文件 main.cpp### fun.h### svds.h ...
1. 基本的QR算法 我们先讨论一般对阵矩阵的QR算法,再讨论对称三对角阵的QR算法 给定一个实对称阵X,假设其特征值分解为X=PSP',其中P对正交阵,S是对角阵。求P,S的QR算法如下,其中 $Q_k$为正交阵,$R_k$为上三角阵: $X_1=X$ for k=1,2 ...
1. 基本思想 在第一篇中,我们讨论了lanczos算法的基本框架。当我们用lanczos算法将一个实对称阵转化成三对角阵之后,我们可以用第二篇中的QR算法计算三对角阵的特征值特征向量。 本篇我们将讨论计算该三对角阵更加快速的算法——分治法(Divide and Conquer),该算法最早 ...
图的最短路径问题主要包括三种算法: (1)Dijkstra (没有负权边的单源最短路径) (2)Floyed (多源最短路径) (3)Bellman (含有负权边的单源最短路径) 本文主要讲使用C++实现简单的Dijkstra算法 Dijkstra算法简单实现(C++ ...
图的最短路径问题主要包括三种算法: (1)Dijkstra (没有负权边的单源最短路径) (2)Floyed (多源最短路径) (3)Bellman (含有负权边的单源最短路径) 本文主要讲使用C++实现简单的Floyd算法,Floyd算法原理参见 Floyd–Warshall ...
RSA算法原理转自:https://www.cnblogs.com/idreamo/p/9411265.html C++代码实现部分为本文新加 RSA算法简介 RSA是最流行的非对称加密算法之一。也被称为公钥加密。它是由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔 ...
简单选择排序采用最简单的选择方法,即在剩余序列中选出最小(或最大)的关键字,和剩余序列的第一个关键字交换位置,依次选择下去,直至使整个序列有序。 算法中两层循环的执行次数和初始序列没有关系,第二层循环每一次都需要遍历剩余带排序序列,故时间复杂度为O(n2) 直接 ...
RSA是一种非对称加密算法,在公开密钥和电子商业中RSA被广泛使用。它是基于一个很简单的数论事实,两个素数相乘很容易,对两素数乘积因式分解很困难。原理就不再阐述了,我谈谈算法的编程实现过程。 一、RSA加密和解密过程是基于以下形式,其中明文为M,密文为C,公匙PU={e, n},密匙PR ...