齐次线性方程组和非齐次线性方程组

2023-05-16

 

  1. 定义

齐次线性方程组:等式右侧常数项全部为0

非齐次线性方程组: 等式右侧常数项不全部为0

2.齐次方程组的求解

将系数矩阵化为行阶梯形矩阵,记全为0的行数量为r=n-R(A)。

则非零行的首非零元所在列对应的就是约束变量, 其余变量即为自由变量。

将后r个自由变量未知数,每次只有一个取值为1 ,其余为0 ,然后每次分别带入方程计算,对应的形成r个解。这些r个解的线性组合即为基础解系。

3.非齐次方程组的求解

https://jingyan.baidu.com/article/2a138328e4d4bb074a134fcc.html

分为两步:1.计算特解。将增广矩阵化为行阶梯形矩阵,将r个未知数全部取值为0,得到一个特解。

                  2.计算对应的齐次方程组的基础解系。

4. 方程组有解的判断条件

   齐次方程组:R(A)=n,只有唯一零解

   R(A)<n,有无穷多个解。基础解系中含有的解数量为r=n-R(A)个

   非齐次方程组:R(A)< R(B) ,无解

   R(A)=R(B) ,有解。具体解的情况同齐次方程组。

程序实现:列主消元法

#include<iostream>
#include<cmath>
using namespace std;

const int n = 3;
//交换2个数的大小
template<class T>
void SWAP(T& a, T& b)
{
    T c;
    c = a;
    a = b;

    b = c;
}

//高斯列主元素消元法
void gaussin_L(double a[n][n], double b[n])
{

    int i, j, k;
    int col, row;
    for (k = 0; k < n - 1; k++)
    {
        double ave = 0;
        //找出消元列中最大的那个元素所在的位置
        for (i = k; i < n ; i++)
            if (fabs(a[i][k]) > ave)
            {
                ave = fabs(a[i][k]);
                cout << "ave " << ave << endl;
                row = i;
                col = k;
            }

        //如果该对角线元素是0,同样不能用高斯消元法来求解
        if (a[row][row] == 0)
        {
            cout << "can't solve" << endl;
            return;
        }
        //将找出的行进行交换
        if (k != row)
		{
            for (i = 0; i < n; i++)
            {

                        SWAP(a[row][i], a[k][i]);
            }
			SWAP(b[k], b[row]);
		}
        //消元过程
        double c[n];
        for (j = k + 1; j < n; j++)
        {
            c[j] = a[j][k] / a[k][k];
            cout << c[j] << endl;
        }
        for (i = k + 1; i < n; i++)
        {
            for (j = 1; j < n; j++)
            {
                a[i][j] = a[i][j] - c[i] * a[k][j];
            }
            b[i] = b[i] - c[i] * b[k];
        }

    }

    double x[n];
    x[n - 1] = b[n - 1] / a[n - 1][n - 1];
    for (i = n - 2; i >= 0; i--)
    {

        double sum = 0;
        for (j = i + 1; j < n; j++)
            sum += a[i][j] * x[j];
        x[i] = (b[i] - sum)/a[i][i];
    }
    //打印输出
    for (i = 0; i < n ; i++)
        cout << " x" << "[" << i << "]=" << x[i] << endl;
}

 

思考:列主消元法仅适用于系数矩阵是方阵,而且必须是满秩?

这个消元的过程不就是最简化行列式的过程吗

 

齐次坐标

就是增加一个维度。笛卡尔坐标系(x,y)对应的齐次坐标为(wx,wy,w)。可以对应无穷多个齐次坐标,其实就是一个投影的过程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

