Jacobi迭代法

我们在求解矩阵时,有很多种方法,其中当矩阵是大型稀疏矩阵(矩阵中有大部分元素都为0)时,我们可以用迭代法求解。
其中Jacobi迭代法就是很简单易懂的一种。
我编写的C++代码如下,其中文件matrix.txt内容如下,
第一行的第一个数字表示矩阵的行数或者列数,因为rows==cols
下面的三行表示矩阵本体
最后的一行表示该矩阵和向量(x1,x2,x3) 相乘后的结果

3
8 -3 2
4 11 -1
6 3 12
20 33 36
//C++代码如下
#include <iostream>
#include <fstream>
#include <vector>
#include <opencv2/opencv.hpp>
#include <opencv2/photo.hpp>
using namespace std;
using namespace cv;
int main()
{int rows;int cols;/*注意:我们这里使用的矩阵中,对角线元素不为0*/ifstream file("matrix.txt");file >> rows;cols = rows;Mat A(rows, cols, CV_32FC1);A.setTo(0);
// 输入矩阵Afor (int i = 0; i < rows; i++){for (int j = 0; j < cols; j++){file >> A.at<float>(i, j);}}
// 计算矩阵G0, G0=B/*B(i,j) = 0-(A(i,j)/A(i,i))B(i,i) = 0G(i) = B(i)/A(i,i)*/Mat B(rows, cols, CV_32FC1);B.setTo(0);for (int i = 0; i < rows; i++){if (A.at<float>(i, i) == 0)continue;for (int j = 0; j < cols; j++){if (j != i){B.at<float>(i, j) = 0 - (A.at<float>(i, j) / A.at<float>(i, i));}}}
// 计算向量gMat g(rows, 1, CV_32FC1);for (int i = 0; i < rows; i++){file >> g.at<float>(i);g.at<float>(i) /= A.at<float>(i, i);}file.close();// 设置初始向量 xMat x(rows, 1, CV_32FC1);x.setTo(0);Mat x2;x.copyTo(x2);// iter表示迭代次数int iter = 10;for (int i = 0; i < iter; i++){x2 = B*x + g;x = x2;}cout << "最终结果为" << endl;for (int i = 0; i < rows; i++){cout << "x" << i << "=" << x.at<float>(i) << "\t";}return 0;
}//最终输出结果为
/*
最终结果为
x0=3.00003      x1=1.99987      x2=0.999881
*/

我在这里只迭代了10次,如果想迭代更多的次数,可以修改iter的值,
正确的答案为(3, 2, 1),我们可以看到当迭代10次的时候,和正确的答案已经很接近了。
方法思想,参考下面博客
参考博客:
https://blog.csdn.net/xiaowei_cqu/article/details/8585703
https://blog.csdn.net/zengxyuyu/article/details/53054880
https://blog.csdn.net/u012991190/article/details/51375506

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

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

相关文章

AI人才「用工荒」如何解决?看看这几家顶级公司的应对策略

来源&#xff1a; Forbes编译&#xff1a; 机器之心 太浪在未来几年&#xff0c;人工智能可能会成为众多行业的战略选择&#xff0c;但有一个重大的挑战&#xff1a;招人。如何避免招募 AI 人才的误区&#xff1f;这里有来自几家顶级公司的建议。招到 AI 人才后&#xff0c;可能…

单应矩阵的解释

参考博客&#xff1a; https://www.cnblogs.com/wangguchangqing/p/8287585.html https://blog.csdn.net/jay463261929/article/details/53611363

学习网址积累

ecshop120.com ecshop的学习开发网址 68ecshop 转载于:https://www.cnblogs.com/ymj0906/p/4088749.html

AI芯片混战,谁能挑战英伟达?

来源&#xff1a;forbes我准备写一篇预测未来一年的AI芯片&#xff0c;以及英伟达如何应对挑战的文章&#xff0c;但我很快意识到&#xff0c;文章要比我预期的要长得多。由于有很多内容要介绍&#xff0c;我决定把文章分为3个部分。第1部分&#xff1a;简介&#xff0c;以及分…

webServices 应该支持Get和Post调用,在web.config应该增加以下代码

1 #region Tip:使用说明2 //webServices 应该支持Get和Post调用&#xff0c;在web.config应该增加以下代码3 //<webServices>4 // <protocols>5 // <add name"HttpGet"/>6 // <add nam…

VS2017安装openGL

项目名->管理NuGet程序包->浏览->搜索nupengl&#xff0c;下载安装即可。 参考博客&#xff1a;https://blog.csdn.net/HY_JT/article/details/79482556 还可以参考博客&#xff1a;https://blog.csdn.net/yinglang19941010/article/details/50166343 #include <c…

从专利数量看全球最具创新力的50家公司

