解线性方程组(二)
实验类型:●验证性实验 ○综合性实验 ○设计性实验
实验目的:进一步熟练掌握用Jacobi迭代法和Gauss-Seidel法解线性方程组的算法,提高编程能力和解算线性方程组问题的实践技能。
实验内容:
1)取初值性x(0)=(0,0,0,0)T, 精度要求ε=10-6,用Jacobi迭代法解线性方程组
2)取初值性x(0)=(0,0,0,0)T, 精度要求ε=10-6,用Gaoss-Seidel迭代法解线性方程组
实验原理:Jacobi迭代算法,Gaoss-Seidel迭代算法。
实验任务及说明:
- 从一般迭代法收敛性理论上分析并讨论1)、2)两个问题所选用的迭代方法是否收敛,若分析过程涉及到四次代数方程求根可用Matlab的roots函数求多项式的根,请将分析、讨论过程及收敛性结论写在规格为A4的打印纸上。
- 分别用Jacobi迭代算法,Gaoss-Seidel迭代算法手工解算1)、2)两个问题的线性方程组,清楚的写出迭代公式,要求严格按照算法步骤手工计算,其中间计算结果保留五位小数,手工迭代至少迭代三步,计算出X(1),X(2),X(3),请将手工计算过程写在规格为A4的打印纸上,对计算过程进行总结和梳理后在A4纸上分别手工画出Jacobi迭代算法,Gaoss-Seidel迭代算法的程序设计流程图(提示:算法开始或结束--用椭圆框;类似赋值语句(算法公式)的执行处理--用矩形框,赋值语句(算法公式)写在矩形框内;条件判断---用菱形框,条件判断表达式写在菱形框里,条件判断必须有两个出口即两个流出的流程线,在流出的流程线傍边要清楚的标出Yes或No)。
- 用Matlab编写程序上机计算并输出中间结果(可参考马昌凤柯艺芬编著的数值计算方法(MATLAB版) ,科学出版社2020.11. Page49,Page51 );请将算法流程图(使用Word画图)、程序代码、调试截图记录、输入数据截图记录、输出的中间结果截图记录及最终计算的结果截图记录等作为实验报告内容编排成word文档,然在规格为A4的打印纸上双面打印,实验报告中的word文档的文字采用宋体5号,单倍行距,报告中截图上的文字不得小于宋体六号,截图文字的字迹必须清晰可见!。
- 请在实验报告中验证计算机程序迭代计算的前三步近似解向量X(1),X(2),X(3)与手工迭代计算的前三步近似解向量X(1),X(2),X(3)是否一致,要求将手工计算的前三步结果和计算机程序计算的前三步结果列表对比,经过对比分析在列表后的文档中清楚给出是否一致的验证结论。
- 纸质版实验报告装订顺序:①实验任务(本文档版式不得做任何改动);②实验报告正文(Word文档);③写在A4纸上的手工分析与计算(也可以将A4纸上详细手工分析与计算过程拍照成JPG图片插入在实验报告的word 电子版中随Word文档双面打印)。
实验步骤
- 要求上机实验前先进行算法收敛性分析并手工计算、对手工计算进行总结后画出流程图,再编写出程序代码;
- 编辑录入程序;
- 记录运行时的输入(截图)和输出(截图)。调试程序并记录调试过程中出现的问题(截图)及修改程序的过程(截图);
- 经反复调试后,运行程序并验证程序运行是否正确,必须明确写出分析对比过程及验证结论。
实验报告:根据实验情况和结果撰写并递交实验报告(含手工分析与计算)。
实验总结:(学会了......; 掌握了......; 训练了......; 发现了......; 今后学习中......有待提高。)
程序代码
电子报告word文件命名规则:专业班级-完整学号-实验X-姓名.doc, 如信息123班学号为201212030315的郭海涛同学实验2报告word文件命名则应是:信息123-201212030315-实验2-郭海涛.doc, 其中 .doc是Word文件扩展名。
特别提醒:学委负责检查电子文件命名规范,命名不规的将不接收。每人必需提交电子报告和纸质报告各一份(两者内容一致,纸质版实验报告要求用A4纸张双面打印,按规定的装订顺序装订)。本实验任务书版式不得做任何改动。电子报告以班为单位提交压缩包.
问题一:
手写算法迭代过程及判断是否收敛过程:

