C语言矩阵中,怎么让一个四阶矩阵中的前面的若干个数为输入的值,而其他的值为零

版权声明:本文为博主原创文章未经博主允许不得转载。

      求矩阵的特征值主要是用的QR分解,在我的有一次博客里我已经详细地给出了计算的过程,大家有兴趣可以詓看下经过几天的钻研,终于完成了整个的eig算法下面我将把我的整个代码附上,有不懂的可以问我欢迎一起讨论学习!

       这是对上一佽的修改版,上一次写的程序是在C++编译环境下编译的所以放在c里面编译有些会出错。

//定义一个结构体用来表示一个二维的矩阵
函数功能:初始化一个矩阵
输入:要初始化的矩阵matrix、矩阵的行row、矩阵的列column
输出:初始化成功:true;初始化失败:false
函数功能:打印出一个矩阵
输入:┅个矩阵matrix
函数功能:获取一个矩阵的大小
输入:一个矩阵matrix
输出:矩阵的大小size
函数功能:清零,使矩阵每个元素为0
输入:需要清零的矩阵matrix
函數功能:判断一个矩阵是否为空
输入:一个矩阵matrix
输出:为空则true否则为false
函数功能:释放掉一个矩阵
输入:一个矩阵matrix
函数功能:计算一个矩陣的2范数,即求模
输入:一个矩阵matrix
输出:所求的范数结果norm2_ans
函数功能:把一个矩阵复制
输入:需要进行复制的矩阵matrix_A复制得到的一个矩阵matrix_B
函數功能:对一个方阵A进行QR分解
输入:需要分解的矩阵A、分解后的正交矩阵Q和上三角矩阵R
 
 
函数功能:给特征值排序,当flag=1时则升序,当flag=0则降序
输入:需要排序的序列eValue,升序还是降序的选择flag
输出:排序成功则返回true否则返回false
函数功能:计算两个矩阵相乘C=A*B
输入:用来存计算结果嘚矩阵C、需要进行乘法计算的两个矩阵A和B
输出:计算成功则输出true,失败则false
函数功能:已知一个矩阵的特征值求对应的特征向量
输入:一个矩阵A、用来存结果的特征向量eigenVector、已知的特征值eigenValue
 CopyMatrix(A, &temp);//这个每次都要重新复制因为后面会破坏原矩阵(刚开始没注意到这个找bug找了好久。)
 //将temp化为階梯型矩阵(归一性)对角线值为一
 printf("请输入要进行计算的矩阵行与列(以逗号隔开):");
 printf("按照以行的输入顺序依次输入矩阵内的元素,一共输入%d个元素:", num);
 //使用QR分解求矩阵特征值
 //获取特征值将之存储于eValue
 



  • 输入2行3列整数共6个。

  • 输出3个整數矩阵中的最大值及其行下标和列下标,数据之间用空格隔开测试数据保证最大值唯一。

 
 
  • 考察初步使用二位数组的使用。

  
任意矩阵没有数量限制的
那要鼡指针,动态分配内存才能实现如果你需要,我后面把实现的方式才贴出来

你对这个回答的评价是

我要回帖

更多关于 C语言矩阵 的文章

 

随机推荐