高斯消元法 matlab_高斯消元法解线性方程组

2023-11-08

假设矩阵A是一个n阶非奇异方阵,那么对于任意一个n维向量b, 线性方程组Ax=b有唯一的解.

考虑如下方程组

我们通常为了求解它,我们把-4乘以第一行加到第二行,-7乘以第一行加到第三行,然后在进行求解.这个过程就是高斯消元法.下面我们看看通过matlab怎么实现.

%第一次消元
for  i = 2:n % 矩阵的维数
     mul = A(i,1)/ A(1,1);%求出2到n行的第一元素与第一行第一个元素的倍数
     A(i,:)= A(i,:)-mul*A(1,:);%2到n行每个元素都减去与第一行的倍数
     b(i)=b(i)-mul*b(i);%对列向量b进行同样操作
end 
%以上过程可以得到矩阵A第二行至n行第一列所有元素为0

下面需要重复执行这个过程,是的第二列,第三列,第n-1列元素对角线一下都是0

%第2-n-1次消元
for  j = 1:n-1
     for  i = j+1:n % 矩阵的维数
         mul = A(i,j)/ A(j,j);%求出2到n行的第一元素与第一行第一个元素的倍数
         A(i,:)= A(i,:)-mul*A(j,:);%2到n行每个元素都减去与第一行的倍数
         b(i)=b(i)-mul*b(i);%对列向量b进行同样操作
    end 
end
%以上过程可以得到矩阵A第二行至n行第一列所有元素为0

以上过程可能会出现问题.因为对角元有可能非常小,甚至为0. 下面需要考虑这种情况,即选主元素消元.

%第2-n-1次消元
for  j = 1:n-1
    [pp,k]= max(abs(j:n,j));%找到第j列最大的元素所在位置
     tempA = A(j,:);
     A(j,:)= A(k+j-1,:);
     A(k+j-1,:)=tempA;
     tempb = b(k);
     b(j,:)= b(k+j-1,:);
     b(k+j-1,:)=temp;%换主元
     for  i = j+1:n % 矩阵的维数
         mul = A(i,j)/ A(j,j);%求出2到n行的第一元素与第一行第一个元素的倍数
         A(i,:)= A(i,:)-mul*A(j,:);%2到n行每个元素都减去与第一行的倍数
         b(i)=b(i)-mul*b(i);%对列向量b进行同样操作
    end 
end
%以上过程可以得到矩阵A第二行至n行第一列所有元素为0

以上就是高斯消元法,下面是完整代码

clear all;
clc;
A = [1 2 3;
    3 2 4;
    1 3 2];
b = [1;1;3];
Ab
x= GaussianSolver0(A,b)



function x=GaussianSolver0(A,b)
[n,~] = size(A);
x=zeros(n,1);

for j = 1:n-1
    for i = j+1:n
        mul = A(i,j)/A(j,j);
        A(i,:)= A(i,:)-mul*A(j,:);
        b(i)= b(i)-mul*b(j);
    end
end


for i=n:-1:1
    sum=0;
    for j=n:-1:i+1
        sum=sum+x(j)*A(i,j);
    end
    x(i)=(b(i)-sum)/A(i,i);
end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