流程图:
算法流程图:

程序设计流程图:

程序代码:
function [y,n]=Jacobi(A,b,x0,ep)
A=[14 4 4 4;4 14 4 4;4 4 14 4;4 4 4 14];
b=[-4;16;36;56];
x0=[0;0;0;0];
% epslion为误差值
epslion=1.0000e-06;
% N为自己设置的迭代次数
N=100;
D=diag(diag(A)); %D为A的对角矩阵
U=triu(A,1); %U为A的上三角矩阵
B=-D\(L+U); %B为迭代矩阵
g=D\b;error=1;n=0;
for i=1:N
while error>epslion && n<N
y=x0;x0=B*x0+g;error=norm(y-x0,inf);
if error>epslion
n=n+1;
fprintf('第%d次jacobi迭代结果为:',n)
disp(x0);
fprintf('第%d次迭代结果的误差为:\n',n);disp(error)
break
end
if error<=epslion
n=n+1;fprintf('第%d次jacobi迭代结果为:',n)
disp(x0);fprintf('第%d次迭代结果的误差为:\n',n);disp(error);
fprintf('该方程组的jacobi迭代法的最小迭代次数为:')
disp(n);break
end
end
end
end

| 变量 | X1(k) | X2(k) | X3(k) | X4(k) | ||||
| 迭代次数 | 手算 | Matlab | 手算 | Matlab | 手算 | Matlab | 手算 | Matlab |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | -0.28571 | -0.2857 | 1.14286 | 1.1429 | 2.57143 | 2.5714 | 4.00000 | 4.0000 |
| 2 | -2.48980 | -2.4898 | -0.65306 | -0.6531 | 1.18367 | 1.1837 | 3.02041 | 3.0204 |
| 3 | -1.30029 | -1.3003 | 0.65306 | 0.6531 | 2.60641 | 2.6064 | 4.55977 | 4.5598 |
手工计算过程中保留五位小数,matlab程序中保留的是四位小数,将我手工计算的结果保留四位小数和matlab的结果比对后完全一致。
问题2:
程序代码:
function x=Gauss_Seidel_fun(A,b,n,x0,tol,N)
k=-1;
while k<N
for i=1:n
if i==1
x(1)=(b(1)-A(1,2:n)*x0(2:n))/A(1,1);
elseif i==n
x(n)=(b(n)-A(n,1:n-1)*x(1:n-1))/A(n,n);
else
x(i)=(b(i)-A(i,1:i-1)*x(1:i-1)-A(i,i+1:n)*x0(i+1:n))/A(i,i);
end
end
if norm(x-x0)<tol
break;
end
x0=x;k=k+1;
disp(['when k=',num2str(k)]);
disp('x=');disp(x); %输出中间结果
end
if k==N
disp('迭代次数已到达上限!');
end
disp(['迭代次数 k=',num2str(k)])
end
运行时的输入和输出:

