高斯消元详解

算法概述

高斯消元法是一个用来求解线性方程组的算法

那么什么是线性方程组呢?

线性:每个未知数次数都为1次方程组:多个方程,多个未知数。

(a1x1+a2x2+..+anxn=bn)x为一次的

当x是平方的时候就不是线性

简而言之就是有多个未知数,并且每个未知数的次数均为一次,这样多个未知数组成的方程组为一

性方程组。或者我们也可以说是多元一次方程组

问题引入

给定一个线性方程组,对其求解

2x+y-z=8

-3x-y+2z=11

-2x+y+2z=-1

加减消元法和代入消元法

 高斯消元的目的是,先进行加减消元,然后我们可以先求得一个未知数的值,然后可以逐层往回代,也就是代入消元法,依次可以得到定第2个、第3个未知数的值,以至第n个未知数。最终解出方程组中各个未知数。

加减消元

对第一列进行操作(绝对值最大的一行,交换到第一行)

寻找最大值的原因是因为观察是否已经全是0了。

第二行减去若干倍的第一行,用第三行减去若干倍的第一行

高斯消元的代码详解

package gaosixiaoyuan;

import java.util.*;
import java.util.BitSet;

public class chapter1 {
	static final int N = 2800;
    static BitSet[] a = new BitSet[N];
    static int n, m, x, ans;
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scanner = new Scanner(System.in);
        n = scanner.nextInt();
        for (int i = 1; i <= n; i++) {
            a[i] = new BitSet(n + 1);
            m = scanner.nextInt();
            if (m % 2 != 0) {
                a[i].set(n + 1);
                a[i].set(i);
            }
            while (m-- > 0) {
                x = scanner.nextInt();
                a[i].set(x);
            }
        }
        gauss();
	}
	public static void gauss() {
		        int cnt = 0;
		        for (int i = 1; i <= n; i++) {
		            int maxx = cnt + 1;
		            for (int j = i + 1; j <= n; j++) {
		                if (a[j].get(i) && !a[maxx].get(i)) maxx = j;
		            }
		            BitSet temp = a[cnt + 1];
		            a[cnt + 1] = a[maxx];
		            a[maxx] = temp;
		            if (!a[i].get(i)) continue;
		            cnt++;
		            for (int j = 1; j <= n; j++) {
		                if (a[j].get(i) && i != j) a[j].xor(a[i]);
		            }
		        }
		        if (cnt < n) {
		            for (int i = 1; i <= n; i++) {
		                if (!a[i].get(i) && a[i].get(n + 1)) 
		                	System.out.println("no solution");
		            }
		        }
		    }
}

 综上所述,可以大致分为三种情况:

1.高斯消元完成后,若存在系数全为0、常数不为0的行,则方程组无解。

2.若系数不全为0的行恰好有n个,则主元有n个,方程组有唯一解。

3.系数不为0的行<n个,则有无数个解。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

docker版Elasticsearch安装,ik分词器安装,用户名密码配置,kibana安装

1、安装es和ik分词器 创建映射目录并赋予权限&#xff1a; mkdir -p /docker_data/elasticsearch/conf mkdir -p /docker_data/elasticsearch/data mkdir -p /docker_data/elasticsearch/plugins chmod -R 777 /docker_data/elasticsearch编写配置文件&#xff1a; vi /dock…

水果销售(源码+文档)

水果销售管理系统&#xff08;小程序、ios、安卓都可部署&#xff09; 文件包含内容程序简要说明含有功能项目截图客户端添加地址首页商品详细意见反馈待发货商品分类我的代付款我的地址搜索防骗指南资料修改登录注册 后端管理分类管理反馈管理订单管理商品管理用户管理 文件包…

医疗器械5G智能制造工厂数字孪生可视化平台,推进行业数字化转型

医疗设备5G智能制造工厂数字孪生可视化平台&#xff0c;推进行业数字化转型。在数字化浪潮的推动下&#xff0c;医疗设备行业正迎来一场深刻的变革。5G技术的崛起&#xff0c;智能制造工厂的兴起&#xff0c;以及数字孪生可视化平台的出现&#xff0c;正在共同推动医疗设备行业…

C# WPF编程-命令

C# WPF编程-命令 概述WPF命令模型ICommand接口RoutedCommand类RoutedUICommand类命令库 概述 使用路由事件可以响应广泛的鼠标和键盘事件&#xff0c;这些事件是低级的元素。在实际应用程序中&#xff0c;功能被划分成一些高级的任务。这些任务可通过各种不同的动作和用户界面…

[StartingPoint][Tier0]Preignition