高斯消元法 matlab_高斯消元法解线性方程组 的相关文章

  • Android开发 - 掌握ConstraintLayout(六)链条(Chains)

    本文我们介绍链条 Chains 使用它可以将多个View连接起来 互相约束 可以创建横向的链条 也可以创建纵向的链条 我们以横向的链条举例 我们先创建三个按钮 我们选中三个按钮后在上面点右键创建链条 创建后我们发现这三个View平均分布地排
  • Flutter中神奇的Builder组件

    经常遇到of这样的方法 却怎么都不可用 google之后找到了正确答案 原答案地址 https stackoverflow com questions 52502498 get current tab of defaulttabcontro
  • WPS以及它的两种方式PIN与PBC的理解

    WPS Wi Fi Protected Setup PBC Push ButtonConfiguration 这个是不需要密码的方式 PIN Personal Information Number 这个是要用密码的方式通常用在电子设备的互通
  • vue2 使用 Sortable 库进行拖拽操作

    一 vue 项目使用 文档地址 https www itxst com sortablejs neuinffi html 1 安装依赖 npm i S vuedraggable 2 vue 文件引入组件 import draggable f
  • Verilog抽象和语言功能

    Verilog模型的不同级别抽象 1 系统级 system level 2 算法级 algorithm level 3 RTL级 register transfer level 以上三种属于行为描述 只有 3 才与逻辑电路有明确的对应关系
  • Java 多线程编程学习笔记(7月16号)

    文章目录 作者信息 前言 一 什么是线程 1 1 进程和线程 1 2 并发和并行 1 3 上下文切换 Context Switch 二 创建线程的三种方式 2 1 概述 2 2 继承Thread类 2 3 实现Runnable接口 2 4
  • 你还在跟客户尬聊?这4个话题帮你打开话茬!

    外贸人员了解到 跟进国外客户的过程漫长而无趣 需要具备耐心和必要技巧 才能获得回报 在跟进客户时 很多人容易紧张 因为害怕触及客户底线而放缓沟通节奏 同时缺乏可以与客户交流的话题 导致跟丢客户的风险增加 因为绝大部分海外客户一年下单几次 所
  • 【C++】流操作的基础

    include stdafx h include
  • Vue3 isRef

    isRef 检查一个对象是否为 ref 包装过的对象 实例
  • Mysql之查看数据库表锁、行锁信息

    测试环境数据库突然连接不上 经过排查因为磁盘空间不足导致Mysql服务无法使用 排查过程中没有直接定位到磁盘空间不足问题 查看了当前数据库连接情况 表锁 行锁等 查看当前线程处理情况 如果不使用full关键字 信息字段中只会显示每个语句的前
  • 微信小程序分享图片给微信好友(如二维码)

    目录 前言 一 使用哪种api 二 对图片的处理需要转化为临时路径 三 Windows端兼容性问题 前言 最近在公司开发一个微信小程序项目 用到的uniapp技术 在分享图片时 查看了uniapp的技术文档 写的还是很粗糙的 说得不太清楚
  • c++ 父类子类继承关于是复制还是共用解析

    假如 父类里面private 有一个int num 子类去继承父类以后 想要访问继承的这个num的话 不能直接访问 因为继承的时候 从逻辑上来说 是复制关系 从内存上讲 其实是共用关系 网上一个人的回答 我感觉继承从逻辑上看是复制 你比如子
  • 前端三剑客 - - HTML、CSS、JavaScript

    我是目录 1 HTML 2 CSS 3 JavaScript 1 HTML 1 简介 html 属于 xml 的一种 遵循 xml 格式 html是网页文件 可以通过html提供页面元素 dom元素 html整体结构是一个树形结构 也叫do
  • 【已解决】Keil5点击Debug Setting软件崩溃解决方法

    MDK5 38中 点击Debug Setting软件退解决方法 Nucleo板自带的ST Link 在MDK中点击Debug Setting 软件崩溃 采用删除与工程文件同名的 UVOPTX 问题依旧 应该是买到盗版的硬件了 采用旧版ST
  • Java 面试之前端相关

    前言 这篇文章包括一些前端题目 包括js jquery vue等等 正文 1 javascript与Java的不同 Java代码必须编译才能执行 而JavaScript不需编译 只需由浏览器解释执行 Java多运行于服务器 而JavaScr
  • 尊重原创,我保证这篇文章为原创作品!

    最近确实太忙 目前在研发一款新产品 博客更新有些慢 不过自己还是会坚持来这里写笔记 对自己的要求 每月至少5篇
  • CCF-CSP 202206-3 角色授权 C++满分题解

    题目链接 计算机软件能力认证考试系统 思路见注释 include
  • Mycat+分库分表

    目录 分库分表 垂直分表 垂直分库 水平分库 水平分表 mycat实操场景 mycat配置 mysql读写分离配置 38条消息 mycat 安装与配置 羽之大公公的博客 CSDN博客 mycat 分库分表 众所周知 单表1000w 库500
  • void*(指针)的类型转换-专讲

    指针是一个特殊的变量 它里面存储的数值被解释成为内存里的一个地址 所以不管你存储的是int指针 float指针 long指针 对于存储指针的内存来说都是分配同样大小的内存的 这也为使用void指针可以存储任意类型的指针打下了基础 但是注意在