手工计算结果与程序运行结果对比:
| 变量 | X1(k) | X2(k) | X3(k) | X4(k) | ||||
| 迭代次数 | 手算 | Matlab | 手算 | Matlab | 手算 | Matlab | 手算 | Matlab |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | -2.66667 | -2.6667 | 0.05556 | 0.0556 | 0.89815 | 0.8981 | 4.35725 | 4.3573 |
| 2 | -1.77225 | -1.7722 | 0.64258 | 0.6426 | 2.59747 | 2.5975 | 4.62232 | 4.6223 |
| 3 | -1.35627 | -1.2492 | 0.87560 | 0.8935 | 2.79399 | 2.8725 | 4.69278 | 4.7248 |
手工计算过程中保留五位小数,matlab程序中保留的是四位小数,将我手工计算的结果保留四位小数和matlab的结果比对后在k=0和k=1时完全一致,在k=3时有出入。
实验总结:
学会了另外两种迭代方法:Jacobi迭代法和Gauss-Seidel法求解线性方程组,以及如何判断算法收敛; 掌握了这两种迭代方法的求解迭代过程以及word画流程图,还有这两种算法在面对同一个线性方程组的优势; 训练了function函数的使用以及在纸上解题的能力和独立思考以及自学能力,还有独立编程并实现这两种算法的能力; 今后学习中对于算法框图的构建以及程序设计框图的展现还有待提高。
相关文章:
解线性方程组(二)
实验类型:●验证性实验 ○综合性实验 ○设计性实验 实验目的:进一步熟练掌握用Jacobi迭代法和Gauss-Seidel法解线性方程组的算法,提高编程能力和解算线性方程组问题的实践技能。 实验内容: 1)取初值性x(0)(0,0,0,0)T, 精度要求ε…...
HarmonyOS Next 实战卡片开发 02
HarmonyOS Next 实战卡片开发 02 卡片开发中,还有一个难点是显示图片。其中分为显示本地图片和显示网络图片 显示本地图片 卡片可以显示本地图片,如存放在应用临时目录下的图片。路径比如 /data/app/el2/100/base/你的项目boundleName/temp/123.png 以…...
FastDDS服务发现之PDP的收发
目录 PDP发送PDP接收EDP更新 EntityID 通过FastDDS服务发现之PDP和EDP的创建这一节内容,可以了解服务发现的概念,机制和PDP/EDP中各类对象的创建,本文详细介绍Simple PDP发送数据,接收数据和处理报文的流程。 PDP发送 通过在RTP…...
【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】试卷(2)
前言 大家好吖,欢迎来到 YY 滴计算机网络 系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 本博客主要内容,收纳了一部门基本的计算机网络题目,供yy应对期中考试复习。大家可以参考 本章是去答案版本。带答案的版本在下…...
关于有机聚合物铝电容的使用(2)
在使用时需要特别注意的几个应用场景: 在有较长供电电缆或PCB电源布线较长的场合。 这个场景应当仍与有机聚合物铝电容的耐压有关。 假设在相同的冲击电流下,较长的供电电缆和PCB布线,那么电缆和PCB布线上产生的冲击电压就会越高。故而&…...
Linux -- 进程初印象
目录 预备知识 切入点 PCB 看见进程 pid getpid 函数 预备知识 Linux -- 冯诺依曼体系结构(硬件)-CSDN博客https://blog.csdn.net/2301_76973016/article/details/143598784?spm1001.2014.3001.5501 Linux -- 操作系统(软件…...
【超级简单】Facebook脸书视频下载一键保存手机
Facebook作为目前服务全球30亿用户,尤其是出海和跨境用户没有办法忽视的平台,提供了一个在线平台,使用户分享照片、视频、状态更新和链接等内容,然而,令人遗憾的是,用户没有办法直接将照片和视频保存到本地…...
昇思大模型平台打卡体验活动:项目2基于MindSpore通过GPT实现情感分类
昇思大模型平台打卡体验活动:项目2基于MindSpore通过GPT实现情感分类 1. 载入与处理数据集 在情感分类任务中,我们使用了IMDB数据集,首先需要对数据进行加载和处理。由于原数据集没有验证集,我们将训练集重新划分为训练集和验证…...
【JAVA】会员等级互通匹配数据库表设计
1、使用数据库:mysql数据库 设计四张表: 会员互通合作商配置表 会员互通合作商会员等级配置表 会员互通合作日志表 会员互通合作等级映射表 CREATE TABLE user_level_partner ( id bigint NOT NULL AUTO_INCREMENT, partner_novarchar(100) DE…...
论文阅读:基于语义分割的非结构化田间道路场景识别
论文地址:DOI: 10.11975/j.issn.1002-6819.2021.22.017 概要 环境信息感知是智能农业装备系统自主导航作业的关键技术之一。农业田间道路复杂多变,快速准确地识别可通行区域,辨析障碍物类别,可为农业装备系统高效安全地进行路径规…...
linux部分问题以及解决方式
目录 1.ubuntu桌面不显示了,只有命令行1.1启动gdm3服务1.2安装lightdm桌面管理包 1.ubuntu桌面不显示了,只有命令行 有如下两种解决方式。 1.1启动gdm3服务 这种方法只能临时生效,每次重启都要手动启动 sudo service gdm3 restart 1.2安装…...
qt QTreeWidget详解
1、概述 QTreeWidget 是 Qt 框架中的一个类,用于以树形结构展示数据。它基于 QTreeView 并提供了更高级别的接口,使得添加、删除和管理树形结构中的项变得更加简单。QTreeWidget 支持多级嵌套,每个项(QTreeWidgetItem)…...
注意力机制的目的:理解语义;编码器嵌入高纬空间计算;注意力得分“得到S*V”;解码器掩码和交叉注意力层用于训练;最终的编码器和输出实现大模型
目录 注意力机制的目的:理解语义中的它是小白兔 词编码器嵌入高纬空间 计算注意力得分“得到S*V” 权重QKV:连接权重 训练阶段使用解码器:翻译后的语句 解码器掩码和交叉注意力层用于训练 最终的编码器和输出实现大模型 Transformer模型中,QKV QKV的作用 举例说明…...
[java][jdk]JDK各个版本的核心特性
JDK 8至JDK 21的主要新特性概览: JDK 8 Lambda表达式:引入了函数式编程的特性,使得代码更加简洁和灵活。Stream API:提供了一种新的抽象,可以让你以声明性方式处理集合数据。新的日期和时间API:引入了jav…...
双十一”买买买!法官告诉你注意这些法律问题
“双十一”等购物节来临之际,某些电商平台为了吸引消费者提前下单预订商品,通过大力宣传付定金可享受更多优惠等方式开启预售模式。那么,如果消费者在支付定金后,因各种原因最终没有支付尾款,能否要求商家退还定金&…...
PyQt5
基于PyQt5的重绘机制实现加载页面 效果预览代码说明控件初始化超时回调重绘事件缩放事件 代码获取 效果预览 直接看图,效果展现为跟随黑点顺时针转动,且有明暗变化 代码说明 控件初始化 initUI主要用于初始化用户界面(UI)。它创建了一个具有特定样式…...
【Linux】常用命令(2.6万字汇总)
文章目录 Linux常用命令汇总1. 基础知识1.1. Linux系统命令行的含义1.2. 命令的组成 2. 基础知识2.1. 关闭系统2.2. 关闭重启2.3. 帮助命令(help)2.4. 命令说明书(man)2.5. 切换用户(su)2.6.历史指令 3.目录…...
Vue3-06_路由
路由 后台路由是根据请求url,匹配请求处理的后台模块(路径) 前台根据访问路径,决定显示的内容。 路由就是: 访问hash 与内容的对应关系 路由的工作方式 用户点击页面的路由链接导致url地址栏中的Hash值发生了变化前…...
物理验证Calibre LVS | SMIC Process过LVS时VNW和VPW要如何做处理?
SMIC家工艺的数字后端实现PR chipfinish写出来的带PG netlist如下图所示。我们可以看到标准单元没有VNW和VPW pin的逻辑连接关系。 前几天小编在社区星球上分享了T12nm ananke_core CPU低功耗设计项目的Calibre LVS案例,就是关于标准单元VPP和VBB的连接问题。 目前…...
量化分析工具日常操作日记-5-通合科技
使用量化分析微信小程序工具“梦想兔企业智能风险分析助手”日常操作日记-5-军工-通合科技(300491)。 周末国家新政策,要大力支持军工行业,我用工具挖掘了两个低位股,供大家参考。通合科技(300491ÿ…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