齐次线性方程组和非齐次线性方程组 的相关文章

  • http协议以及chunked编码分析

    Http协议 Http协议 格式 HTTP消息包括浏览器向服务器的请求消息和服务器向浏览器的响应消息 这两种类型的消息都由一个起始行 xff0c 一个或者多个头域 xff0c 一个头域结束的空行和可选的消息体组成 HTTP头域一般包括通用头
  • http-parser解析http报文详解

    说明 项目里用到力http parser xff0c 在这里简单说明一下其用法吧 下载地址 xff1a https github com joyent http parser 其使用说明很详细 开源用例 开源tcpflow 1 4 4中使用
  • nginx的部分内置变量介绍

    项目组接触了nginx内置变量 xff0c 网上查了查 xff0c 自己也注释一下 变量名 变量含义 arg NAME GET请求中NAME的值 即 后面的arg name 61 arg value形式的arg name args 请求中的
  • ngx_lua常用变量参数

    最近项目接触了Nginx的lua使用 xff0c 网上查了查资料 xff0c 这里记录一下 Nginx与Lua编写脚本的基本构建块是指令 指令用于指定何时运行用户Lua代码以及如何使用结果 下面是显示指令执行顺序的图 Nginx Lua模块
  • *** buffer overflow detected ***

    gcc正常编译运行正常 xff0c 加了 O就报这个 最后检查出来是sprintf buf小了
  • nginx虚拟路径中proxy_pass对后端请求的影响

    假设nginx中的配置是这样的 xff1a server listen 80 server name x x x x location subdir proxy pass http y y y y 那么 xff0c 当用户请求http x
  • Nginx 介绍,以及Nginx配置指令执行的顺序 11 个阶段

    一 Nginx介绍 Nginx的产生 没有听过Nginx xff1f 那么一定听过它的 34 同行 34 Apache吧 xff01 Nginx同Apache一样都是一种WEB服务器 基于REST架构风格 xff0c 以统一资源描述符 Un
  • Nginx根据Status保存日志,及ngx_http_log_module 模块介绍

    前言 Nginx日志对于统计 系统服务排错很有用 Nginx日志主要分为两种 xff1a access log 访问日志 和error log 错误日志 通过访问日志我们可以得到用户的IP地址 浏览器的信息 xff0c 请求的处理时间等信息
  • Nginx: Connection reset by peer 错误定位

    最近Nginx反向代理遇到了 104 Connection reset by peer 错误 xff0c google了一下 xff0c 这里记录一下 本文根据众多互联网博客内容整理后形成 xff0c 引用内容的版权归原始作者所有 xff0
  • 企业各职位英文缩写 PM,TM,PL,TL,SE,PG,CEO,CFO

    企业各职位英文缩写 xff1a GM General Manager 总经理 VP Vice President 副总裁 FVP First Vice President 第一副总裁 AVP Assistant Vice President
  • go mod常用命令 以及 常见问题

    最近接触到go mod xff0c 网上查了查资料 xff0c 这里记录一下 1 介绍 1 1 go mod是什么 go mod 是Golang 1 11 版本引入的官方包 xff08 package xff09 依赖管理工具 xff0c
  • 什么是CURL,PHP与CURL

    一 什么是CURL curl是一个利用URL语法在命令行方式下工作的文件传输工具 curl是一个利用URL语法在命令行方式下工作的文件传输工具 它支持很多协议 xff1a FTP FTPS HTTP HTTPS GOPHER TELNET
  • 大端小端字节序,网络字节序,Intel字节序

    一 字节序 计算机硬件存储数据有两种方式 xff1a 大端字节序 xff08 big endian xff09 和小端字节序 xff08 little endian xff09 小端字节序 xff1a 即低地址存低位字节 xff0c 或者说
  • 基于C++的Qt(三)Qt类库概述

    Qt是一个用标准C 43 43 编写的跨平台开发类库 xff0c 它对标准C 43 43 进行了扩展 xff0c 引入了元对象系统 信号与槽 属性等特性 xff0c 使应用程序的开发变得更高效 Qt类库中大量的类以模块形式分类组织的 xff
  • 【ROS2】一、创建工作空间和功能包

    文章目录 前言一 创建工作空间二 创建功能包三 编译功能包总结 前言 ROS2通过命令创建工作空间和功能包 xff0c vscode对ROS2的支持比ROS1少 xff0c 不能直接在vscode中创建功能包 xff0c 因此 xff0c
  • debian 更换源 使用国内源 配置方法

    配置前请先参考 xff1a https wiki debian org SourcesList https www debian org mirror list https mirrors tuna tsinghua edu cn help
  • i.MX6ULL 开发板-Mqtt 移植

    转载 xff1a http e betheme net article show 149636 html action 61 onClick PS xff1a 订阅主题 xff0c 命令如下 xff1a mosquitto sub h lo
  • echo web框架教程

    转载 xff1a https www cnblogs com remixnameless p 14318145 html 一 介绍 echo web框架是go语言开发的一种高性能 xff0c 可扩展 xff0c 轻量级的web框架 echo
  • open cv中cmake编译出现Download: opencv_ffmpeg.dll、ippicv等失败的解决方法

    转载 xff1a https blog csdn net qq 43237769 article details 128010340 问题原因 xff1a CMake opencv时无法连接服务器 xff0c 导致下载 ffmpeg dll
  • 正态分布(Normal distribution)又名高斯分布(Gaussian distribution)

    正态分布 xff08 Normal distribution xff09 又名高斯分布 xff08 Gaussian distribution xff09 xff0c 是一个在数学 物理及工程等领域都非常重要的概率分布 xff0c 在统计学

