Jacobi迭代法和G-S迭代法

  • 没完成的代码,仅做储存
  • 矩阵常用操作
  • Jacobi迭代实现
  • G-S迭代实现

没完成的代码,仅做储存

function [L,D,U]=LU(A)
n=length(A);
L=zeros(n,n);%矩阵初始化
U=zeros(n,n);
for i=2:nfor j=1:i-1L(i,j)=A(i,j);end
end
for i=1:n-1for j=i+1:nU(i,j)=A(i,j);end
end
D=diag(diag(A));
A=[1 -2 2-1 1 -2-2 -2 1];
[L,D,U]=LU(A);disp(-L);  %输出L
disp(D);  %输出D
disp(-U); %输出U
[x,y]=Jacobi(A);
function [x,y]=Jacobi(A,b)
n=length(A);
[L,D,U]=LU(A); %调用函数
G=D\(L+U);
[x,y]=eig(G);
% if max(abs(eig(G)))>1
%     disp('不收敛,请重新调用函数')
% end

矩阵常用操作

A = [1,-1,2,3;5,1,-4,2;3,0,5,2;11,15,0,9];
B = [0.43,43,2;-8.9,4,21];
%(1)方阵
diag(A) %主对角元素
triu(A) %上三角
tril(A) %下三角
inv(A)  %矩阵的逆
det(A)  %行列式的值
rank(A) %矩阵的秩
norm(A) %矩阵的范数
cond(A) %矩阵的条件数
trace(A)%矩阵的迹
%(2)非方阵
diag(B) %主对角元素
triu(B) %上三角
tril(B) %下三角
pinv(B)  %矩阵的逆
%B不是方阵,不存在行列式的值
rank(B) %矩阵的秩
norm(B) %矩阵的范数
cond(B) %矩阵的条件数
sum(diag(B))%矩阵的迹

Jacobi迭代实现

文件名:Jacobi_solve

function [x,error,iter]=Jacobi_solve(A,b,epsilon,max_iter)
n=length(b);
x=zeros(n,1);
error=1;
iter=0;    %输出的值初始化
B=zeros(1,n);%用于对角元素置0
L=-tril(A);%取矩阵的下三角
U=-triu(A);%取矩阵的上三角
D=diag(diag(A));%取矩阵的对角元素
L(logical(eye(size(L))))=B;%对角元素置0
U(logical(eye(size(U))))=B;
disp('k x^k err');
disp(D);
disp(L);
disp(U);
while error>epsilon && iter<max_iterfor i=1:max_itery=x;%提前将旧值赋值赋给另一个量x=D\(L+U)*x+D\b;%x应该是一个向量,进行迭代运算error=norm(x-y);%误差为两个量的范数if error>epsiloniter=iter+1;%输出达到精度的最小迭代次数breakendend
end

文件名:Jacobi_test

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

输出结果:

G-S迭代实现

function [x,error,iter]=Jacobi_solve(A,b,epsilon,max_iter)
n=length(b);
x=zeros(n,1);
error=1;
iter=0;    %输出的值初始化
B=zeros(1,n);%用于对角元素置0
L=-tril(A);%取矩阵的下三角
U=-triu(A);%取矩阵的上三角
D=diag(diag(A));%取矩阵的对角元素
L(logical(eye(size(L))))=B;%对角元素置0
U(logical(eye(size(U))))=B;
disp('k x^k err');
disp(D);
disp(L);
disp(U);
while error>epsilon && iter<max_iterfor i=1:max_itery=x;%提前将旧值赋值赋给另一个量x=(D-L)\U*x+(D-L)\b;%G-S迭代就是Jacobi直接修改此行就好error=norm(x-y);%误差为两个量的范数if error>epsiloniter=iter+1;%输出达到精度的最小迭代次数breakendend
end
A=[8 -3 24 11 -16 3 12];
b=[20;33;36];
epsilon=10e-6;
max_iter=15;
[x,error,iter]=Jacobi_solve(A,b,epsilon,max_iter);
disp(x);
disp('最大迭代次数下的误差:');
disp(error);
disp('最小迭代次数:');
disp(iter+1);

输出结果 :

