分别用高斯消元法和列主元消去法求解,(自制)表格比较两种算法的结果与精度,分析实验出现的问题,并总结解决办法。

以下是一个使用高斯消元法和列主元消去法求解线性方程组的示例:

假设我们要解决以下线性方程组:

4x + 2y + z = 8 -2x + y - 3z = -11 3x - 2y + 4z = 10

首先,我们可以将该线性方程组表示为增广矩阵的形式:

[4 2 1 | 8] [-2 1 -3 | -11] [3 -2 4 | 10]

使用高斯消元法,我们可以进行以下操作:

  1. 将第一个方程除以4,得到1x + 0.5y + 0.25z = 2;
  2. 将第一个方程的2倍加到第二个方程上,得到0x + 2y - 2.5z = -3;
  3. 将第一个方程的3倍减去第三个方程,得到0x + 0y + 2.25z = 4;
  4. 将第二个方程的1/2倍加到第三个方程,得到0x + 0y + 2.25z = 4。

现在,我们得到了一个上三角形矩阵,可以通过回代法求解。我们可以从最后一行开始, 得到z = 4 / 2.25 = 1.7778。 然后,通过第二个方程,我们可以得到y = (-3 + 2.5z) / 2 = 0.4444。 最后,通过第一个方程,我们可以得到x = (2 - 0.5y - 0.25z) / 1 = 1.5556。 因此,解为x = 1.5556,y = 0.4444,z = 1.7778。

接下来,我们使用列主元消去法来解决相同的线性方程组。列主元消去法与高斯消元法的主要区别在于选择主元的方式。 在列主元消去法中,我们会在每一列中选择绝对值最大的元素作为主元,以避免除以零的情况。

首先,我们还是将线性方程组表示为增广矩阵的形式:

[4 2 1 | 8] [-2 1 -3 | -11] [3 -2 4 | 10]

然后,我们会选择第一列中绝对值最大的元素,并将其作为主元。在第一行和第三行中,4的绝对值最大,因此我们将第一行与第三行交换。

[3 -2 4 | 10] [-2 1 -3 | -11] [4 2 1 | 8]

现在,我们可以进行列主元消去法的操作:

  1. 将第一个方程除以3,得到1x - (2/3)y + (4/3)z = 10/3;
  2. 将第一个方程的2倍加到第二个方程上,得到0x + (1/3)y - (10/3)z = -29/3;
  3. 将第一个方程的4倍减去第三个方程,得到0x + (10/3)y - (14/3)z = -2/3;
  4. 将第二个方程的3倍减去第三个方程,得到0x + 0y + 6z = -3。

现在,我们得到了一个上三角形矩阵,可以通过回代法求解。我们可以从最后一行开始, 得到z = -3 / 6 = -0.5。 然后,通过第二个方程,我们可以得到y = (-29/3 + (10/3)z) / (1/3) = -3。 最后,通过第一个方程,我们可以得到x = (10/3 - (2/3)y - (4/3)z) / 1 = 1。 因此,解为x = 1,y = -3,z = -0.5。

下面是一个比较高斯消元法和列主元消去法结果与精度的表格:

方程组的解高斯消元法列主元消去法
x1.55561
y0.4444-3
z1.7778-0.5

从上表可以看出,高斯消元法和列主元消去法得到的解略有不同。这是由于高斯消元法在选择主元时可能选择了较小的元素,从而导致了舍入误差的累积。而列主元消去法通过选择绝对值最大的元素作为主元,减少了这种累积误差。

分析实验中出现的问题:

  1. 高斯消元法可能出现除以零的情况,如在第一个方程中除以了4。这是因为高斯消元法不对主元进行选择,可能导致主元为零。解决方法是在选择主元之前,通过交换行或列,确保主元不为零。
  2. 高斯消元法在计算过程中可能会产生大量的舍入误差。这是由于浮点数的有限精度表示。解决方法是在计算过程中尽量避免大幅度的数值变化,比如除以较大的数或相减较大的数,可以通过缩放矩阵或增加精度来减少舍入误差。
  3. 列主元消去法可以避免除以零的情况,但可能会选择一个相对较小的元素作为主元,从而导致舍入误差的累积。解决方法是在选择主元时,可以通过交换行或列,选择绝对值最大的元素作为主元,从而减少误差的累积。

