线性方程组迭代法—雅克比迭代法C++

article/2025/4/22 3:09:54

此例子使用三个变量、三个方程的情况,如需讨论多个的情况,使用vector稍加修改即可。
使用的方程组如下:
在这里插入图片描述
在这里插入图片描述
每次迭代的值如下:
在这里插入图片描述
程序流程图:
在这里插入图片描述

程序代码:

/********雅克比迭代法*********
*1.Xi为每一步迭代的初值,X1=0,Yi存放迭代结果
*2.迭代精度e,max|Xi-Yi|,1<=i<=n
*3.最大迭代次数N
*4.输入数据:
*(1)Bi:方程组的值
*(2)Aij:方程组变量系数
*/
#include<iostream>
#include<math.h>
using namespace std;
double sum(double x[4],double a[4][4],int temp)
{double res(0);double temp_res=0;//当i=j时,令其为0for(int j=1;j<4;j++){if(temp==j){res+=temp_res;//cout<<"res:"<<res<<endl;}else{res+=a[temp][j]*x[j];//cout<<"res:"<<res<<endl;}}return res;
}//the max in an array
double max(double *array)
{double max_var = array[1];for(int i=1;i<4;i++){if(max_var<array[i]){max_var=array[i];}}//cout<<"max_var:"<<max_var<<endl;return max_var;
}void interation(unsigned N,double a[4][4],double *b,double *x,unsigned k,double e)
{int i=1;double Y[4]={0,};for(;i<4;i++){Y[i]=(b[i]-sum(x,a,i))/a[i][i];//cout<<"Y"<<i<<":"<<Y[i]<<endl;}double max_val[4];for(i=1;i<4;i++){max_val[i]=fabs(x[i]-Y[i]);}double the_max=max(max_val);//get the max in the arraycout<<"the max:"<<the_max<<endl;if(the_max<e){cout<<"---Iterating successfully-----"<<endl;cout<<"----------------------------"<<endl;cout<<"The values are as follows:"<<endl;for(i=1;i<4;i++){cout<<"Y["<<i<<"]:"<<Y[i]<<"  ";}cout<<endl;}else{if(k==N){cout<<"--!---Iteration failed---!--"<<endl;}else{k=k+1;x=Y;//x array=Y arrayinteration(N,a,b,x,k,e);}}
}
int main()
{//store coefficients//double coeff[4][4]={{0,0,0,0},{0,10,-1,-2},{0,-1,10,-2},{0,-1,-1,5}};double coeff[4][4];//store equations' value//double values[4]={0,7.2,8.3,4.2};double values[4];double Y[4];//Y[i]unsigned i,j;double e;//precisionunsigned N;//iteration timesunsigned k=1;//flag//先初始化array为0memset(Y,0,sizeof(Y));cout<<"---------------Jacobi Interaction----------------"<<endl;cout<<"----Three equations and three variables X---------"<<endl;cout<<"Please input equations' coefficients and values:"<<endl;cout<<"Please input coeffients from first equation to last:"<<endl;for(i=1;i<4;i++){for(j=1;j<4;j++)cin>>coeff[i][j];}cout<<"---------------------------------------------"<<endl;cout<<"Please input equations' values:"<<endl;for(i=1;i<4;i++){cin>>values[i];}cout<<"-----------------------------------------------"<<endl;cout<<"Please input precision e:"<<endl;cin>>e;cout<<"----------------------------------------------"<<endl;cout<<"Please input interation times N:"<<endl;cin>>N;cout<<"----Inputting end....--------------------------"<<endl;//迭代初值为0double x[4]={0,0,0,0};interation(N, coeff,values,x, k, e);cout<<"----------------"<<endl;cout<<"Hello Boker..2021/5/11/17:00"<<endl;return 0;
}

运行结果如下:
在这里插入图片描述

在这里插入图片描述


http://chatgpt.dhexx.cn/article/xY59YJju.shtml

相关文章

《数值分析》-- 雅可比迭代法、高斯—塞德尔迭代法

文章目录 一、基本迭代法的格式及收敛性1.1 迭代法思想1.2 向量序列收敛的定义 二、迭代法的收敛与发散三、雅可比迭代法和高斯赛德尔迭代法3.1 雅可比迭代法3.2 高斯――赛得尔(Gauss-Seidel)迭代法 四、迭代法的收敛性4.1 严格对角占优矩阵与对角占优矩阵4.2 Jacobi迭代法和G…

雅克比迭代法,高斯赛德尔迭代法,sor迭代法(python)

计算方法实验&#xff0c;在已给matlab的程序基础上进行修改得到的python程序&#xff0c;原理不再赘述。实际使用时&#xff0c;只需修改以下程序中的A,b矩阵&#xff08;注意只适用与A为n*n的情况&#xff09; 1.雅克比迭代法 import numpy as npA np.array([[10,-1,-2],[…

C语言实现雅克比迭代法求根

C语言实现雅克比迭代法求根 雅克比迭代法求根 C语言实现雅克比迭代法求根问题描述算法思想C语言程序实验结果 问题描述 设方程组 A x b Ax b Axb的系数矩阵 A A A非奇异 &#xff0c;且 a i i ≠ 0 {a_{ii}} \ne 0 aii​​0将 A A A分裂为&#xff1a; A D L U A D L…

雅克比迭代法和高斯-塞德尔迭代法

https://wenku.baidu.com/view/ac6a0d89d0d233d4b04e6905.html 另外附上迭代收敛的条件&#xff1a; 且越小&#xff0c;收敛的越快。

雅可比迭代法

雅可比迭代法 设有线性方程组 &#xff08;1&#xff09; 其矩阵形式为 设系数矩阵A为非奇异矩阵&#xff0c;且 从式(1)的第个方程中解出&#xff0c;得其等价形式 (2) 取初始向量 对式(2)应用迭代法&#xff0c;建立相应的迭代公式 (3) 也可记为矩阵形式 (4) 若将系数…

数值分析-雅克比迭代法

雅克比迭代法 雅克比迭代法就是众多迭代法中比较早且较简单的一种&#xff0c;其命名也是为纪念普鲁士著名数学家雅可比。雅克比迭代法的计算公式简单&#xff0c;每迭代一次只需计算一次矩阵和向量的乘法&#xff0c;且计算过程中原始矩阵A始终不变&#xff0c;比较容易并行计…

雅克比迭代算法

From https://blog.csdn.net/weixin_33895016/article/details/86031039 雅克比迭代&#xff0c;一般用来对线性方程组&#xff0c;进行求解。形如&#xff1a; a11∗x1a12∗x2a13∗x3b1a11∗x1a12∗x2a13∗x3b1   a21∗x1a22∗x2a23∗x3b2a21∗x1a22∗x2a23∗x3b2   a31…

雅克比(Jacobi)迭代法求解线性方程组

长博文不利于翻阅&#xff0c;于是又将Jacobi迭代法单独出来了。 这篇博文把高斯—赛德尔迭代法和雅克比迭代法都放到一起了&#xff0c;个人觉得看着有点累。&#xff08;迭代法求解线性方程组&#xff09;&#xff0c;不过还是要看的&#xff0c;因为它引出了迭代法。 进入…

MATLAB Jacobi迭代法 求解线性方程组

文章目录 前言一、Jacobi迭代法是什么&#xff1f;二、对应的编程思想以及公式推导 1.Jacobi迭代法 公式推导2.Jacobi迭代法求解线性方程组 例子3.Jacobi迭代法 编程实现总结 前言 雅克比&#xff08;Jacobi&#xff09;迭代法求解线性方程组 一、Jacobi迭代法是什么&#xff1…

紧张的337小时,终于等来了宇宙条字节跳动offer

作者&#xff1a;不穿格子衫的Java程序猿 来源&#xff1a;https://url.cn/5IiC4LJ 坐标北京&#xff0c;某211本科毕业生&#xff0c;之前学校活动有去过字节跳动公司总部参观&#xff0c;所以一直以来就蛮想进入字节工作的&#xff0c;被字节的企业文化和工作氛围所影响。字节…

元宇宙(Metaverse)了解一下

元宇宙(Metaverse)了解一下 “元宇宙”这个29年前就被提出的概念&#xff0c;随着近几年吸纳了日臻成熟的AI、游戏引擎、AR/VR、区块链等技术成果后&#xff0c;突然间就吸引了创业者、资本和市场的注意力。 什么是元宇宙&#xff1f; 元宇宙(Metaverse)概念起源于科幻小说&…

元宇宙时空——元宇宙是什么

未来已来的元宇宙&#xff0c;它究竟是什么&#xff0c;将带给我们生活、学习、工作怎样的改变&#xff0c;想必是很多人的好奇和疑惑。通过对元宇宙三部曲的阅读&#xff08;《元宇宙》《元宇宙通证》《元宇宙大投资》&#xff09;&#xff0c;这些答案慢慢浮出水面&#xff0…

宇宙条总包60W的前端岗,压中原题了!(附答案)

大家都知道某条已经大规模扩招半年了&#xff01; 半年来&#xff0c;身边的亲戚&#xff0c;朋友&#xff0c;同事不是入职了某条&#xff0c;就是在去往某条面试的路上&#xff01; 我身边的一朋友更是百折不挠&#xff0c;去年就开始疯狂地投简历&#xff01;时刻准备跳槽&a…

宇宙条的工作总结:第一次做面试官经历分享

去年7月份应届入职&#xff0c;已经成为社会人13个月了。这期间发生了很多事情&#xff0c;近期相关的工作总结也会逐渐和大家见面。这次先和大家分享一次面试实习生的经历。 因为是不是正式秋招的面试&#xff0c;实习生面试大部分是相对简单些&#xff1a;不会故意问一些比较…

去宇宙条面试被问:HashMap 为什么线程不安全?

我们都知道HashMap是线程不安全的&#xff0c;在多线程环境中不建议使用&#xff0c;但是其线程不安全主要体现在什么地方呢&#xff0c;本文将对该问题进行解密。 1 jdk1.7中的HashMap 在jdk1.8中对HashMap做了很多优化&#xff0c;这里先分析在jdk1.7中的问题&#xff0c;相信…

最近大火的「元宇宙」是什么?

作者&#xff1a;腾讯技术工程特约撰稿人 李佳华 本文将介绍元宇宙的由来和底层技术&#xff0c;探讨海内外资本在这条赛道上的布局&#xff0c;元宇宙将会对哪些行业产生变革的影响&#xff0c;这些影响背后凸显了元宇宙的哪些价值&#xff0c;以及元宇宙逐步实现的过程中监管…

浅谈元宇宙投资

博客主页&#xff1a;https://tomcat.blog.csdn.net 博主昵称&#xff1a;农民工老王 主要领域&#xff1a;Java、Linux、K8S 期待大家的关注&#x1f496;点赞&#x1f44d;收藏⭐留言&#x1f4ac; 目录 什么是元宇宙元宇宙与区块链区块链的含义区块链面临的技术困境区块链的…

宇宙条面试:这样跟面试官说代理,面试官对我竖起了大拇指!

什么是代理 代理模式是常用的java设计模式&#xff0c;他的特征是代理类与委托类有同样的接口&#xff0c;代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类&#xff0c;以及事后处理消息等。代理类与委托类之间通常会存在关联关系&#xff0c;一个代理类的对象…

【元宇宙系列】游戏与元宇宙(上)——元宇宙的胚胎发育期

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 文章目录 游戏&#xff0c;元宇宙的胚胎发育期棉花产业带动了工业革命游戏孕育了元宇宙 游戏是人类文明的起点。席勒说&#xff1a;“只有当人在充分意义上是人的时候&a…

一个读者大佬精心总结的阿里、腾讯、宇宙条大厂 Offer 面经和硬核面试攻略

作者&#xff1a;见习格子衫 去年11 月底&#xff0c;在经历了充分的思想斗争后&#xff0c;我终于下定决心寄出了三方&#xff0c;历时三个多月的秋招也终于尘埃落定。过去的三个多月里&#xff0c;面试时间可能只有一个月左右&#xff0c;剩下的两个多月的时间都在等待结果和…