0

0

C++程序用于找到给定矩阵的迹和法线

WBOY

WBOY

发布时间:2023-08-30 10:37:05

|

1544人浏览过

|

来源于tutorialspoint

转载

c++程序用于找到给定矩阵的迹和法线

一些应用程序可以从二维数组或矩阵的使用中受益匪浅。 数字存储在矩阵的行和列中。使用多维数组,我们 也可以用 C++ 定义 2D 矩阵。在这篇文章中,我们将了解如何使用 C++ 确定给定矩阵的法线和迹线。

矩阵中元素总数的平方根就是所谓的 普通的。迹线由构成主对角线的所有组件组成。让我们 查看 C++ 代码中算法的表示。

矩阵迹

$\begin{bmatrix} 8 & 5& 3\换行符 6 & 7& 1\换行 2 & 4& 9\换行符 \end{bmatrix},$

主对角线上所有元素的和:(8 + 7 + 9) = 24,这是给定矩阵的迹

在上一个示例中,使用了一个 3 x 3 矩阵,结果是各矩阵的总和 主对角线中的元素数量。矩阵的迹可以在总和中找到。让我们 看一下算法有助于我们理解。

算法

  • 读取矩阵 M 作为输入
  • 假设 M 有 n 行 n 列
  • 总和:= 0
  • 对于从 1 到 n 的 i,执行
    • sum := sum + M[ i ][ i ]​​i>
  • 结束
  • 返回总和

示例

#include 
#include 
#define N 7
using namespace std;
float solve( int M[ N ][ N ] ){
   int sum = 0;
   
   // read elements through major diagonal, where row index and column index are same, both are i
   for ( int i = 0; i < N; i++ ) {
      sum = sum + M[ i ][ i ];
   }
   return sum;
}
int main(){
   int mat1[ N ][ N ] = {
      {5, 8, 74, 21, 69, 78, 25},
      {48, 2, 98, 6, 63, 52, 3},
      {85, 12, 10, 6, 9, 47, 21},
      {6, 12, 18, 32, 5, 10, 32},
      {8, 45, 74, 69, 1, 14, 56},
      {7, 69, 17, 25, 89, 23, 47},
      {98, 23, 15, 20, 63, 21, 56},
   };
   cout << "The Trace of the first matrix is: " << solve( mat1 ) << endl;
   int mat2[ N ][ N ] = {
      {6, 8, 35, 21, 87, 8, 26},
      {99, 2, 36, 326, 25, 24, 56},
      {15, 215, 3, 157, 8, 41, 23},
      {96, 115, 17, 5, 3, 10, 18},
      {56, 4, 78, 5, 10, 22, 58},
      {85, 41, 29, 65, 47, 36, 78},
      {12, 23, 87, 45, 69, 96, 12}
   };
   cout << "The Trace of the second matrix is: " << solve( mat2 ) << endl;
}

输出

The Trace of the first matrix is: 129
The Trace of the second matrix is: 74

矩阵法线

$\begin{bmatrix} 8 & 5& 3\换行符 6 & 7& 1\换行 2 & 4& 9\换行符 \end{bmatrix},$

所有元素的总和:(8 + 5 + 3 + 6 + 7 + 1 + 2 + 4 + 9) = 45

笔墨写作
笔墨写作

一款专注于各类公文写作的AI写作平台

下载

正态:(所有元素之和的平方根)= √45 = 6.708

在上一个示例中,使用了 3 x 3 矩阵。我们首先计算其所有条目的总和 在求其平方根之前。让我们看一下算法来帮助我们理解。

算法

  • 读取矩阵 M 作为输入
  • 假设 M 有 n 行 n 列
  • 总和初始化为 0
  • 对于从 1 到 n 的 i,执行
    • 对于范围从 1 到 n 的 j,执行
      • sum := sum + M[ i ][ j ]​​i>
    • 结束
  • 结束
  • res := 总和的平方根
  • 返回结果

示例