综上所述,高斯消元法和列主元消去法是两种常用的求解线性方程组的方法。尽管高斯消元法较为简单,但在某些情况下可能出现除以零的情况和舍入误差的累积。列主元消去法通过选择绝对值最大的元素作为主元,可以避免除以零的情况和减少舍入误差的累积。因此,在实际使用中,可以根据具体情况选择适合的方法来求解线性方程组。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/1858.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验2 组合逻辑电路与时序逻辑电路设计

实验目的: 1.构建基于verilog语言的组合逻辑电路和时序逻辑电路; 2.掌握verilog语言的电路设计技巧。 3.完成如下功能:加法器、译码器、多路选择器、计数器、移位寄存器等。 实验内容及步骤: 一、实验原理 原理图文件《数字系统设计_sch.pdf》,找到如下两个部分: 图…

一文扫盲(5):实验室管理系统的界面设计

本次带来第5期:实验室管理系统的设计,从系统定义、功能模块、界面构成和设计着力点四个方面讲解,大千UI工场愿意持续和大家分享,欢迎关注、点赞、转发。 一、什么是实验室管理系统 实验室管理系统是一种用于管理和监控实验室运作…

nodejs版本过高导致vue-cli无法启动的解决方案

目录 前言异常现象解决方案总结 前言 之前使用软件管家升级了Nodejs,今天在运行Vue项目的时候老是报错,查了很多资料,最后确定是Nodejs版本过高导致的。 异常现象 E:\project\ry\RuoYi-Cloud\ruoyi-ui>npm run dev> ruoyi3.6.4 dev …

13-LINUX--消息队列

一.消息队列 1.消息队列:消息队列为一个进程向另一个进程发送一个数据块提供了条件,每个数据块会包含一个类型。 2.相关函数 1>.msgget(key_t key,int msgflg) : 创建消息队列 2>. msgsnd:把消息添加到消息队列 3>.msgrcv &#xf…

CSS布局 Flex 和 Grid

在 CSS 中,理解 flex 和 Grid 布局非常重要,今天把这两个重要知识点回顾一下。 Flexbox 弹性盒子布局 弹性布局支持 flex、inline-flex,支持块和内联。 容器 轴的概念,在 Flexbox,有主轴和侧轴的概念,轴…

实验 3--表的基本操作与数据查询

文章目录 实验 3--表的基本操作与数据查询4.3.1 实验目的4.3.2 实验准备实验内容1.在 SSMS 中向数据库 YGKQ 中的表插入数据。2.使用 T-SQL 语句向 YGKQ 中的表插入数据。3.在 SSMS 中删除数据库 YGKQ 中的表数据。4.使用 T-SQL 语句删除数据库 YGKQ中的表数据。5.在 SSMS 中修…

OPAM模型(细粒度图像分类)