随机推荐

  • vivado之初步学习同步FIFO-first word fall through类型Common Clock RAM(1)

    一 设置页面 二 查看波形图 上测试代码 timescale 1ns 1ps module fifo study simulation input sysclk reg 7 0 din 0 reg wr en 0 wire almost f
  • C语言打印各种图案合集

    1 C语言打印菱形图案 题目描述 输入一个正整数 n 并输出一个菱形 这个菱形有 2n 1 行 第一行有 2 个字母 A 之后的 n 1 行每行字母 A 的数量会递增 2 个 后面的 n 1 行至 2n 1 行 每行字母 A 的数量会递减
  • 看点:response对象,setContentType(String type)方法的使用示例。

    说明 setContentType String type 方法 指的是响应设置内容类型头 参数type可取text html text plain application x msexcel application msword等值 示例
  • 使用Python,OpenCV,本地二进制模式(LBP)进行人脸识别

    使用Python OpenCV与本地二进制模式 LBP 进行人脸识别 1 效果图 2 原理及步骤 2 1 原理 2 2 步骤 3 源码 参考 在深度学习和暹罗网络之前 面部识别算法依赖于特征提取和机器学习 这篇博客将介绍如何使用本地二进制模
  • 【blender基础】常用基础功能记录

    blender常用基础功能记录 1 游标与选中项的吸附功能 1 1 选中项 gt 游标 1 2 选中项 gt 游标 保持偏移 1 3 选中项 gt 活动项 1 4 选中项 gt 栅格点 1 5 游标 gt 栅格点 1 6 游标 gt 世界原
  • linux-Team-网卡绑定

    简介 在 linux 中 Rhel7 之前都是使用 bond 机制来实现多网卡绑定同一个 IP地址 来对网络提供访问 并按不同的模式来负载均衡或者轮回接替管理处理数据 而到Rhel7 之后 提供了一种强大的工具 nmcli工具命令 使用此工
  • 如何导出无水印_短视频如何去水印,短视频去水印原理解析

    大家平时在收集视频素材时候 可能会看见某某短视频平台一个非常中意的作品 但是保存到本地之后 切有LOGO水印感觉非常失望 因为有了水印 可能对我们2次编辑和调用会带来比较多的麻烦 如果直接用视频编辑软件进行马赛克模糊处理 又会对视频本身质量
  • JS正则表达式验证是否为11位有效手机号码

    最近在做注册登陆页面 都要涉及到验证11位有效手机号码 这里贴出代码 希望能帮到有这个开发需求的朋友 function isPoneAvailable poneInput var myreg 1 3 4 5 7 8 0 9 9 if myr
  • 一个vue项目同时兼容pc和移动端

    介绍 公司要求vue开发的项目 既有移动端又有pc端 但是移动端和pc端展示的内容不一样 同一个组件样式也不一样 移动端展示内容比pc端少 那这个时候在一个项目种怎么做的 解决方式 路由写两份 一份移动端的 一份pc端的 这两份路由地址相同
  • 使用vscode找不到Python常见包的问题

    首先明白一个概念 Python会在以下路径中搜索它想要寻找的模块 1 程序所在的文件夹 2 标准库的安装路径 3 操作系统环境变量PYTHONPATH所包含的路径 将自定义库的路径添加到Python的库路径中去 有如下两种方法 1 动态的添
  • spring 控制反转和依赖注入的简单理解

    最近在学习springboot的时候发现我对spring不能抽象说出意思 证明当时并没理解spring只是限于使用 对于刚踏入这行的毕业生这是不行的 为了养成良好的习惯 坚持将工作中的问题总结发成博客供自己观看哈哈 现在来看一个例子 创建了
  • 用Electron将web网页程序包装成桌面应用

    用Electron将web网页程序包装成桌面应用 前提 web 端页面 真的太容易一不小心关掉了 或者 标签页比较多的时候不太容易找到 所以决定快速包装一个 认识electron electron快速入门 搭建electron项目 第一步
  • MySQL数据库:SQL语句

    MySql数据库系列阅读 MySQL数据库 MySQL数据库 SQL语句 MySQL数据库 完整性约束 MySQL数据库备份与还原 MySQL数据库 编码 1 SQL概述 1 1 什么是SQL SQL Structured Query La
  • educoder 数据库

    查询CS系学生选择的课程 列出学号 课程号 成绩 select sno cno grade from Sc where Sno in select Sno from Student where Sdept CS 查询没有选C06 课程号 课
  • node连接mysql报错:ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested

    NodeJs 代码 const mysql require mysql const db mysql createPool host 127 0 0 1 user root password database dbtest1 db quer
  • uni-app微信分享 自定义分享链接在iOS中不生效的问题处理

    最近使用uni app开发了一个微信小程序使用的功能 需要用到分享给微信好友的功能 如果不做如下设置的话 本身微信默认的分享只是当前页面 分享 initShare let this this var linkUrl this GLOBAL
  • 飞机大战游戏微信小程序源码

    目录 软件介绍 微信飞机大战游戏特色 源码链接 软件介绍 微信飞机大战游戏是一款十分好玩有趣的射击类型手游 游戏的操作简单玩家很容易上手 玩法也十分的有趣 具有一定的挑战性 游戏中还会不时的出现各种让你意想不到的惊喜哦 别再犹豫 一起来感受
  • Java 4-1&2、全局异常处理

    全局异常处理 注 使用Mybatis自带的异常处理 简单异常处理 用到的注解 ControllerAdvice Spring3 2提供的新注解 Controller增强器 可对controller层中被 RequestMapping 注解了
  • 解决openwrt ipk missing dependencies libpthread librt

    新版本的trunk有在ipk打包的过程中的bug 他不能自动识别SDK中已经变异的动态链接库 比如libpthread libboost这些 解决方案是修改与pakage里同级的makefile的内容 可以修改如下 主要是添加DEPENDS
  • 高斯消元法 matlab_高斯消元法解线性方程组

    假设矩阵A是一个n阶非奇异方阵 那么对于任意一个n维向量b 线性方程组Ax b有唯一的解 考虑如下方程组 我们通常为了求解它 我们把 4乘以第一行加到第二行 7乘以第一行加到第三行 然后在进行求解 这个过程就是高斯消元法 下面我们看看通过m