- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
矩阵的设计与实现
实验三、矩阵类的设计与实现【实验内容】利用泛型程序设计和STL的思想建立一个矩阵类,实现运算符重载、矩阵转置、矩阵求逆等运算。【主要代码】///////////矩阵默认构造函数C_ZL_CMatrix:: C_ZL _CMatrix(){_row=0;_column=0;_A=(double * *) new double [maxSize];int i;for(i=0;imaxSize;i++)_A[i]=new double[maxSize];int j;for(i=0;imaxSize;i++)for(j=0;jmaxSize;j++)_A[i][j]=0;})////////////构造函数重载C_ZL_CMatrix:: C_ZL_CMatrix(int row, int column { _row=row;_column=column;_A=(double * *) new double [maxSize];int i;for(i=0;imaxSize;i++)_A[i]=new double[maxSize];int j;for(i=0;imaxSize;i++)for(j=0;jmaxSize;j++)_A[i][j]=0;}//复制构造函数C_ZL_CMatrix::C_ZL_CMatrix(const C_ZL_CMatrix m) {_row=m._row;_column=m._column;int i,j;_A=(double * *) new double [maxSize];for(i=0;imaxSize;i++)_A[i]=new double[maxSize];for(i=0;imaxSize;i++)//初始化for(j=0;jmaxSize;j++)_A[i][j]=0;for(i=0;i_row;i++)for(j=0;j_column;j++){_A[i][j]=m._A[i][j];}}//析构函数C_ZL_CMatrix::~ C_ZL_CMatrix(){delete []_A;}//=函数重载C_ZL_CMatrix C_ZL_CMatrix::operator=(const C_ZL_CMatrix m) {_row=m._row;_column=m._column;int i,j;for(i=0;i_row;i++)for(j=0;j_column;j++){_A[i][j]=m._A[i][j];}return *this;}//此外,还有取负号函数重载、加号函数重载、+=符号函数重载、-=符号函数重载、减号函数重载、乘号符号函数重载、==函数重载、!=函数重载等,由于都属于运算符的重载,思路相似、算法相近此处不再一一赘述。//转置函数C_ZL_CMatrix C_ZL_CMatrix::transpose(){C_ZL_CMatrix tem;tem._row=this-_column;tem._column=this-_row;int i,j;for(i=0;i_row;i++)for(j=0;j_column;j++){tem._A[j][i]=_A[i][j];}return tem;}//求矩阵的余子式C_ZL_CMatrix C_ZL_CMatrix::yuzishi(int i,int j) {C_ZL_CMatrix temp;temp._row=this-_row-1;temp._column=this-_column-1;int m,n,k=0,l;for(m=0;m_row;m++){l=0;for(n=0;n_column;n++){if(m!=in!=j){temp._A[k][l]=_A[m][n];}if(n!=j) l++;}if(m!=i) k++;}return temp;}//求矩阵的行列式double C_ZL_CMatrix::hanglieshi(){if(_row!=_column){cerr此矩阵无行列式endl;}if(_row==1_column==1)return _A[0][0];else{int i;double sum=0;for(i=0;i_column;i++){sum+=pow(-1,i)*_A[0][i]*this-yuzishi(0,i).hanglieshi();}return sum;}}//求伴随矩阵C_ZL_CMatrix C_ZL_CMatrix::bansui(){CZYP_CMatrix temp;temp._column=this-_column;temp._row=this-_row;int i,j;for(i=0;i_row;i++)for(j=0;j_column;j++
文档评论(0)