高斯赛德尔迭代法

我们在求解矩阵时,有很多种方法,其中当矩阵是大型稀疏矩阵(矩阵中有大部分元素都为0)时,我们可以用迭代法求解。
关于该方法的思想和定义,请参考如下博客:
http://www.doc88.com/p-6953977164202.html
我编写的C++代码,也是根据上面的博客中的数学公式。
在这里我们使用的数据文件matrix.txt为
- 第一行表示矩阵的行数或者列数
- 接下来的三行,表示矩阵本体 A
- 最后一行表示 b,A*x=b
- 我们要计算的就是x

3
8 -3 2
4 11 -1
6 3 12
20 33 36

代码如下:

#include <iostream>
#include <fstream>
#include <vector>
#include <opencv2/opencv.hpp>
#include <opencv2/photo.hpp>using namespace std;
using namespace cv;int main()
{ifstream file("matrix.txt");int rows;int cols;file >> rows;cols = rows;Mat A(rows, cols, CV_32FC1);/*我们假设输入的矩阵对角线元素不为0*/for (int i = 0; i < rows; i++){for (int j = 0; j < cols; j++){file >> A.at<float>(i, j);}}Mat b(1, cols, CV_32FC1);for (int i = 0; i < cols; i++){file >> b.at<float>(i);}file.close();//迭代次数 iter = 10次Mat x(1, cols, CV_32FC1);x.setTo(0);for (int iter = 0; iter < 10; iter++){for (int i = 0; i < rows; i++){float sum = 0;for (int j = 0; j < cols; j++){if (i == j)continue;sum += A.at<float>(i, j)*x.at<float>(j);}x.at<float>(i) = (b.at<float>(i) -sum) / A.at<float>(i, i);}}cout << "最终的结果为:" << endl;for (int i = 0; i < cols; i++){cout << "x" << i << "=" << x.at<float>(i) << "\t";}return 0;
}

最后输出的结果为

最终结果为
x0=3    x1=2    x2=1

和正确的结果一样。在这里我们迭代了10次,求出了最终的结果。关于数值分析,我并没有投入太多的精力,如果有问题和值得改进的地方,希望各位留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中心化,去中心化?关乎互联网未来命运的重要选

作者&#xff1a;刘锋 计算机博士 《互联网进化论》作者前言&#xff1a;不知不觉互联网的未来发展出现了分歧&#xff0c;当Facebook、谷歌等互联网巨头越来越强大的时候&#xff0c;反弹的声音也越来越大&#xff0c;人类社会的有识之士希望解决这个问题&#xff0c;由此导致…

Arcgis for javascript不同的状态下自定义鼠标样式

俗话说&#xff1a;爱美之心&#xff0c;人皆有之。是的&#xff0c;没错&#xff0c;即使我只是一个做地图的&#xff0c;我也希望自己的地图看起来好看一点。在本文&#xff0c;给大家讲讲在Arcgis for javascript下如何自定义鼠标样式。 首先&#xff0c;说几个状态。1、鼠标…

泊松融合

泊松融合是一种很重要的图像融合算法&#xff0c;该算法选自论文&#xff08;[Poisson Image Editing]2003年发表&#xff09;&#xff0c;关于算法中的很多基础概念可以参考如下博客&#xff1a; https://blog.csdn.net/hjimce/article/details/45716603 https://blog.csdn.…

Facebook :AI 年度总结来啦

来源&#xff1a;AI 科技评论摘要&#xff1a;最近&#xff0c;Facebook 做了一份 AI 年度总结&#xff0c;详述了他们过去一年在 AI 上所做的代表性工作。在 Facebook&#xff0c;我们认为&#xff0c;人工智能以更有效的新方式学习&#xff0c;就像人类一样&#xff0c;可以在…

select,epoll的比较

机制&#xff1a; select:只支持水平触发&#xff08;数据不处理完无限通知&#xff09; epoll:支持水平触发和边缘触发&#xff08;仅通知一次&#xff09; 单进程监控FD个数 select: 由FD_SETSIZE设置&#xff0c;默认值是2048。在大量连接的情况下明显不足。 epoll&#xff…

积分图像

积分图像的大小尺寸与原图像 I(x,y)的大小尺寸相等&#xff0c;而积分图像在(x,y)处的值等于原图像中横坐标小于等于x并且纵坐标也小于等于y的所有像素灰度值之和&#xff0c;也就是在原图像中&#xff0c;从其左上角到(x,y)处所构成的矩形区域内所有像素灰度值之和。

android如何与服务器交互?

问题描述是用httpclient 还是socket 还是webservice&#xff1f;倒底哪种好用&#xff0c;哪种最常用&#xff1f;有没有好的框架介绍一下&#xff1f;解决方案11.afinal2.volley个人觉得不错的两个框架&#xff01;当然也可以自己封装。如果对以上两个框架感兴趣&#xff0c…

一文读懂可穿戴技术