Task 1 Directory Brute-forcing is a technique used to check a lot of paths on a web server to find hidden pages. Which is another name for this? (i) Local File Inclusion, (ii) dir busting, (iii) hash cracking. (目录暴力破解是一种用于检查 Web 服务器上的大…

文献速递:深度学习胰腺癌诊断--螺旋变换与模型驱动的多模态深度学习方案相结合,用于自动预测胰腺癌中TP53突变麦田医学

Title 题目 Combined Spiral Transformation and Model-Driven Multi-Modal Deep Learning Scheme for Automatic Prediction of TP53 Mutation in Pancreatic Cancer 螺旋变换与模型驱动的多模态深度学习方案相结合&#xff0c;用于自动预测胰腺癌中TP53突变 01 文献速递介…

计算机视觉——图像金字塔理解与代码示例

图像金字塔 有时为了在图像中检测一个物体&#xff08;例如人脸、汽车或其他类似的物体&#xff09;&#xff0c;需要调整图像的大小或对图像进行子采样&#xff0c;并进行进一步的分析。在这种情况下&#xff0c;会保持一组具有不同分辨率的同一图像。称这种集合为图像金字塔…

【数据分析实战】印尼雅加达咖啡市场分析:品牌排名与市场趋势解读

目录 背景介绍数据展示数据分析可视化1. 各市咖啡店占比&#xff1a;1.1 可视化代码1.2 可视化结果1.3 浅薄解读 2. 品牌市场份额排名&#xff1a;2.1 可视化结果1.2 浅薄解读 3. 品牌消费者满意指数&#xff1a;3.1 可视化代码3.2 可视化结果3.3 浅薄解读 写在最后 背景介绍 …

03 Python进阶:MySQL - mysql-connector

mysql-connector安装 要在 Python 中使用 MySQL 数据库&#xff0c;你需要安装 MySQL 官方提供的 MySQL Connector/Python。下面是安装 MySQL Connector/Python 的步骤&#xff1a; 首先&#xff0c;确保你已经安装了 Python&#xff0c;如果没有安装&#xff0c;可以在 Python…

Flutter应用版本管理与更新策略:在苹果商店上架后的持续优化

引言 Flutter是一款由Google推出的跨平台移动应用开发框架&#xff0c;其强大的性能和流畅的用户体验使其备受开发者青睐。然而&#xff0c;开发一款应用只是第一步&#xff0c;将其成功上架到苹果商店才是实现商业目标的关键一步。本文将详细介绍如何使用Flutter将应用程序上…

Linux下Nginx详解

1、概念 1.1 介绍 Nginx是一个高性能的开源Web服务器软件&#xff0c;也可以用作反向代理服务器、负载均衡器和HTTP缓存。它的设计目标是高性能、稳定性、丰富的功能和低资源消耗。 1.2 应用场景 Web服务器&#xff1a;Nginx可以作为静态资源服务器&#xff0c;处理静态文件…

uniapp选择退出到指定页面

方法一&#xff1a;返回上n层页面 onUnload(){uni.navigateBack({delta:5,//返回上5层})},方法二&#xff1a;关闭当前页面&#xff0c;跳转到应用内的某个页面。 uni.redirectTo({url: "../home/index"//页面地址}) 方法三&#xff1a;关闭所有页面&#xff0c;打…

(2024)Ubuntu源码安装多个版本的opencv并切换使用

本人工作会用到x86_64的opencv和aarch64的opencv&#xff0c;所以写下来备忘自用 一、源码编译安装 依赖库安装&#xff1a; sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev o…

图论(Graph theory)

抽象数据结构类型 Graphic操作接口 操作接口功能描述操作接口功能描述e()获取图的总边数n()顶点的总数exits(v,u)判断v,u两个顶点是否存在边insert(v) 在顶点集 V 中插入新顶点 v remove(v,u)删除从v 到u的 关联边 remove(v) 将顶点 v 从顶点集中删除 type(v,u)边所属的类型(…

特征增强自蒸馏卷积神经网络

目录 1.1 模型总体架构 1.2 特征增强金字塔模块 1.3 辅助分类器 1.1 模型总体架构 与自然图像相比&#xff0c;遥感场景图像地物较为复杂&#xff0c;具有类间相似度高和类内差异大的特点&#xff0c;这导致常用的网络模型难以有效学习遥感场景图像的表征特征。此外&#xf…

使用Python获取红某书笔记详情并批量无水印下载

根据红某手最新版 请求接口必须要携带x-s x-s-c x-t,而调用官方接口又必须携带cookie,缺一不可,获取笔记详情可以通过爬取网页的形式获取&#xff0c;虽然也是无水印&#xff0c;但是一些详情信息只能获取大概&#xff0c;并不是详细的数值&#xff0c;因此既不想自己破解x-s x…

【Qt】Ubuntu20.04.6+Qt5.15.2+QtCreator10.0.1无法输入中文

1、前提条件 1)已经安装了fcitx sudo apt install fcitx sudo apt install fcitx-pinyin sudo apt install fcitx-bin fcitx-table-all sudo apt install fcitx-qt52)系统已经配置fcitx 3)将系统下 /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts/libfcitx…

Pygame基础11-mask 蒙版

蒙版 蒙版是二值化的图像&#xff0c;每个像素的值只能是0或1。 mask(蒙版)的用途&#xff1a; 碰撞检测部分着色 案例 和字母的碰撞检测 当玩家碰到字母 α \alpha α时&#xff0c;改变玩家颜色为绿色&#xff0c;否则为红色。 注意&#xff1a;我们希望碰到字母 α \alp…

c语言--联合体(声明、特点、计算)

目录 一、联合体类型的声明二、 联合体的特点三、 相同成员的结构体和联合体对比四、 联合体大小的计算 一、联合体类型的声明 像结构体⼀样&#xff0c;联合体也是由⼀个或者多个成员构成&#xff0c;这些成员可以不同的类型。 但是编译器只为最大的成员分配足够的内存空间。…

游戏引擎中的物理应用

一、 角色控制器 Character Controller和普通的动态对象&#xff08;Dynamic Actor &#xff09;是不同的&#xff0c;主要的三个特点是: 它拥有可控制的刚体间的交互假设它是有无穷的摩擦力&#xff08;可以站停在位置上&#xff09;&#xff0c;没有弹性加速和刹车几乎立即…