高斯—赛德尔(Gauss - Seidel)迭代法解线性方程组(Matlab程序)

原创 2012年03月30日 18:37:28

%---高斯—赛德尔迭代法-----
%---Gauss - Seidel iteration method
clear;clc;
% A=[10,-1,-2;-1,10,-2;-1,-1,5];
% b=[72,83,42]';
A=[ 28,-3,0,0,0;
    -3,38,-10,0,-5;
    -10,0,25,-15,0;
    0,0,-15,45,0;
    0,-5,0,0,30];
b=[10,0,0,0,0]';
N=length(b);    %解向量的维数
fprintf('库函数计算结果:');
x=inv(A)*b      %库函数计算结果

x=zeros(N,1);%迭代初始值
%-----(A=D-E-F)------
D=diag(diag(A));
E=-tril(A,-1);%下三角
F=-triu(A,1);%上三角
B=inv(D-E)*F;g=inv(D-E)*b;
eps=0.001;%相邻解的距离小于该数时,结束迭代

%--------开始迭代-------
for k=1:100 %最大迭代次数为100
    fprintf('第%d次迭代:',k);
    y=B*x+g;
    fprintf('\n与上次计算结果的距离(2范数):%f \n',norm(x-y)^2);
    if norm(x-y)<eps  
        break;
    end
    x=y
end
x


 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Jacobi迭代法与Gauss-Seidel迭代法

今天刚好有朋友和我讨论泊松图像融合算法,我说我过去文章里给出的是最原始、最直观的实现算法。对于理解泊松融合的原理比较有帮助,但是效率可能并不理想。印象中,泊松融合是有一个以矩阵为基础的快速算法的。但是...

基于matlab的Guass-Seidel(高斯--赛德尔) 迭代法求解线性方程组

Guass-Seidel(高斯–赛德尔) 迭代法(简称 G−S 迭代)是对 Jacobi 迭代的一种改进. 了解G-S迭代法之前先了解什么是Jacobi迭代?链接如下: http://blog.c...

基于matlab的jacobi(雅可比)迭代法求解线性方程组

考虑线性方程组Ax=bAx = b 其中A为非奇异矩阵,当A为低阶稠密矩阵是,选主元消去法是有效方法。 但对于A 的阶数n很大,零元素较多的大型稀疏矩阵方程组,利用迭代法求解则更为合适。迭代法通常...

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

%---雅克比迭代法----- %---Jacobi iteration method clear;clc; % A=[10,-1,-2;-1,10,-2;-1,-1,5]; % b=[72,...

分别用雅可比(Jacobi)迭代法和高斯—塞德尔(Gauss—Seidel)迭代法求解线性方程组

算法介绍(迭代法介绍): 代码C语言实现; # include # include # define N 6 /* *使用雅可比迭代法和高斯-赛德尔迭代法 求解线性方程组 ...

数值分析 Gauss-Seidel迭代法求解线性方程组 MATLAB程序实现

Gauss-Seidel迭代法 参考数值分析第四版 颜庆津著 P39 运行输入 运行结果 函数内容(保存为gauss.m文件,在MATLAB中运行) %Gauss-Seidel迭代法求解线性方程组。迭...

数值计算 && 实验8 && Gauss-Seidel迭代法求解线性方程组

这个是错误的,不过老师应该不会发现,写之前请斟酌。 一、题目 二、代码#include #include #include float a[3][3]={{1,2,-2},{1,1,1},...

代码笔记 | java实现高斯赛德尔算法解线性方程组

package linear_equation; import java.util.Scanner; /*使用高斯赛德尔迭代法求解线性方程组*/ public class Gauss_Se...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)