来源&#xff1a;资本实验室专利&#xff0c;在很大程度上不仅代表着一家企业的技术实力&#xff0c;也代表着一个国家的长期发展潜力。很多机构也习惯用专利数量来衡量企业或国家的创新能力。为保护自身的技术发明&#xff0c;全球大型公司都会在很多国家申请专利&#xff0c;…

Java魔法堂:初探MessageFormat.format和ChoiceFormat

一、前言                               刚开始从.net的转向java的时候总觉得 String.format 用得不习惯&#xff0c;希望格式模版会这样 {0}, this is {1}s cat.{1},this is {0}s dog. 而不是 %1$s,this is %2$ss cat.%2$s,this is %1$ss dog.…

2019年深度学习的十大预测

来源&#xff1a;云栖社区丨公众号摘要&#xff1a;如果连思考方式都是错的&#xff0c;机器学习肯定不会有很大的进步&#xff01;2018年已结束&#xff0c;现在是开始预测2019深度学习的时候了。以下是我之前对2017年和2018年的预测和回顾&#xff1a;关于2017年预测和回顾。…

正整数 n 所有可能的和式的组合

正整数 n 所有可能的和式的组合&#xff08;如&#xff1b; 41111、 112、 13、22、4&#xff09; 代码的思想是&#xff0c;从最小值开始&#xff0c;依次加入序列中&#xff0c;整体类似DFS&#xff08;深搜&#xff09;&#xff0c;因为有回退的一步。区别是加入一个值s&am…

一张图看懂AR至GL数据流

转载于:https://www.cnblogs.com/wanghang/p/6299101.html

腾讯帝国的野蛮生长史

来源&#xff1a; CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;译者&#xff1a;弯月如今的社交巨头腾讯&#xff0c;可以说是很多厂商可望而不可及的存在。手握微信和QQ这两张王牌&#xff0c;其制霸着整个国民的社交脉络。不过在腾讯成立之初&#xff0c;也是经过了漫…

[LeetCode] Plus One

Given a non-negative number represented as an array of digits, plus one to the number. The digits are stored such that the most significant digit is at the head of the list. 这题有意思啊&#xff0c;虽然是easy题但我还是折腾了很久&#xff0c;一开始做出一个逗…

推荐镜像

参考网址&#xff1a;https://coderschool.cn/1853.html

六大“未来式”存储器,谁将脱颖而出?

来源&#xff1a;半导体行业观察摘要&#xff1a;最近&#xff0c;一篇回顾该领域现状的论文对六种最有前景的技术进行了盘点和解读。对神经形态计算的浓厚兴趣刺激人们研发出一系列全新的存储设备&#xff0c;这些设备可以复制生物神经元和突触功能。最近&#xff0c;一篇回顾…

理论篇 GIT使用笔记

GIT学习指导的游戏&#xff1a;http://pcottle.github.io/learnGitBranching/?NODEMO git fetch: 下载远端所有分支的本地没有的提交列表&#xff0c;并更新local分支origin/master 1. 从remote下载local resp未包含的提交对象&#xff1b; 2. 更新local resp的远端分支点(如…

cuda学习

CUDA 安装测试部分 https://blog.csdn.net/sunmc1204953974/article/details/51000970 CUDA的HelloWorld程序编写 https://www.cnblogs.com/neopenx/p/4643705.html 对多线程并行处理的解释&#xff1a;https://blog.csdn.net/sunmc1204953974/article/details/51025801 以下的…

英特尔第七任CEO敲定 斯旺为何受到董事会青睐?

来源&#xff1a;网易科技2019年1月最后一天&#xff0c;芯片巨头英特尔公司(Intel)宣布任命临时首席执行官罗伯特斯旺(Robert Swan)为正式CEO&#xff0c;从而结束了长达数月的猎头工作。此前&#xff0c;英特尔前任CEO布莱恩柯再奇(Brian Krzanich)因与员工存在“暧昧关系”而…

sudo使用

sudo使用 /etc/sudo.conf /etc/sudoers /etc/sudoers.d/ /etc/sudo-ldap.conf /etc/sudoer sudo安全策略配置文件 Defaults requiretty Defaults !visiblepw Defaults always_set_home Defaults env_reset Defaults env_keep "COLORS DISPLAY HOSTNAME HI…

图灵奖得主长文报告:是什么开启了计算机架构的新黄金十年?

来源&#xff1a;AI科技评论摘要&#xff1a;2017 年图灵奖的两位得主 John L. Hennessy 和 David A. Patterson 就是这个新浪潮的见证者和引领者。近几年来&#xff0c;不论是普通消费者还是科研人员们都可以感受到两种浪潮&#xff0c;一种是CPU速度的提升越来越不显著了&…