随机推荐

  • OpenCV图像拼接和图像融合技术

    转自 xff1a https www cnblogs com skyfsm p 7411961 html 图像拼接在实际的应用场景很广 xff0c 比如无人机航拍 xff0c 遥感图像等等 xff0c 图像拼接是进一步做图像理解基础步骤 x
  • 如何将pandas.dataframe的数据写入到文件中

    导入实验常用的python包 如图2所示 import pandas as pd pandas用来做数据处理 import numpy as np numpy用来做高维度矩阵运算 import matplotlib pyplot as pl
  • 八度音阶和频率的关系

    转载 xff1a http www cnblogs com cute archive 2013 02 28 2937222 html 八度音阶和频率的关系 Frequency in hertz semitones above or belo
  • 解决MATLAB不能设置为.m文件默认打开方式

    转载 xff1a https blog csdn net yujiaerzong article details 77624167 1 将下面代码复制保存为 associateFiles m 文件 2 在MATLAB中运行 associat
  • python中的wx模块

    转载 xff1a http www cnblogs com fnng archive 2013 05 23 3094033 html wx包中的方法都是以大写字母开头的 xff0c 而这和Python的习惯是相反的 本节介绍如何创建pyth
  • Postman安装(汉化Postman)

    Postman安装 汉化Postman 一 下载Postman 下载地址 xff1a https www postman com downloads 二 下载汉化包 下载地址 xff1a https github com hlmd Post
  • linux下vscode调试C++

    linux下vscode调试C 43 43 1 在CMakelists中设置编译为Debug模式 xff0c 增加需要生成的可执行程序 set CMAKE BUILD TYPE DEBUG add executable hello main
  • char数组和指针问题

    这个问题是C 43 43 基础问题中相当折腾人的一个 xff0c 死记硬背解决不了根本问题 xff0c 记住还是要忘 xff0c 需要仔细研究其本质 这两种方式就是数组和指针的方式 xff1a span class hljs keyword
  • 找工作笔试面试那些事儿(13)---操作系统常考知识点总结

    上一节对数据库的知识做了一个小总结 xff0c 实际找工作过程中 xff0c 因为公司或单位侧重点不一样 xff0c 考察的知识也是不尽相同的 xff0c 但是作为计算机类的学生 xff0c 操作系统的知识也是必不可少的 xff0c 去年参
  • pnp算法

    pnp算法是解决什么问题的 xff1f PnP xff08 Perspective n Point xff09 是求解 3D 到 2D 点对运动的方法 它描述了当我们知道 n 个 3D 空间点以及它们的投影位置时 xff0c 如何估计相机所
  • Ubuntu 简单的视频剪辑方法

    视频剪辑主要分为两种 xff1a 1 纯粹的录屏 xff0c 不增加停顿 文字说明等 2 在关键位置停顿 xff0c 并配以文字说明 xff1b 针对第二种情况 xff0c 可以把要处理的视频保存成图片 xff0c 然后再利用opencv进
  • [cartographer] 9. proto配置文件读取

    目录 1 proto文件 2 lua配置文件 3 代码 1 xff09 读取lua文件 2 xff09 赋值给proto options 获取proto参数值有两种方式 xff1a 1 xff09 lua文件 2 xff09 通过servi
  • [毫米波雷达建图系列]2. map generator node

    目的 xff1a 利用点云 xff0c 生成概率栅格地图 xff0c 并保存成 pgm 图片格式 主要的函数有三个 xff1a void GetGridMap 注册地图 SaveMap 可以保存成 pgm图片 或者 pcd 格式 xff08
  • 常见的旋转插值

    1 四元数slerp插值 slerp 插值的原理 xff1a 这里 slerp 插值的工程实现 xff1a eigen 的 slerp 函数 Eigen Quaterniond q 61 q0 slerp x0 q1 2 轴角插值 已知 R
  • docker限制cpu使用率

    start docker docker run itd name CONTAINER NAME privileged network host ipc 61 host hostname CONTAINER NAME env COLORFGB
  • Visual Studio + Opencv配置

    目录 Opencv安装 环境变量配置Visual Studio 库的两种配置 本文使用操作系统为Windows10 xff0c 仅适用于windows环境Visual Studio编译器上的 Opencv开发配置 Opencv所有平台通用的
  • jupyter notebook import torch报错

    create pytorch env 进入 pytorch 环境 conda activate pytorch name 安装jupyter notebook 安装ipykernel 用于安装kernel conda install ipy
  • 分享本地文件给其他人访问

    在想分享的文件夹下执行 python3 m http server 9999 https blog csdn net inter peng article details 121332985 为了保证不用每次都自己手动输入上述命令 xff0
  • C++ 文件读写fopen_s/fopen

    最好使用fopen s xff0c 使用fopen提示 not safe xff0c 二者区别如下 xff1a 1 fopen s的安全是在于比函数fopen多了溢出检测 2 在使用上 xff0c 函数fopen的返回值是文件指针 xff0
  • 齐次线性方程组和非齐次线性方程组

    定义 齐次线性方程组 等式右侧常数项全部为0 非齐次线性方程组 等式右侧常数项不全部为0 2 齐次方程组的求解 将系数矩阵化为行阶梯形矩阵 xff0c 记全为0的行数量为r 61 n R A 则非零行的首非零元所在列对应的就是约束变量 其余