雅可比迭代法和高斯赛德尔迭代法

article/2025/4/22 2:26:07

刚学 Jacobi算法和Gauss_Siedel算法不久,觉的对以后学习会有帮助,所以记下来,希望感兴趣的朋友共勉!

雅克比迭代
 
#include < iostream >
#include
" math.h "
using namespace std;
#define n 3
double a[n][n] = {{ 5 , 2 , 1 },{ - 1 , 4 , 2 },{ 2 , - 3 , 10 }}, x[n] = { - 3 , 2 , 1 }, b[n] = { - 12 , 20 , 3 }, c[n];
int i = 0 ,j,k = 0 ,counter = 15 ;
int main()
{

int k = 0 ,i = 0 ;
double num1,E;
float y[n];
do
{
E
= 0 ;
for (j = 0 ;j < n;j ++ )
{
c[j]
= x[j];
}
num1
= 0 ;
for (j = 0 ;j < n;j ++ )
{
if (j != i)
num1
= num1 + a[i][j] * x[j];
}
for (j = 0 ;j < n;j ++ )
{
c[j]
= x[j];
}

y[i]
= (b[i] - num1) / a[i][i];

if (i < n)
{ i
++ ; }

else
{
for (j = 0 ;j < n;j ++ )
{ x[j]
= y[j]; }

for (j = 0 ;j < n;j ++ )
{
if (E < ( float )fabs(c[j] - y[j])) E = ( float )fabs(c[j] - y[j]);
}
if (k >= 7 )
{ cout
<< " Iterations is " << k + 1 << " , " << " Iterative precision is " ;
printf(
" %.6lf\n " ,E);
for (j = 0 ;j < n;j ++ )
printf(
" x[%d]=%.5lf\t " ,j,x[j]);
cout
<< endl << endl;
}
i
= 0 ;
k
++ ;
if (E < 0.001 ) break ;
}
}
while (k <= counter);
cout
<< " Iterations is " << k << endl;
cout
<< " Iterative terminating condition " ;
printf(
" x[%d]-x[%d]oo<%.6lf\n " ,k,k - 1 ,E);
cout
<< " \t\t---------Solution----------- " << endl;
for (i = 0 ;i < n;i ++ )
{
printf(
" x[%d]=%.5lf\n " ,i,x[i]);
}
}

 

 

高斯-赛德尔迭代法
 
#include < iostream >
#include
< math.h >
using namespace std;
int main()

{
double a[ 3 ][ 3 ] = {{ 1 , 2 , - 2 },{ 3 , 1 , - 1 },{ 2 , 4 , 1 }},b[ 3 ] = { 10 , 12 , - 20 };

double x[ 3 ] = { 0 , 0 , 0 },sum1,sum2;

int i,j,k,n = 3 ;

for (k = 0 ;k < 5 ;k ++ )

{
for (i = 0 ;i < n;i ++ )

{ sum1
= 0 ;sum2 = 0 ;

for (j = 0 ;j < i - 1 ;j ++ )

{ sum1
= sum1 + a[i][j] * x[j];

}

for (j = i + 1 ;j < n;j ++ )

{sum2
= sum2 + a[i][j] * x[j];}

x[i]
= (b[i] - sum1 - sum2) / a[i][i];

}

for (i = 0 ;i < n;i ++ )

{ printf(
" x%d=%-15f " ,i + 1 ,x[i]);}

printf(
" \n " );

}

}

 

转载于:https://www.cnblogs.com/FCWORLD/archive/2010/12/04/1896063.html


http://chatgpt.dhexx.cn/article/7Pxs3tkX.shtml

相关文章

数值计算——雅可比迭代法解线性方程组

1.雅克比迭代法的计算过程: (1).取初始向量: &#xff08;1&#xff09; (2).迭代过程 &#xff08;2&#xff09; 2.求解实例&#xff1a; &#xff08;3&#xff09; 用 Jacobi 方法求解&#xff0c;精确到小数点后 6 位, 给出所需步数及残差; 3.求解结果&#xff1a; 当n1…

雅可比迭代法、高斯-赛德尔迭代法、超松弛迭代法 matlab 实现

雅可比迭代法、高斯-赛德尔迭代法、超松弛迭代法 matlab 实现 一、雅可比迭代法 程序代码&#xff1a; function y Jacobi(A,b,e,M) % input: A 的对角线元素均不为 0 e: 精度 M: 最大计算次数 % output: y: 方程的解n length(A); x0 zeros(n,1); y zeros(n,1);[l,w] si…

数值计算——雅可比迭代法解线性方程组(附代码)

1.雅克比迭代法的计算过程: (1).取初始向量: &#xff08;1&#xff09; (2).迭代过程 &#xff08;2&#xff09; 2.求解实例&#xff1a; &#xff08;3&#xff09; 用 Jacobi 方法求解&#xff0c;精确到小数点后 6 位, 给出所需步数及残差; 3.求解结果&#xff1a; 当n1…

雅可比迭代法程序c语言,求雅可比迭代法解方程组的C\C++程序

满意答案 singleycf 2013.07.05 采纳率&#xff1a;54% 等级&#xff1a;13 已帮助&#xff1a;7908人 #include #include Jacobidiedai(int n, double *a, double *b,double *x) { int i,j; double *x0,m0,eps; x0 (double *) malloc(n*sizeof(double)); for(i0;i x0[i]x…

雅可比迭代法解线性方程组。

L U分解在我之前写的文章里。 定义的变量有点多&#xff0c;但挺容易看的。 #include<stdio.h> #include<math.h> #define N 3 int main (void) {double A[N][N] {0};double D[N][N] {0};double L[N][N] {0};double U[N][N] {0};double C[N][N] {0};double…

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

此例子使用三个变量、三个方程的情况&#xff0c;如需讨论多个的情况&#xff0c;使用vector稍加修改即可。 使用的方程组如下&#xff1a; 每次迭代的值如下&#xff1a; 程序流程图&#xff1a; 程序代码&#xff1a; /********雅克比迭代法********* *1.Xi为每一步迭代…

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

文章目录 一、基本迭代法的格式及收敛性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;不会故意问一些比较…