在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例常规C/C++编程 → C++解决线性代数矩阵转置

C++解决线性代数矩阵转置

常规C/C++编程

下载此实例
  • 开发语言:C/C++
  • 实例大小:0.33KB
  • 下载次数:8
  • 浏览次数:44
  • 发布时间:2024-06-20
  • 实例类别:常规C/C++编程
  • 发 布 人:zpdxzlm
  • 文件格式:.rar
  • 所需积分:5
 相关标签: c++ c++ 指针 智能 安全

实例介绍

【实例简介】最近学习啦线性代数有关知识,于是想了一个利用数组解决线性代数中的矩阵转置问题

思路   
   由线性代数相关知识点,如果将第一个矩阵的所有元素绕着一条从第一行第一列出发的右下角 45° 的射线做镜面反转,那么就可得到这个矩阵的一个转置矩阵。

代码实现
    用户需要自定义输入第一个数组(程序中的数组代表线性代数中的矩阵),也就是需要转置运算的数组 A,定义分三个步骤进行:
1、定义该数组的行数
2、定义该数组的列数
3、定义该数组的元素

然后被定义的数组经程序运算,输出转置后的数组 B。

总结
  主要运用了线性代数及二维数组的特性知识点

1、 二维数组的第一个下标表示行数,第二个下标表示列数,每个下标都是从 0 开始;

2、 类型说明符、数组名和常量表达式的意义与一维数组相同;

3、 二维数组的元素在内存中是“按行存放”,即在内存中先顺序存放第一行的元素,再存放第二行的元素,以此类推;

4、 可以把二维数组看作一种特殊的一维数组,其特殊之处在于它的每一个元素又是一维数组。



5、把m*n矩阵的行列互换之后得到的矩阵,称为的转置矩阵
性质对于矩阵A, B和标量c转置有下列性质:转置是自身逆运算。转置是从m × n矩阵的向量空间到所有n × m矩阵的向量空间的线性映射。注意因子反转的次序。以此可推出方块矩阵A是可逆矩阵,当且仅当AT是可逆矩阵,在这种情况下有 (A−1)T = (AT)−1。相对容易的把这个结果扩展到矩阵相乘的一般情况,可得出 (ABC...XYZ)T = ZTYTXT...CTBTAT。标量的转置是同样的标量。矩阵的转置矩阵的行列式等于这个矩阵的行列式。两个纵列向量a和b的点积可计算为[url=][/url]如果A只有实数元素,则ATA是正半定矩阵。如果A是在某个域上,则A 相似于AT。


【实例截图from clipboard
【核心代码】#include <stdio.h>
int main()
{
    int i,j,i1,j1,a[101][101],b[101][101];
    printf("please input the number of rows(<=100)\n");
    scanf("%d",&i1);
    printf("please input the number of columns(<=100)\n");
    scanf("%d",&j1);
    printf("please input the element\n");
    for(i=0;i<i1;i )
        for(j=0;j<j1;j )
            scanf("%d",&a[i][j]);
    printf("array a:\n");
    for(i=0;i<i1;i )
    {
        for(j=0;j<j1;j )
            printf("\t%d",a[i][j]);
        printf("\n");
    }
    for(i=0;i<i1;i )
        for(j=0;j<j1;j )
            b[j][i]=a[i][j];
    printf("array b:\n");
    for(i=0;i<j1;i )
    {
        for(j=0;j<i1;j )
            printf("\t%d",b[i][j]);
        printf("\n");
    }
    return 0;
}

标签: c++ c++ 指针 智能 安全

实例下载地址

C++解决线性代数矩阵转置

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警