雅可比(Jacobi)迭代法解线性方程组的Matlab实现

  • 代码
  • 运行

代码

迭代法解线性方程组的基本思想是构造一串收敛到解的序列,即建立一种从已有近似解计算新的近似解的规则,有不同的计算规则得到不同的迭代法。

本文是常用的迭代法之一:Jacobi迭代法解线性方程组的matlab实现。

关于Jacobi迭代法的具体内容和算法见《数值计算方法》—丁丽娟,P65-66

书中算法如下:

程序中所用算法和书中的一致。

Matlab代码如下。

//  输入量:
A: 线性方程组的系数矩阵(n*n,非奇异)
b: 方程组右边的常数项列向量
n: 方程组维数
x0: 初始值
tol: 精度上限值
N:  最大迭代次数//迭代终止标准
已达精度上限值或者到达最大迭代次数//输出量:
x:线性方程组的解
// An highlighted block
function x=jacobi_fun(A,b,n,x0,tol,N)
x=zeros(n,1);      % 给x赋值
k=0;
while k<Nfor i=1:nx(i)=(b(i)-A(i,[1:i-1,i+1:n])*x0([1:i-1,i+1:n]))/A(i,i);endif norm(x-x0)<tolbreak;endx0=x;k=k+1;disp(['when k=',num2str(k)])disp('x=');disp(x);                       %输出计算的中间结果
endif k==Ndisp('迭代次数已到达上限!');
end
disp(['迭代次数 k=',num2str(k)])end

运行

运行示例的线性方程组是《数值计算方法》—丁丽娟 P-66 例一

//  Command Window 中输入
>> A=[10 -1 -2;-1 10 -2;-1 -1 5];
>> b=[72;83;42];
>> n=3;
>> x0=[0;0;0];
>> tol=1e-6;
>> N=500;// 输入后,调用函数
>> x=jacobi_fun(A,b,n,x0,tol,N)

运行结果如下:

可看出迭代16次之后得到精确值

若输入N=9,运行结果如下:

迭代的中间过程其中一小部分见下图:

注: 判断时否到达精度上限用的是范数,此处选用2范数,实际上选用1范数,inf范数均可,若想选用其他范数,调用norm(A,p)即可。

雅可比(Jacobi)迭代法解线性方程组的Matlab实现相关推荐

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

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

  2. 雅各比迭代法程序matlab,雅克比(Jacobi)迭代法解线性方程组(Matlab程序)

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

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

    %---高斯-赛德尔迭代法----- %---Gauss - Seidel iteration method clear;clc; % A=[10,-1,-2;-1,10,-2;-1,-1,5]; % ...

  4. 高斯-赛德尔(Gauss-Seidel)解线性方程组的Matlab实现

    高斯-赛德尔(Gauss-Seidel)解线性方程组的Matlab实现 代码 运行 手算例题 迭代法解线性方程组的基本思想是构造一串收敛到解的序列,即建立一种从已有近似解计算新的近似解的规则,有不同的 ...

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

    文章目录 前言 一.Jacobi迭代法是什么? 二.对应的编程思想以及公式推导 1.Jacobi迭代法 公式推导 2.Jacobi迭代法求解线性方程组 例子 3.Jacobi迭代法 编程实现 总结 前 ...

  6. 用matlab求解jacobi,用jacobi迭代法求解线性方程,求助matlab大师

    问题描述: 用jacobi迭代法求解线性方程,求助matlab大师 用jacobi迭代法求解线性方程 9x1-x2+x3=10 -x1+10x2-2x3=7 -2x1+x2+10x3=6,设迭代初值为 ...

  7. 超松弛迭代法解线性方程组c语言,超松弛迭代法解线性方程组.doc

    PAGE PAGE 2 姓名:___________________________ 设计题目:超松弛迭代法解线性方程组 专业: 摘要 本文是在matlab环境下熟悉的运用计算机编程语言并结合超松弛变 ...

  8. Matlab_用高斯赛德尔(Gaoss-Seidel)迭代法解线性方程组

    1.程序代码 function x=Gauss(A,b,x0,ep,N) %用途:用高斯迭代法解线性方程组Ax=b %A为系数矩阵,b为右端向量,x0为初始向量(默认零向量) %ep为精度(1e-6) ...

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

    1.雅克比迭代法的计算过程: (1).取初始向量:                                                                     (1) (2 ...

最新文章

  1. android edittext_Android 支持拖动、缩放的自定义软键盘
  2. mysql数据库的环境搭建_数据库学习(一)MySql环境搭建
  3. 下一代低延时直播CDN:HLS、RTMP 与UDP +WebRTC
  4. 二级分类_免费获取2021年二级造价工程师考试大纲
  5. target not created怎么解决_怎么才能最短时、高效、踏实地学习 Python(附链接)...
  6. swarm 和 k8s_Wildfly Swarm,朝着成熟和一小部分贡献
  7. Qt 5.14 安装,windows10系统,64位,详细步骤,非常简单!
  8. HAproxy + Keepalive实现LDAP代理服务
  9. 360修复导致服务器,桌面安装360软件修复漏洞补丁导致桌面TC端无法登陆,FC端VNC登陆一键修复显示HDC不可达...
  10. 53. 最大子数组和(JavaScript)
  11. Linux常用的基础组件
  12. DLL导出类避免地狱问题的完美解决方案
  13. 黑马MFC教程总结(后续更新)
  14. 现代通信原理思维导图--第四章 信道
  15. GDI简单绘图(二)- 绘制验证码
  16. wamp mysql 密码_wamp如何设置数据库的密码
  17. 计算机专业新生研讨课感悟,新生研讨课学习心得与收获
  18. 关于共享自习室查询座位空闲状态的算法笔记
  19. 用于2D动画的实时嘴型同步技术
  20. 什么是DCS系统?DCS和SCADA的区别

热门文章

  1. 2023年西北农林科技大学生物学考研上岸前辈备考经验指导
  2. 盘口技术大全(五): 机构操盘习惯
  3. jq的submit()方法提交和from提交是不一样的
  4. C语言 双色球 红蓝球出现概率模拟
  5. YOLOv5s的模型训练与使用(纯小白入门)
  6. 【疯了Labview】(一)仿JKI的RCF 挂件
  7. oracle日语促音怎么变大,日语促音变的基本规则
  8. 基于layui实现的省市县区三级联动下拉选择器
  9. 教育行业如何选呼叫中心系统
  10. 未能加载文件或程序集“”或它的某一个依赖项。试图加载格式不正确的程序。