线性方程组——Jacobi迭代和G_S迭代
1)方程组Ax=b
用简单迭代法(Jacobi迭代法)和G-S迭代法分别解方程组。精确到小数点后5位,最大迭代次数N=100,说明是否收敛
Jacobi迭代代码如下
Jacobi.m
function [x, k, index]=Jacobi(A, b, ep, it_max)
%求解线性方程组的Jacobi迭代法,其中
% A ---方程组的系数矩阵
% b ---方程组的右端项
% ep ---精度要求。省缺为1e-5
% it_max ---最大迭代次数,省缺为100
% x ---方程组的解
% k ---迭代次数
% index --- index=1表示迭代收敛到指定要求;
% index=0表示迭代失败
if nargin <4 it_max=100; end
if nargin <3 ep=1e-5; end
n=length(A); k=0;
x=zeros(n,1); y=zeros(n,1); index=1;
while 1for i=1:n y(i)=b(i);for j=1:nif j~=iy(i)=y(i)-A(i,j)*x(j);endendif abs(A(i,i))<1e-10 | k==it_maxindex=0; return;endy(i)=y(i)/A(i,i);endif norm(y-x,inf)<epbreak;endx=y; k=k+1;
end
G_S迭代代码如下
G_S.m
function [v,sN,vChain]=G_S(A,b,x0,errorBound,maxSp)
%Gauss-Seidel迭代法求解线性方程组
%A-系数矩阵 b-右端向量 x0-初始迭代点 errorBound-近似精度 maxSp-最大迭代次数
%v-近似解 sN-迭代次数 vChain-迭代过程的所有值
step=0;
error=inf;
s=size(A);
D=zeros(s(1));
vChain=zeros(15,3);%最多能记录15次迭代次数
k=1;
fx0=x0;
for i=1:s(1)D(i,i)=A(i,i);
end;
L=-tril(A,-1);
U=-triu(A,1);
while error>=errorBound & step<maxSp
x0=inv(D)*(L+U)*x0+inv(D)*b;
vChain(k,:)=x0';
k=k+1;error=norm(x0-fx0);fx0=x0;step=step+1;
end
v=x0;
sN=step;
主函数
clc,clear
A = [1 2 -21 1 12 2 1];
b = [135];
[x k index] = Jacobi(A,b)
x0 = [000];
errorBound = 1e-5;
maxSp = 100;
[aa bb cc] = G_S(A,b,x0,errorBound,maxSp)
(2)方程组Ax=b
这只不过就是把上个问题中的主函数里面的矩阵和向量换成本题向量罢了
线性方程组——Jacobi迭代和G_S迭代相关推荐
- 数值计算大作业:Jacobi与Gauss -Seidel迭代求解线性方程组(Matlab实现)
作为研究生的入门课,数值计算的大作业算是所有研究生开学的重要编程作业. 我把Jacobi与Gauss -Seidel迭代求解线性方程组的数值计算作业在MATLAB中编程实现.具体的程序详细标注后放在文 ...
- Jacobi迭代与SOR迭代求解希尔伯特矩阵
给出线性方程组 Hn*x = b,其中系数矩阵Hn为希尔伯特矩阵: 假设 x ∗ =(1, 1, . . . , 1)T,b = Hnx ∗.若取 n = 6,8, 10,分别用 Jacobi 迭代法 ...
- Matlab | Lab4——用LU 分解法、 Jacobi 迭代、 Gauss-Seidel 迭代 解线性病态方程组(系数矩阵为Hilbert矩阵)
1.要求 考虑线性方程组Hx=b,其中H为n阶Hilbert矩阵,即 通过先给定解(例如取x的各个分量为1),再计算出右端向量b的办法给出一个精确解已知的问题. (1)分别编写Doolittle LU ...
- Jacobi(雅可比)迭代原理与matlab代码
Jacobi(雅可比)迭代原理与matlab,C代码 Jacobi迭代分量形式: xi(k+1)=1/aii(bi−∑j≠ii=1naijxj(k))\ x_i^{(k+1)}=1/a_{ii}(b_ ...
- 数值代数课设(99分)--基于Jacobi迭代,GS迭代,SOR迭代对泊松方程的求解[matlab](上)
基于Jacobi迭代,GS迭代,SOR迭代对泊松方程的求解 摘要 随着大数据时代的到来,人们需要处理的数据越来越多,所需要考虑的条件因素也在增加.在工程方面,人们所需要处理的问题往往会转化为找出大规模 ...
- J迭代和GS迭代的矩阵方程形式
Jacobi迭代和Gauss-Seidel迭代的矩阵方程形式 给定线性方程组:Ax=bAx = bAx=b 将矩阵AAA分解为:A=D−L−UA = D-L-UA=D−L−U 其中: D=[a11a2 ...
- 敏捷团队如何通过Leangoo领歌迭代看板进行迭代规划和任务协同
迭代看板上的用户故事源自于产品Backlog,迭代计划会议上面团队通过产品Backlog的迭代规划功能,规划本迭代将要完成的用户故事.所以我们需要先进入产品Backlog看板. 1.进入Leangoo ...
- 强化学习——值迭代和策略迭代
[强化学习]值迭代和策略迭代 在强化学习中我们经常会遇到策略迭代与值迭代,但是很多人都搞不清楚他们两个之间的区别,他们其实都是强化学习中的动态规划方法(DP). --<Reinforcement ...
- python 怎么算l2范数_python之彻底搞懂迭代、可迭代、迭代器的区别(一)
一.基本概念 迭代(Iteration)是动词,是指通过遍历获取某容器内所有元素,特指遍历获取这个动作. 可迭代 (iterable)是形容词,是指某容器可被遍历获取内部所有元素,特指容器内元素可被遍 ...
最新文章
- Devexpress 10.2.3 Demo 批量生成脚本
- mac命令行用sublime,vscode,atom打开目录或文件的方法
- python网格搜索核函数_机器学习笔记——模型调参利器 GridSearchCV(网格搜索)参数的说明...
- 台湾瑞萨Synergy 助客户攻物联网
- OPENCV图像轮廓检测
- 继续教育统考计算机和英语难度怎么样,网络教育英语统考90分的难度怎么样
- 现代软件工程 作业 结对编程 模板
- linux龙芯自动挂载u盘,Windows Subsystem for Linux (WSL)挂载移动硬盘U盘
- DotFuscator 小记
- SpringBoot非官方教程 | 第三篇:SpringBoot用JdbcTemplates访问Mysql
- 拳王寻你项目公社:普通人怎么创业,普通人的创业法宝,容易上手的兼职副业项目
- python函数递归 斐波那契数列
- 从键盘读取数据,回车才能显示的问题
- ★LeetCode(17)——电话号码的字母组合(JavaScript)
- 三层交换和二层交换之间的端口聚合
- Mac硬件温度管理软件TG Pro
- 手工脱壳之 ASPack压缩壳【随机基址】【重定位表加密】
- 改变elementui卡片crad样式_Ueditor文字和echarts图片 生成 word 前端解决方案
- AD怎么输入坐标_如何把CAD图纸坐标转换成现场坐标?
- 如何使用jupyter notebook的PPT插件rise进行分页显示
热门文章
- t6UFO资产负债表
- 软件项目管理第4版课后习题第十六章
- 自动透视校正为四边形对象
- linux切换桌面的快捷键,SUSE Linux Gnome桌面快捷键整理
- wxpython多个面板_wxpython笔记:Wxpython pannel切换
- ICCV, ECCV, CVPR,IEEE的关系
- hive难点以及例子SXT
- 对于无人驾驶技术(驾驶自动化)L0-L5分级的说明
- 用VMware安装Windows 8.x虚拟机镜像系统详细流程
- Vue 3 + Vite + Eslint + prettier + husky + lint-staged 搭建基础项目