2022年求三角矩阵在压缩存储下的转置矩阵 .pdf

上传人:Q****o 文档编号:26049931 上传时间:2022-07-15 格式:PDF 页数:3 大小:74.34KB
返回 下载 相关 举报
2022年求三角矩阵在压缩存储下的转置矩阵 .pdf_第1页
第1页 / 共3页
2022年求三角矩阵在压缩存储下的转置矩阵 .pdf_第2页
第2页 / 共3页
点击查看更多>>
资源描述

《2022年求三角矩阵在压缩存储下的转置矩阵 .pdf》由会员分享,可在线阅读,更多相关《2022年求三角矩阵在压缩存储下的转置矩阵 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、#include #include #define max 20 #define zero 0 typedef struct int i,j,v; node; typedef struct node datamax; int m; TSmatrix; TSmatrix *Setmatrix() /建三对角矩阵TSmatrix *T; T=(TSmatrix *)malloc(sizeof(TSmatrix); printf( 请输入矩阵行数或列数:n); scanf(%d,&T-m); printf( 建立三对角矩阵:n); for(int n=0;nm-2;n+) scanf(%d%d%d,

2、&T-datan.i,&T-datan.j,&T-datan.v); return T; TSmatrix *Trabsmatrix(TSmatrix *T) /三对角矩阵转置int n,k,temp; TSmatrix *F; F=(TSmatrix *)malloc(sizeof(TSmatrix); F-m=T-m; for(n=0;nm-2;n+) /将结点信息存入新三元组表中temp=2*T-datan.j+T-datan.i; /计算待存入三元数组下标F-datatemp.i=T-datan.j; F-datatemp.j=T-datan.i; F-datatemp.v=T-dat

3、an.v; return F; void TSmatrixout(TSmatrix *T) /三对角矩阵输出int a,b,n; n=0; for(a=0;am;a+) for(b=0;bm;b+) if(T-datan.i=a&T-datan.j=b) printf(%-5d,T-datan.v); n+; else printf(%-5d,zero); printf(n); void main() TSmatrix *T; T=Setmatrix(); printf( 三对角矩阵 :n); TSmatrixout(T); T=Trabsmatrix(T); printf( 转置后三对角矩阵

4、:n); TSmatrixout(T); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 问题分析:本程序要求实现对压缩存储下的三对角矩阵进行转置,为实现上述功能,需要解决的关键问题是三对角矩阵压缩存储及转置过程。概要设计:利用三元组表以行序为主序压缩存储三对角矩阵。转置时,先利用三元数组中的行标i和列标j 计算出待放入新三元数组的下标temp。由于转置时需要将行标和列标交换,所以temp=2*j+i 。找出待存入的下标后,将相

5、应的信息存入下标为temp 的三元数组中。详细设计:由于三元组表中的结点存放了元素的行标i 和列标j,因此可利用行标和列标互换进行转置, 但这样操作后, 新三元组表中的元素则以列序为主序存放,不便矩阵遍历输出,因此在将互换行标、 列标后的元素存入新三元组表时,应先计算出按行序为主序存放时所在的下标 temp。由于三对角矩阵元素存入三元数组中,所在的下标temp 与其行标i 和列标j 有temp=2*i+j 关系,所以可先求出下标temp,同时将信息存入下标为temp 的数组中,所得的新三元组表即以行序为主序存放的。调试分析及小结:错误及分析: 在开始设计转置函数时,直接利用行标和列标交换方法,

6、因此所得的新三名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - 元组表则以列序为主序存放,输出矩阵时并未正确的转置矩阵。初步改进: 参考课本的转置思想,对三元组表进行转置时,以列序为主序进行转置,转置后所得新三元组表则是以行序为主序存放,但该算法时间复杂度为O(nt) ,其中n 为列数, t 为非 0 元个数。最终改进: 由于三对角矩阵元素存入三元数组中的下标temp 与该元素的行标i 与列标 j有 temp=2*i+j 关系,因此可直接将元素信息存放下标temp 的数组中,该算法时间复杂度为O(t) ,t 为非 0 元个数,程序代码如下:for(n=0;nm-2;n+) temp=2*T-datan.j+T-datan.i; F-datatemp.i=T-datan.j; F-datatemp.j=T-datan.i; F-datatemp.v=T-datan.v; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