解线性方程组(二)
实验类型:●验证性实验 ○综合性实验 ○设计性实验
实验目的:进一步熟练掌握用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ÿ…...
windows和linux验证MD5码方式
一、linux linux自带MD5码验证: $ md5sum target_file.txt 二、windows windows自带的MD5码验证: $ certutil -hashfile target_file.txt MD5...
构造函数原型对象语法、原型链、原型对象
目录 一、前言 二、编程思想 面向过程 面向对象 三、构造函数 四、原型对象 constructor 属性 对象原型 原型继承 原型链 一、前言 通过本篇博客,我们将了解面向对象编程的一般特征,掌握基于构造函数原型对象的逻辑封装,掌握基于原…...
鸿蒙UI开发——自定义UI绘制帧率
1、概 述 随着设备屏幕的不断演进,当前主流设备采用LTPO屏幕(可变刷新率屏幕),此类屏幕支持在多个档位之间切换屏幕帧率。 对于快速变化的内容,如射击游戏,交互动画等,显示帧率越高࿰…...
鸿蒙基本组件结构
组件结构 1. 认识基本的组件结构 ArkTS通过装饰器Component 和Entry 装饰 struct 关键字声明的数据结构,构成一个自定义组件 自定义组件中提供了一个build函数,开发者需要在函数内以链式调用的方式进行基本的UI描述,UI描述的方法请参考UI描述…...
柔性鞋材振动刀智能视觉裁切机市场报告:未来几年年复合增长率CAGR为5.4%
震动刀切割设备是一种利用振动刀片在各种非金属材料表面上切割的设备,振动刀切割机利用刀片高频振动和360度旋转,能保证每分钟上万次的振动频率,可在平面进行垂直切割,锋利裁剪。震动刀切割设备切割速度快,可以单层切割…...
【计算机网络】基础知识,常识应用知识
局域网使用的是广播技术,广域网使用的是点对点技术,使用的协议不同。局域网工作在数据链路层,可以不要网络层,不存在路由选择问题。1968年6月,世界上最早的计算机网络是ARPAnet服务原语:请求、指示、相应、…...
【Linux进程篇1】认识冯·诺依曼体系结构(引出进程详解)
--------------------------------------------------------------------------------------------------------------------------------- 每日鸡汤: 用这生命中的每一秒,给自己一个不后悔的未来。 -----------------------------------------------…...
使用iviewui组件库的坑
背景 使用view-design组件库的Input组件的时候,按照产品的要求,输入框中只能键入正整数。 使用效果 如果直接使用组件的type属性,设置类型为number时,乍一看没啥问题,但是当我们键入 小数点(.) 或者 e/E 后面没有跟任…...
高级sql使用技巧
窗口函数(Window Functions): 窗口函数可以在结果集的行之间进行计算,例如计算移动平均值、排名等。在使用时,可以使用 OVER() 语句来定义窗口。例如: sql SELECT employee_id,salary,AVG(salary) OVER (P…...
403 Request Entity Too Lager(请求体太大啦)
昨天收到 QA 的生产报障,说是测试环境的附件上传功能报了 403 的错误,错误信息:403 Request Entity Too Lager。我尝试复现问题,发现传个几兆的文件都费劲啊,一传一个失败。不用说,项目用到 ng 代理&#x…...
深圳网站搭建找哪里/百度网站排名查询工具
python检测图片是否存在脚本 使用(此为测试表结构,与公司立场无关),查询结果写入当前目录的1.txt&2.txt中 代码写的烂,大神别吐槽,python刚学2天,不容易 ./pycheck404url.py 0 100 1 0:起始便宜量,100 查询总数 1:查询主表 ./pycheck404url.py 0 100 2 0:起始便…...
电子商务网站建设实战/网站搜索引擎优化诊断
CWebBrowser2 * pBrowse (CWebBrowser2 *) GetDlgItem(IDC_EXPLORER1);COleVariant sLoc("http://localhost");pBrowse->Navigate2(sLoc, NULL, NULL, NULL, NULL);转载于:https://www.cnblogs.com/zzili/archive/2012/12/06/6663304.html...
如何建立一家公司网站/今天nba新闻最新消息
2019独角兽企业重金招聘Python工程师标准>>> 要对一张模版图片进行处理,替换其中的部分,包括文字和图片。 1、主要使用 imagecreatefromjpeg 从JPG文件创建图像对象、 imagecreatefrompng从PNG文件创建图像对象、 getimagesize获取图像对象的…...
wordpress上传文件/网络营销工具有哪些?
1. 注册页面后端实现 import refrom django.shortcuts import render, redirect from django.views import View from django import http from users.models import User# 1.注册页面 class RegisterView(View):def...
网站建设设计图软件/软件推广接单平台
1. ReferenceEquals, , Equals Equals , , ReferenceEquals都可以用于判断两个对象的个体是不是相等。 a) ReferenceEquals ReferenceEquals是Object的静态方法,用于比较两个引用类型的对象是否是对于同一个对象的引用。对于值类型它总是返回false。(因…...
大连网站制作中企动力/代运营竞价公司
为什么80%的码农都做不了架构师?>>> 《Debian服务器设置入门》系列教程 前言 蓝森林 http://www.lslnet.com 2002年11月29日 16:01 作者:kanaka [冷罡华]联系:kanakayeah.net,lenghaier.com版本:0.2.1版权:…...