机器学习(数据分析)数学基础——线性代数篇(五)线性方程组

2023-10-28

求解线性方程组也算是考研中的必备技能了,它往往出现在大题的第一问。

【注】本篇需要一些线性代数基础

1.首先我们来解决r=n的情况

#  线性方程组
import numpy as np
from scipy import linalg
# 定义A矩阵
A = np.array([[1,2,3],
              [1,3,5],
              [1,2,1]])
# 定义b
b = np.array([4,6,5])

x = linalg.solve(A, b)
print(x)

使用python进行求解的时候只需考虑秩与列数之间的关系,因为我们不需要进行行变换去具体求解。对于方阵来说求秩需要化阶梯,但对于python来说,只要A不是可逆矩阵,使用此方法会直接报错。

2.其次我们来解决r<n的情况

#  线性方程组
import numpy as np
from scipy import linalg
# 定义A矩阵
A = np.array([[1,2,3],
              [1,3,5],
              ])
# 定义b
b = np.array([4,6])

x = linalg.solve(A, b)
print(x)

修改了一下矩阵使得秩明显小于列数,这里运行程序,结果报错并提示Input a needs to be a square matrix.也就是说不能直接的通过此代码求出通解。故而,按照常规方法,求一个特解。在搞一个解向量(也就是其对应齐次方程组的通解)。

(1)求特解

直接让x3=0,简化A矩阵

A = np.array([[1,2],
              [1,3],
              ])

这样我们可以求出一组特解【0,2,0】

(2)求其对应齐次方程组的通解

  这里还是让x3=1,注意你要是让x3=0必然求出的是零解,然而我们要的是非零解

b_1 = np.array([-3,-5])
x_1 = linalg.solve(A,b_1)
print(x_1)

      求出来之后×一个系数就是通解,非齐次的通解只需要加上特解就可以了。

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

机器学习(数据分析)数学基础——线性代数篇(五)线性方程组 的相关文章

随机推荐

  • postgresql 查询所有表名

    SELECT tablename FROM pg tables WHERE tablename NOT LIKE pg AND tablename NOT LIKE sql ORDER BY tablename 或 select table
  • 面试题——1

    3 无重复字符的最长子串 206 反转链表 215 数组中的第K个最大元素
  • ValueError: Input 0 of layer sequential is incompatible with the layer: : expected min_ndim=4, found

    最近在做猫狗二分类实验的时候 在网上找到了教程 然后跟着教程打代码发现最后出现了ValueError Input 0 of layer sequential is incompatible with the layer expected m
  • Java访问权限修饰符

    private 私有的 只有在同一个类才能访问 内部类 成员变量 方法 default friendly 默认的 同一个包中可以访问 其他包中不能访问 类 成员变量 方法 接口 protected 受保护的 同一个包中可以访问 不同的包需要
  • KubeSphere 部署安装

    使用 kubeadm 搭建的 Kubernetes 1 15 2 版本集群 Helm v2 12 2 版本 使用 NFS 作为集群存储后端 下载安装脚本 mkdir root kubeSphere cd root kubeSphere gi
  • Git仓库完全迁移,包括所有的分支和标签,当然也包括日志。

    度娘了一堆git仓库迁移的内容 一个个都比较麻烦 而且本地下了代码 还要删去库地址 再切换到新库的地址上传 一般这种操作都只是master分支 其他分支还要一个一个来 后来在51CTO上找了一个文章 简单明了 一下就全搞定了 包括所有的分支
  • 二进制安装Docker

    下载 安装 wget https download docker com linux static stable x86 64 docker 19 03 6 tgz tar zvxf docker 19 03 6 tgz 把文件copy到
  • 计算机常用控温算法,常用温度控制方法原理 -解决方案-华强电子网

    常用PID调节器 温控仪控制算法包括常规PID 模糊控制 神经网络 Fuzzy PID 神经网络PID 模糊神经网络 遗传PID及广义预测等算法 常规PID控制易于建立线性温度控制系统被控对象模型 模糊控制基于规则库 并以绝对或增量形式给出
  • random函数汇总

    1 random random random random 用于生成一个0到1之间的随机浮点数 0 lt n lt 1 gt gt gt random random 0 7086588033796296 2 random uniform r
  • 【Django知识补充 - 1】:admin站点和rest_framework实现文件的上传和下载

    文章目录 项目准备 settings py中的配置 主路由urls py的配置 子应用中的文件代码 init py admin py models py serializers py urls py views py 演示 在admin中上
  • java实现-合并两个有序数组

    合并两个有序数组 给你两个有序整数数组 nums1 和 nums2 请你将 nums2 合并到 nums1 中 使 nums1 成为一个有序数组 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 你可以假设 nums1 的空
  • 移动端 文件预览(所有文档文件类型)

  • Java21天打卡-Day15 数组

    import java util Arrays public class Day15 数组 题目1 创建一个长度是8的字符串数组 使用8个长度是5的随机字符串初始化这个数组 对这个数组进行排序 按照每个字符串的首字母排序 无视大小写 注1
  • PermissionX 1.7发布,全面支持Android 13运行时权限

    各位小伙伴们大家早上好 一年一度的PermissionX升级又来了 还记得上次发布PermissionX 1 6版本还是在去年10月份的时候 当时是对Android 12系统进行了支持 详情可以参考这篇文章 PermissionX 1 6发
  • 深度学习框架Pytorch傻瓜式安装教程

    前提 已经安装完minianaconda和pycharm minianaconda直接官网下载即可 minianaconda比起anaconda体量很小 pycharm专业版2020下载百度网盘链接 链接 https pan baidu c
  • 【Detectron2】入门02-使用自己的数据集

    Detectron2 official Documents https detectron2 readthedocs io tutorials datasets html 目录 COCO格式数据集 Standard dataset dict
  • Qt对象树

    对象树 Qt提供了对象树机制 能够自动 有效的组织和管理继承自QObject的Qt对象 每个继承自QObject类的对象通过它的对象链表 QObjectList 来管理子类对象 当用户创建一个子对象时 其对象链表相应更新子类对象信息 对象链
  • JVM优化

    java运行时数据区 程序计数器 线程私有 java虚拟机栈 线程私有 本地方法栈 线程私有 java堆 线程公用 方法区 线程公用 jvm内存分配 栈内存分配 私有的 不会存在线程安全 保存参数 局部变量 中间计算过程和其他的数据 退出方
  • redis复习

    1 关系型数据库和非关系型数据库 关系型数据库 Relational Database 和非关系型数据库 Non relational Database 或 NoSQL Database 之间的主要区别可以从以下几个方面进行理解 1 1 数
  • 机器学习(数据分析)数学基础——线性代数篇(五)线性方程组

    求解线性方程组也算是考研中的必备技能了 它往往出现在大题的第一问 注 本篇需要一些线性代数基础 1 首先我们来解决r n的情况 线性方程组 import numpy as np from scipy import linalg 定义A矩阵