OPAM模型(细粒度图像分类) 摘要Abstract1. OPAM1.1 文献摘要1.2 细粒度图像分类1.3 研究背景1.4 OPAM模型创新点1.5 OPAM模型1.5.1 补丁过滤1.5.2 显着性提取1.5.3 细粒度区域级注意模型对象-空间约束方法(Object spatial constraint&#xf…

WSL安装-问题解决

WslRegisterDistribution failed with error: 0x8004032d WslRegisterDistribution failed with error: 0x80080005 Error: 0x80080005 ??????? 解决: 1、 winr输入:optionalfeatures.exe 2、打开这两项

BERT tokenizer 增加全角标点符号

bert 的词表,哪怕是 bert-base-chinese,对中文全角标点的支持不是很好 from transformers import BertTokenizerFasttokenizer BertTokenizerFast.from_pretrained(models/bert-base-chinese) tokenizer.tokenize("小明说:“你是厕所大…

javaWeb项目-网吧网咖管理系统功能介绍

项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog 1、JAVA简介 JavaSc…

Vitis HLS 学习笔记--优化指令-BIND_OP_STORAGE

目录 1. BIND_OP_STORAGE 概述 1.1 BIND_OP 1.2 BIND_STORAGE 2. 语法解析 2.1 BIND_OP 2.2 BIND_OP 用法示例 2.3 BIND_STORAGE 2.4 BIND_STORAGE 示例 3. 实例演示 4. 总结 1. BIND_OP_STORAGE 概述 BIND_OP_STORAGE 其实是两个优化指令的合称:BIND_OP…

easyx库的学习(文字绘制)

前言 昨天刚刚写完了基本图形的制作,今天直接可以来看看,在easyx中使用文字 直接看代码吧 文字绘制 void drawTest() {printf("hello,EasyX");//指的是在控制台打印//设置字体大小,样式settextstyle(30, 0, "微软雅黑&quo…

模块三——二分:704.二分查找

文章目录 前言二分查找算法简介特点学习中的侧重点算法原理模板 题目描述算法原理解法一:暴力解法解法二:二分查找算法算法流程细节问题循环结束的条件为什么是正确的?时间复杂度 代码实现 前言 本系列博客是逐渐深入的过程,建议…

BCLinux8U6系统部署oceanbase分布式数据库社区版之一、准备 OBD 中控机

本文记录了在BCLinux8U6操作系统的虚拟服务器准备oceanbase开源数据库的 OBD 中控机的过程。 一、中控机环境 1、虚拟服务器硬件配置 2、操作系统版本信息 [rootlocalhost ~]# cat /etc/os-release NAME"BigCloud Enterprise Linux" VERSION"8.6 (Core)&qu…

【链表】Leetcode 两数相加

题目讲解 2. 两数相加 算法讲解 我们这里设置一个头结点,然后遍历两个链表,使用一个flag记录相加的结果和进位,如果两个链表没有走到最后或者进位不等于0,我们就继续遍历处理进位;如果当前的链表都遍历完成了&#x…

移动Web学习08-响应式布局bootstrap的使用

2、响应式布局 2.1、什么响应式布局 响应式布局是一种网页设计的方法,能够使网站在不同的设备上(如桌面电脑、平板电脑、手机等)呈现出最佳的用户体验。其核心思想是使网页能够根据用户的设备和屏幕尺寸自动调整布局和内容,以适…

Unity HDRP Release-Notes

🌈HDRP Release-Notes 收集的最近几年 Unity各个版本中 HDRP的更新内容 信息收集来自自动搜集工具👈 💡HDRP Release-Notes 2023 💡HDRP Release-Notes 2022 💡HDRP Release-Notes 2021

代码随想录算法训练营第五十九天 | 503. 下一个更大元素 II、42. 接雨水

代码随想录算法训练营第五十九天 | 503. 下一个更大元素 II、42. 接雨水 503. 下一个更大元素 II题目解法 42. 接雨水题目解法 感悟 503. 下一个更大元素 II 题目 解法 题解链接 使用两个size class Solution { public:vector<int> nextGreaterElements(vector<in…

【网络原理】UDP协议的报文结构 及 校验和字段的错误检测机制(CRC算法、MD5算法)

目录 UDP协议 UDP协议的报文结构及注意事项 UDP报文结构中的校验和字段 1. 校验和主要校验的内容 2. UDP校验和的实现方式 3. CRC&#xff08;循环冗余校验&#xff09;算法 4. MD5&#xff08;Message Digest Algorithm 5&#xff09; UDP协议 上一篇文章提过&#xf…

计算机网络实验——学习记录五(TCP协议2)

一、TCP协议重传机制 TCP协议是一种面向连接、可靠的传输层协议。为了保证数据的可靠传输&#xff0c;TCP采用数据包重传的机制来应对网络传输过程中可能出现的丢包、错包和乱序等问题。 TCP协议的重传包括超时重传、快速重传、带选择确认SACK的重传和重复SACK重传四种。 二、…