1 / 6
文档名称:

通用的矩阵运算类的设计-通用矩阵分析.docx

格式:docx   大小:13KB   页数:6页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

通用的矩阵运算类的设计-通用矩阵分析.docx

上传人:mama 2022/6/26 文件大小:13 KB

下载得到文件列表

通用的矩阵运算类的设计-通用矩阵分析.docx

相关文档

文档介绍

文档介绍:通用的矩阵运算类的设计:通用矩阵分析
(; 公共管理系,内蒙古 呼和浩 特 010000)摘 要:文章利用c++的基本特性和相关技术,结合数值 计算方法,充分考虑运算效率的前提
文中矩阵的求逆是通过矩阵的初等变换来实现的。其过程可简洁表示为740)=740" border=undefined>
其中A为所要变换的原矩阵,E为单位阵,A|E为增广矩阵。经过初等变换后增广矩阵中的A 变 为单位阵,而单位阵则变为A的逆矩阵。在此过程中须要推断增广矩阵的左侧是否等于单位 阵(即对角线元素是否为1,其他元素是否为0)。由于矩阵元素的数据类型为double,该类 型在计算机中无法得到肯定的等于0或1。所以须要通过下式来推断增广矩阵左侧是否为单位 阵
|aij|<ε,则aij=0;|aij-1|<ε,则aij=1
其中,aij为矩阵第i行、第j列的元素,ε为足够小的正数,,可依据所 需精度自行定,该过程在程序中的归一化函数完成的。 矩阵的元素
由于在工程应用中矩阵的元素主要是浮点数类型,本文将矩阵的元素定义为double类型。在 一些特别的应用场合,矩阵的元素可能为整数(如图像处理领域)或复数(如DFT,FFT等) 。这种状况下可运用c++供应的template功能完成数据类型的通用化。 运算困难度
本文涉及的矩阵运算中矩阵求逆的运算困难度较大。为了降低困难度,采纳了列主元素Gaus s消元法。较之求逆矩阵的定义式,该方法计算困难度大大降低,尤其当矩阵的维数增大时 效果更明显。
在矩阵运算类中,运用较多的函数调用。在实现代码的过程当中除了运用STL的algorithm外 还可以运用非标准化的Boost库,Boost库中数值计算相关的有math,rational,numeric co nversion等子库。函数调用过程中,针对短小而且调用常见的函数声明为内联(inline)函 数。内联函数的调用语句在不同的地方出现时会增加目标代码的长度,但代码的运行效率会 很高。3 相关源代码及说明 头文件中的C++代码如下:class Matrix : public CObject {public:double Abs(double x); //取肯定值函数Matrix(int rows,int columns); //构造函数1Matrix( const Matrix ); //构造函数2Matrix operator=( const Matrix ); //重载运算符=void operator+=(const Matrix m); //重载运算符+=int rows() const //返回矩阵行{ return[CD#*2]rows; }int cols() const //返回矩阵列{return[CD#*2]cols; }double operator()(int row,int column)//重载运算符(){return[CD#*2]matrix[row*cols()+column]; }bool Same[CD#*2]size(const Matrix m