#include 
#include 
#define N 7
using namespace std;
float solve( int M[ N ][ N ] ){
   int sum = 0;
   
   // go through each element. Using outer loop, access ith row, using inner loop access column. For cell (i, j) read the element and add it to the sum
   for ( int i = 0; i < N; i++ ) {
      for ( int j = 0; j < N; j++ ) {
         sum = sum + M[ i ][ j ];
      }
   }
   return sqrt( sum );
}
int main(){
   int mat1[ N ][ N ] = {
      {5, 8, 74, 21, 69, 78, 25},
      {48, 2, 98, 6, 63, 52, 3},
      {85, 12, 10, 6, 9, 47, 21},
      {6, 12, 18, 32, 5, 10, 32},
      {8, 45, 74, 69, 1, 14, 56},
      {7, 69, 17, 25, 89, 23, 47},
      {98, 23, 15, 20, 63, 21, 56},
   };
   cout << "The Normal of the first matrix is: " << solve( mat1 ) <<
       endl;
   int mat2[ N ][ N ] = {
      {6, 8, 35, 21, 87, 8, 26},
      {99, 2, 36, 326, 25, 24, 56},
      {15, 215, 3, 157, 8, 41, 23},
      {96, 115, 17, 5, 3, 10, 18},
      {56, 4, 78, 5, 10, 22, 58},
      {85, 41, 29, 65, 47, 36, 78},
      {12, 23, 87, 45, 69, 96, 12}
   };
   cout << "The Normal of the second matrix is: " << solve( mat2 ) <<
       endl;
}

输出

The Normal of the first matrix is: 41.1947
The Normal of the second matrix is: 49.4267

结论

法线和迹线操作属于矩阵。这两个过程需要 方阵,这就是我们需要的(因为需要迹方)。迹线的总和是 矩阵主对角线中包含的元素,而法线只是 矩阵中包含的元素总数的平方根。在C++中,矩阵可以 使用二维数组显示。在这里,我们选择了两个 5 行 5 列的矩阵 示例(共 25 个元素)。必须通过循环语句访问矩阵 和指数操纵。需要两个嵌套循环,因为要执行典型的 计算时,我们必须迭代每个元素。而这个程序的复杂度是O(n2)。 由于跟踪只需要主对角线,因此行索引和列索引将是 相同的。因此,只需要一个for循环。在O(n)时间内确定。

相关文章

c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

394

2023.08.14

PPT动态图表制作教程大全
PPT动态图表制作教程大全

本专题整合了PPT动态图表制作相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.07

c++ Libcurl用法详解
c++ Libcurl用法详解

本专题整合了c++ Libcurl用法详解,阅读专题下面的文章了解更多详细内容。

0

2026.01.07

c++ Libcurl用法大全
c++ Libcurl用法大全

本专题整合了c++ Libcurl用法详解,阅读专题下面的文章了解更多详细内容。

0

2026.01.07

C++ vector用法汇总
C++ vector用法汇总

本专题整合了C++中vector的用法大全,阅读专题下面的文章了解更多详细内容。

2

2026.01.07

C++ vector用法大全
C++ vector用法大全

本专题整合了C++中vector的用法大全,阅读专题下面的文章了解更多详细内容。

0

2026.01.07

2026年漫蛙最新官网地址
2026年漫蛙最新官网地址

漫蛙官网访问入口为https://manwa.me,另提供manwa.cc、manwa.vip、manwa.site等多节点备用链接,支持跨设备同步、个性化阅读及HTTPS安全加密。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

60

2026.01.07

php做exe需要在什么样的环境
php做exe需要在什么样的环境

PHP无法真正编译为EXE,所谓打包实为将解释器、脚本及依赖库封装成自解压容器;主流方案是ExeOutputforPHP(商业、Windows)和PHPDesktop(开源、跨平台),需手动处理扩展依赖、路径适配与运行时限制。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1

2026.01.07

抖音抖币官方充值渠道汇总
抖音抖币官方充值渠道汇总

抖音官方抖币充值官网入口为https://pay.douyin.com/,具备直连支付系统、全端统一鉴权、HTTPS加密传输、多设备实时同步等特性,支持微信/支付宝/银联/话费等多种支付方式及严密账户安全机制。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

5

2026.01.07

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 2.9万人学习

Excel 教程
Excel 教程

共162课时 | 11万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 2.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号