来源&#xff1a;传感器技术可穿戴技术(wearable technology)&#xff0c;最早是20世纪60年代由麻省理工学院媒体实验室提出的创新技术。利用该技术&#xff0c;可以把多媒体、传感器和无线通信等技术嵌入人们的衣物中&#xff0c;可支持手势和眼动操作等多种交互方式&#xff…

C++函数指针使用总结

一 函数指针介绍 函数指针指向某种特定类型&#xff0c;函数的类型由其参数及返回类型共同决定&#xff0c;与函数名无关。举例如下&#xff1a; int add(int nLeft,int nRight);//函数定义 该函数类型为int(int,int),要想声明一个指向该类函数的指针&#xff0c;只需用指…

使用异或运算交换两个任意类型变量

这篇文章中将使用C语言,实现交换两个任意类型变量的功能.说到任意类型用C让人感觉很难做,如果是C则使用模板函数就轻松搞定: template<class T> inline void swap(T& t1, T& t2) { T tmp; tmp t1; t1 t2; t2 tmp; } 先说下使用^来交换两个整数,其代码…

2019与下一个十年:我们将要放弃的和将要拥抱的

来源&#xff1a;资本实验室2019年&#xff0c;是连接21世纪前两个十年的过渡一年。在金融支付和商业领域中&#xff0c;2019年也有望成为激动人心的一年。在这一年中&#xff0c;每家企业、每个人都需要对过去十年中所追求的创新进行反思&#xff0c;并决定下一个十年前进的方…

C++中虚函数、纯虚函数、普通函数三者的区别

转载自&#xff1a;https://www.cnblogs.com/cj2014/p/7692707.html 1.虚函数(impure virtual)   C的虚函数主要作用是“运行时多态”&#xff0c;父类中提供虚函数的实现&#xff0c;为子类提供默认的函数实现。 子类可以重写父类的虚函数实现子类的特殊化。 如下就是一…

麦肯锡发布调研,揭开“那些引入人工智能的企业都怎么了 ”

来源&#xff1a;亿欧智库摘要&#xff1a;根据麦肯锡的最新调研显示&#xff0c;人工智能技术普遍上得到企业接纳&#xff0c;但仍有不少企业在入门时就面临“不知道咋开门”的状况。新技术带来新问题&#xff0c;企业该如何应对&#xff1f;根据麦肯锡在全球范围内的调研&…

深度学习、图像识别的基本概念

图像识别 图像识别概念&#xff1a; 我们对图像进行一些列的处理&#xff0c;将其有用的信息提取出来&#xff0c;进行划分归类&#xff0c;这就是图像识别。 图像识别目的&#xff1a; 将景物、图像、字符等信息经过预处理&#xff0c;然后进行识别&#xff0c;让计算机具…

PHP-php.ini中文版

今天细看了下配置文件 有很多没用过的 就从网上搜了一篇 常看看 ;;;;;;;;;;;;;;;; 简介 ;;;;;;;;;;;;;;;;; 本文并非是对英文版 php.ini 的简单翻译&#xff0c;而是参考了众多资料以后&#xff0c;结合自己的理解&#xff0c;增加了许多内容&#xff0c;; 包括在原有 php.ini …

重磅!我国建成首个自动驾驶封闭高速公路测试环境

来源&#xff1a;智车科技摘要&#xff1a;根据工业和信息化部、公安部、江苏省人民政府共建“国家智能交通综合测试基地”的总体规划和建设要求&#xff0c;公安部交通管理科学研究所坚持“自动驾驶汽车产业发展与安全行驶并重”的指导思想&#xff0c;依据《中华人民共和国公…

线性运算和非线性运算

线性运算是加法和数量乘法&#xff0c;对于不同向量空间线性运算一般有不同的形式&#xff0c;它们必须满足交换律&#xff0c;结合律&#xff0c;数量加法的分配律&#xff0c;向量加法的分配律。线性是指量与量之间按比例、成直线的关系&#xff0c;在空间和时间上代表规则和…

拖延症讲:反向遍历链表

今天感觉被面试官用很简单的题目虐了。。。。“如何高效等反向遍历单链表” 一般情况下会想到一个很笨的方法&#xff1a;计算个数&#xff0c;然后再根据个数每一次将遍历的索引减一。 第二种方式就是将原链表反过来&#xff0c;再遍历。如果要求不改变原有结构&#xff0c;可…

单反相机内部光线反射原理

单反相机是照相机的一种&#xff0c;以独特的取景方式而命名。 它的全称是&#xff08;可换&#xff09;单镜头反光式取景照相机&#xff0c;&#xff08;Single Lens Reflex Camera&#xff0c;缩写为SLR camera&#xff09;一般简称为单反相机。它的含义是拍摄和取景共用用一…

面部识别技术走到十字路口?

来源&#xff1a;雷锋网摘要&#xff1a;向左走&#xff0c;还是向右走&#xff1f;近日&#xff0c;面部识别技术又遭遇“突发事件”。本周二&#xff0c;由90个倡议团体组成的小组给三巨头AAM&#xff08;亚马逊、谷歌、微软&#xff09;写信&#xff0c;要求三家公司承诺不向…