numpy实现高等代数矩阵的求解过程
1 矩阵秩
代数中求矩阵的秩
不为0的维数为2,则秩为2
下面我们看下numpy实现
import numpy as np
A = np.mat([[3,2,1,1],[1,2,-3,2],[4,4,-2,3]],int)rank = np.linalg.matrix_rank(A)
print(rank)
同样结果是rank=2
利用A.shape[0]>rank 来判断方程组有多少解
求解线性方程组
用矩阵表示方程组
上面一个是系数矩阵,一个是曾广矩阵
答案很明显了,解方程也就是对矩阵的变换
这类方程组分明显是非齐次线性方程组
非齐次线性方程组唯一解
非齐次线性方程组是常数项不全为零的线性方程组
非齐次线性方程组有解的条件是秩相同,也就是rankA=n(阶数)
numpy实现如下
import numpy as npA = np.mat([[1, -2, 1],[0, 2, -8],[-4, 5, 9]], int)
B = np.array([[[0], [8], [-9]]], int)rank = np.linalg.matrix_rank(A)
print(rank)
print(A.shape[0])
print(np.linalg.solve(A,B))
结果输出如下
其中A.shape[0]就是n
无限多解的非齐次线性方程组
有结果我们可以看到rank=n-1,那么矩阵对应的方程组有无穷多解,如果在实战中出现这种情况就说明其中一个因子是无效的,与结果不相关的
如下线性方程组
这个矩阵同样是3阶4列,其中x3可以任意值,就造成了多解的情况。
矩阵分解如下
numpy实现如下
import numpy as npA = np.mat([[1, -1, 1, -1],[0, 0, 2, -4]], int)
B = np.array([[[0], [1]]])rank = np.linalg.matrix_rank(A)
print(rank)
print(A.shape[0])
print(np.linalg.pinv(A).dot(B))
最终输出如下
输出为方程组的最小范数解为 K* [-0.13636364 0.13636364 0.04545455 -0.22727273] ,其中K为任意常数
注意为了满足矩阵满秩的要求,我们只用到了[ [1, -1, 1, -1],[0, 0, 2, -4]] 和[[0], [1]],其他的舍弃
无解非齐次线性方程组的线性拟合
方程组AX=b无解,说明由矩阵A的列向量进行线性组合,无法得到b,有时候我们退而求其次,欲把A的列向量线性组合到最接近b的值,记作b。这时候的解称为变形解X,AX=b,b^ <> b但接近b。
此方程组矩阵的秩R(A)=2,R(A,b)=3,因此无解。但可以输入计算机求变形解X^:
numpy实现如下
import numpy as npA = np.mat([[4, 2, -1],[3, -1, 2],[11, 3, 0]], int)
B = np.array([[2], [10], [8]])rank = np.linalg.matrix_rank(A)
print(rank)
print(A.shape[0])
print(np.linalg.pinv(A).dot(B))
显示[b-b^]的绝对值总和为4,具体到3个式子,一个式子的误差在1.3左右。
n元齐次线性方程组求解
齐次线性方程组是常数项全为零的线性方程组
求解如下4元齐次线性方程组
numpy实现如下
import numpy as npA= np.mat([[1,-1,-1,1],[1,-1,1,-3],[1,-1,-2,3]],int)
print(np.linalg.svd(A))
输出如下
其中第2个矩阵只列出A的奇异值,本例中有3个数,但最后的数很小e-16)应视为0。这样可以确定R(A)=2, (n-r}=2,我们从第3个矩阵截取下面的2个行向量即可。
我们还可以直接求解Ax=0
import numpy as npA = np.mat([[1, -1, -1, 1],[1, -1, 1, -3],[1, -1, -2, 3]], int)def derx(A, eps=1e-15):u, s, vt = np.linalg.svd(A)n_space = np.compress(s <= eps, vt, axis=0)return n_space.Tprint(derx(A).T)
输出如下
numpy实现高等代数矩阵的求解过程相关推荐
- 多视图几何总结——基础矩阵、本质矩阵和单应矩阵的求解过程
多视图几何总结--基础矩阵.本质矩阵和单应矩阵的求解过程 多视图几何总结--基础矩阵.本质矩阵和单应矩阵的求解过程 1. 说明--其实求解过程大同小异 2. 单应矩阵求解过程 2.1 基于代数误差的线 ...
- 单应性矩阵的求解过程及应用
http://www.sohu.com/a/223594989_100007727 前面文章<从零开始学习「张氏相机标定法」(一)成像几何模型>中我们已经得到了像素坐标系和世界坐标系下的坐 ...
- 控制系统设计专题(四)——控制分配矩阵的求解及相关问题
前言 前一篇中对自抗扰控制算法的原理及扩张状态观测器的参数整定问题进行了详解.同时,提出了一种基于自抗扰控制算法的多旋翼飞行器控制系统设计方案. 在系统辨识专题中,我们提到了控制效率方程的作用 ...
- 数值分析——三角矩阵排序向量及求解过程
三角矩阵排序向量及求解过程 问题 对于一个三角矩阵,如何得到排序向量 ppp ?给出算法并用程序实现它: 请实现三角系统的向前带入算法,给出程序并通过算例验证: 请给出三角系统的向后带入算法,给出程序 ...
- 一分钟详解「本质矩阵」推导过程
文章目录 前言 一 本质矩阵如何推导 二 本质矩阵的意义 三 本质矩阵的求解 四 扩展--基本矩阵 前言 两幅视图存在两个关系:第一种,通过对极几何,一幅图像上的点可以确定另外一幅图像上的一条直线:另 ...
- 数据挖掘机器学习[七]---2021研究生数学建模B题空气质量预报二次建模求解过程:基于Stacking机器学习混合模型的空气质量预测{含码源+pdf文章}
相关文章: 特征工程详解及实战项目[参考] 数据挖掘---汽车车交易价格预测[一](测评指标:EDA) 数据挖掘机器学习---汽车交易价格预测详细版本[二]{EDA-数据探索性分析} 数据挖掘机器学习 ...
- NumPy transpose 的定义与计算过程
NumPy transpose 的定义与计算过程 NumPy documentation https://numpy.org/doc/stable/index.html numpy.transpose ...
- 多旅行商问题——公式和求解过程概述
英文:The multiple traveling salesman problem an overview of formulations and solution procedures 摘要: 多 ...
- ORBSLAM3的IMU积分求解过程
本博客主要是参考论文:<Inertial-Only Optimization for Visual-Inertial Initialization> , 也是ORBSLAM3的作者写的关于 ...
最新文章
- JavaScript创建对象的方法
- Leetcode 210. 课程表 II 解题思路及C++实现
- 《三基色组成方式》转
- 学习笔记之-Kubernetes(K8S)介绍,集群环境搭建,Pod详解,Pod控制器详解,Service详解,数据存储,安全认证,DashBoard
- POJ - 3468 A Simple Problem with Integers(分块)
- linux ngx listen的解析
- Linux服务器的初步配置流程
- mfc切换office样式_干货搬运工|计算机二级office必读,裸考也能通关的宝典
- Android 进阶第二篇——性能优化
- 移动端和PC端弹出遮罩层后,页面禁止滚动的解决方法及探究
- 20.Linux 账号管理与 ACL 权限设置
- 贴片二极管外形封装资料
- win10配置jdk11
- 各位有什么超实用的生活小窍门呢?
- sqlmap注入命令大全
- Vue3 的 Reactive 响应式到底是什么
- Syn-QG: Syntactic and Shallow S emantic Rules for Question Generation阅读笔记
- 教你这么理解 『假脱机打印机系统』
- wireshark怎么抓包、wireshark抓包详细图文教程
- oracle日常积累小知识
热门文章
- java8Stream流的使用2--终止操作(分组,分区)
- 小默应用:用有温度的科技 构建移动资讯平台
- ERP系统 应付分析供应商账龄
- 相电流与线电流有什么区别
- 什么是IPO,增发,和对股市的影响
- 迷失lost结局什么意思_美剧《迷失》(Lost)到底讲的是什么?
- 林仕鼎谈数据中心计算(二):存储资源分层
- 计算机辅助教学发展的现状,后时代,我们何去何从――浅谈计算机辅助教学现状与发展.doc...
- BD,HD,720P和1280P的区别
- linux下hadoop集群常用命令