C++求满秩矩阵的逆矩阵
需求分析
矩阵行数(阶数)n之值由用户通过键盘输入;
将欲求逆的“原始矩阵”另加一个“单位矩阵”存放在于数组A之中,而n行2n列的A存储空间通过new来动态分配,且“原始矩阵”的各元素值也由用户通过键盘输入;
利用行初等变换设法将A左半的“原始矩阵”化为“单位矩阵”,此时,右半的原“单位矩阵”则变成了欲求的结果逆矩阵。
程序运行截图
2.2 概要设计
根据线性代数所学算法,理清思路进行编程
流程图:
2.3 详细设计与编码
见上传程序。
2.4 调试分析
根据线性代数所学算法,理清思路进行编程,同时要注意浮点数的问题。
2.5 用户使用说明
根据提示输入相应的矩阵。
2.6 设计心得
程序看似简单,但计算机关于浮点数的处理并不是想象的那样,如果输入的数据不是很好计算就会出现输出错误的情况,同时线性代数的知识的遗忘也是一个问题。 设计总结
软件课程设计这门课程是一个真正考查和培养学生动手能力的课程,通过半个多学期的学习和上机操作我个人觉得自己的编程能力有所提高,强化了c语言,跟对c++有了更深的了解,同时也对这学期学的java有所巩固,掌握了面向对象编程的一些要点。虽然编写过程中遇到的不少问题,但与同学间相互交流认识也越来越深刻,虽然花掉原文请找腾讯752018766优.文-论'文;网http://www.youerw.com 不少时间,但我认为还是值得的。
软件课程设计这门课程也让我认识到自身知识的缺乏,很多东西还是不会,需要参考网站上的一些程序,然后才能编写出来。个人动手能力需要进一步提高,加强对数组和指针的练习,需要在今后的业余时间加强锻炼。
总之这门课还是让我学到了不少东西的。
#include<iostream>
#include<iomanip>
using namespace std;
void main()
{
int n;
cout<<"请输入矩阵的阶数:";
cin>>n;
cout<<"您定义的矩阵共有"<<n*n<<"个元素!"<<endl;
int i,j,k;
double **a=new double*[n]; //分配二文数组的大小,矩阵为double型的
for(i=0;i<n;i++)
a[i]=new double[2*n]; //分配每一行数组的大小
cout<<"请输入要求逆矩阵的矩阵的元素!"<<endl;
cout<<"注意:请您每输入一个元素,按一次Enter键!"<<endl;
int b=0;1821