数值计算方法——Jacobi迭代法和G-S迭代法相关推荐

  1. Jacobi迭代法分量形式matlab,实验4 Jacobi迭代法和GS迭代

    <数值分析>实验4 一.实验名称:Jacobi迭代法和Gauss-Seidel迭代法 二.实验目的: 熟悉求解线性方程组的Jacobi迭代法和Gauss-Seidel迭代法. 三.实验要求 ...

  2. 最优化方法:牛顿迭代法和拟牛顿迭代法

    http://blog.csdn.net/pipisorry/article/details/24574293 基础 拐点 若曲线图形在一点由凸转凹,或由凹转凸,则称此点为拐点.直观地说,拐点是使切线 ...

  3. 数值计算方法 matlab用二分法或简单迭代法求_牛顿法和二分法介绍及其在空气处理当中的应用...

    二分法 如上图所示,对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方 ...

  4. 数值计算方法——不动点迭代和牛顿迭代法

    不动点迭代和牛顿迭代法 MATLAB基础 feval函数 format long syms x 简单迭代法[不动点迭代] Newton 迭代法 作业 MATLAB基础 feval函数 用于求函数值 基 ...

  5. MATLAB Jacobi迭代法和G-S迭代法

    忘记精确小数点位数了... % 获取A和b function [A,b] = getAb(n) A = diag(repmat([3],1,n))+diag(repmat([-1],1,n-1),1) ...

  6. 数值计算方法 matlab用二分法或简单迭代法求_数学之美:牛顿-拉夫逊迭代法原理及其应用...

    [导读] 前面刚转了一篇文章提到了牛顿-拉夫逊(拉弗森)(Newton-Raphson method)方法,感觉这个数学方法很有必要相对深入写一篇文章来总结分享印证一下自己的理解.这是写本文的由来,如 ...

  7. 科学计算机解多元方程组,南京大学计算机科学与技术系 数值计算方法(第3章)3 向量和矩阵的范数 病态方程组 解线性方程组的迭代法.ppt...

    南京大学计算机科学与技术系 数值计算方法(第3章)3 向量和矩阵的范数 病态方程组 解线性方程组的迭代法.ppt 上传人:ct****5 文档编号:43116102 上传时间:2020-01-21 格 ...

  8. 数值计算方法-算法设计及其MATLAB实现

    数值计算方法是一种用于解决数学问题的方法,涉及到数值近似.数值逼近.数值积分.数值微分等等.算法设计是数值计算方法的核心,它包括了数值方法的数学原理和计算机实现的算法,能够有效地解决各种数学问题. M ...

  9. 基于Python实现Jacobi迭代法、Gauss-Seidel迭代法和SOR法方程组(一)

    标题基于Python实现Jacobi迭代法方程组计算(一) 一.首先根据习题的方程求出迭代矩阵如下: x11=round(-0.4x2-0.2x3-2.4,7) x22=round(0.25x1-0. ...

最新文章

  1. 内核启动流程分析(一)编译体验
  2. IDEA 点击进入方法内部_【推荐收藏】IDEA的Debug调试,你全会用么?
  3. 窗口分析函数_14_生成相邻下一个元素
  4. python决策树id3算法_决策树ID3算法预测隐形眼睛类型--python实现
  5. string.empty , , null 以及性能的比较
  6. jdk8新特性(接口新特性、lambda表达式、方法引用、函数式接口、Stream流)和单例设计模式
  7. mybatis入门基础(三)----SqlMapConfig.xml全局配置文件解析
  8. Pentium Pro架构/流水线及其优化 (2) - 指令流水线 存储子系统详解
  9. 一周年工作总结--wfdb库使用
  10. 2021-10-18word2vec训练过程
  11. mysql-入门教程
  12. python爬取豆瓣电影250_利用Python爬取豆瓣TOP250的电影
  13. Spark写入Hudi报分区列乱码问题java.net.URISyntaxException: Illegal character in path at index 46:
  14. Python 爬虫抓取网站汇率并将结果保存到文件
  15. python输入包含20个数的列表_学习笔记20:Python基础使用(参数,嵌套,列表,元组,字典,字符串等)...
  16. 轻办公之Windows下的可道云
  17. 自动化测试实施的前提条件
  18. 关于SpringBoot如何返回视图
  19. EBS WebADI:标准Web ADI模板@日记账导入
  20. 矢量切片地图前端开发tileserver-gl

热门文章

  1. 关于网购二手电脑防骗经验分享
  2. golang 模拟 curl post
  3. curl post请求表单_如何使用cURL发出POST请求
  4. Java-day12(面向对象中2 Debug 调试 方法的重写 多态性)
  5. vue3导入vant UI库
  6. (4.1.28.2)HttpPost.setHeader(Cookie, PHPSESSID= + PHPSESSID)方式的HttpClient工具类
  7. 解决texstudio的matrix环境Missing $ inserted、 Misplaced alignment tab character 、Missing { inserted.\dot
  8. 介绍一个 golang 图像验证码,简单易用,高安全性的“行为式验证码”Go库
  9. 微博粉丝走势监控-爬虫
  10. 基于mini2440简单计算器的实现(裸机代码)