文章目录

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

前言

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


一、Jacobi迭代法是什么?

简单的讲其实就是我们平时求解的方法(最常用的方法)

以下是Jacobi的迭代过程:


二、对应的编程思想以及公式推导

1.Jacobi迭代法 公式推导

线性方程组为:                         

将A分裂:                                   

从而得到迭代公式为:     

由于D为对角元素,从而有:          

即编程语言可以写为:       

推到过程为:


2.Jacobi迭代法求解线性方程组 例子

 

3.Jacobi迭代法 编程实现

完整程序代码为:

function [x,error,iter]=GJJacobi_solve(A,b,epsilon,max_iter)
% x , error , iter 为输出变量     A ,b epsilon,max_iter为输入变量
n=length(b);
x=zeros(n,1);
% 首先编写第一步代码目的  x =-(L+U)*x/D+b/D
%第二部明确符号的意义 D表示对角线的元素 L表示下三角的元素 U表示上三角的元素 b表示列向量的长度
%确定误差error = norm(x-y)%输入矩阵A 以及 列向量b%表示L  U  D
L=tril(A); %tril(A)表示取矩阵A的下三角元素,  包含了对角线元素
U=triu(A); %triu(A) 表示取矩阵A的上三角元素,  包含了对角线元素
D=diag(diag(A)); %表示取矩阵A的主对角元素%想办法使得L,U对角线元素都为0% L(logical(eye(size(L))))=0; %由于维度不对,从而只是等号右边为零不对%  U(logical(eye(size(U))))=0;
%改正%B =  zeros(1,n);              %[0,0,0]
L(logical(eye(size(L))))=0;   %[8;11;12]
U(logical(eye(size(U))))=0;%需要看看是否输出的是对角线元素为0
disp(L)
disp(U)% 先写一个循环(发现运用一个变量时需要先初始化error=1)
% 设置最小误差为10e-6
error = 1 ;%初始化误差变量
iter = 0;  %初始化迭代步数变量
while error>epsilon && iter<max_iter % 给出循环条件,以及函数输入变量epsilon,max_iterfor i =1:max_itery=x;%迭代前的矩阵,用来计算迭代误差x=-D\(L+U)*x+D\b ;  %从这里知道需要把L,U,D,b表示出来 x=-(L+U)*x/D+b/D 这个维度错误error=norm(x-y);  %知道迭代前的数据y,以及迭代后的数据x,设定误差为(x-y)的范数if error>epsilon %给出判断误差是否减小iter =iter+1;breakend     %if 需要 end 结束end         %for 需要 end 结束
end             %while 需要 end 结束

测试代码为:

 A=[8 -3 24 11 -16 3 12];
b=[20;33;36];
epsilon=10e-6;
max_iter=15;
[x,error,iter]=GJJacobi_solve(A,b,epsilon,max_iter);
disp('程序计算的精确解为:');
disp(x);
disp('最大迭代次数下的误差:');
disp(error);
disp('最小迭代次数:');
disp(iter+1);

运行结果为:

     0     0     04     0     06     3     00    -3     20     0    -10     0     0程序计算的精确解为:3.00002.00001.0000最大迭代次数下的误差:4.1060e-12最小迭代次数:14

总结

以上就是今天要讲的内容,本文仅仅简单介绍了雅克比迭代求解线性方程组

MATLAB Jacobi迭代法 求解线性方程组相关推荐

  1. MATLAB Jacobi迭代法求解

    clc clearn=input('请输入矩阵的阶数n:'); A=zeros(n);%构造矩阵A for m=1:nA(m,m)=20; end for m=1:n-1A(m,m+1)=-8;A(m ...

  2. 松弛迭代法matlab,逐次超松弛迭代法求解线性方程组的MATLAB实现

    function [X_reality,n_reality] = SOR(A,b,X_start,w,n_limit,tolerance) %% % A为迭代的系数矩阵 % b为方程组右边的常数项(列 ...

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

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

  4. 【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)

    线性方程组迭代解法公式类似非线性方程求根的简单迭代法公式, 有Jacobi迭代法. Seidel迭代法及Sor法等. 题目1-Jacobi迭代法和Seidel迭代法 来源:<数值分析>第5 ...

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

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

  6. sor迭代法求解线性方程组(Matlab)

    sor迭代法求解线性方程组(Matlab) 函数文件(sor.m) 该函数不含停止的误差判断条件 function [x,n] = sor(A,b,x,w,it_max) % 求线性方程组的sor(s ...

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

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/yyywww666/article/details/42805071 算法介绍(迭代法介绍): 代码C ...

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

    算法介绍(迭代法介绍): 代码C语言实现; # include<stdio.h> # include<math.h> # define N 6 /* *使用雅可比迭代法和高斯- ...

  9. matlab 高斯迭代法求解,高斯迭代法matlab算例

    Matlab 线性方程组的迭代解法 Gauss-Seidel 迭代法 Matlab 线性方程组的迭代解法 Gauss-Seidel 迭代法实验报告 1.熟悉 Gauss-Seidel 迭代法,并编写 ...

最新文章

  1. JavaScript 四. Math对象的属性和方法
  2. c++控制台下输出sin函数图形
  3. 阿里巴巴60万年薪抢毕业生 必须是公认技术牛人
  4. Ubuntu上手动安装sbt
  5. ensp查看历史配置命令_eNSP常用命令
  6. PHP——smarty模板(第一天)
  7. 家族关系查询系统程序设计算法思路_【学习笔记】数据库基础 - 查询优化
  8. BufferQueue 和 gralloc
  9. 经纬度坐标系转东北天_大地坐标系(WGS-84)、地心地固坐标系(ECEF)与东北天坐标系(ENU)的相互转换C语言代码分享...
  10. i茅台app上线首日,直接冲到了App Store免费榜第一
  11. 2020年python工资一般多少-武汉Python薪资一般是多少?真实数据告诉你
  12. Flash Player9.0 跟Flash Player8.0区别
  13. 台湾芯唐(华邦)强势推出:W79E2051/W79E4051,兼容AT89C2051/4051
  14. 史上最全Python快速入门教程
  15. 接口测试平台-18:首页完善和项目模块初窥
  16. 为什么很多人选择bgp机房托管
  17. VS code Markdown Preview Enhanced 预览白色改为黑色
  18. js如何修改对象的padding属性
  19. C语言 求最大值和最小值
  20. 网络流量分析 NetFlow是什么 详解 科普 ~互联网业务流量监测技术的应用和设计---perfect

热门文章

  1. 微信小程序生成图片分享朋友圈
  2. widows批处理精选
  3. python俗称_python中文叫什么
  4. 如何利用python准确预测双色球开奖结果
  5. springboot仓储系统出入库模块设计系统java ssm
  6. 传统 + 十六进制 色
  7. c语言输入一串字符统计各字母出现次数,统计输入字符各个字母出现频率的解题思路...
  8. Fortran编程(VScode配置)——笔记2
  9. 50道mysql笔试题目及答案_2020年MySQL数据库面试题总结(50道题含答案解析)
  10. 面试笔试整理3:深度学习机器学习面试问题准备(必会)