当前位置: 首页 > news >正文

矩阵matrix

点积

在 NumPy 中,dot 是矩阵或向量的点积(dot product)操作。

假设有两个向量a和 b,它们的点积定义为对应元素相乘,然后求和。公式如下:

在这里插入图片描述

例子:
在这里插入图片描述

点积的计算步骤是:

因此,a.dot(b) 返回的结果是 6。

dot 的含义:

  • 对于 1D 数组(向量),dot 表示向量的点积
  • 对于 2D 数组(矩阵),dot 表示矩阵乘法。

矩阵乘法

矩阵:

问题:

矩阵乘法。逐步分析:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

numpy.linalg.inv()numpy.linalg.solve()

numpy.linalg.inv()numpy.linalg.solve() 都是用于解决线性代数问题的函数,但它们有不同的用途和计算方式。比较一下它们的区别:

1. linalg.inv(): 计算矩阵的逆矩阵

用法:
import numpy as np
np.linalg.inv(A)

在这里插入图片描述

  • 场景: 当你需要明确知道矩阵的逆时使用。
示例:
A = np.array([[1, 2], [3, 4]])
A_inv = np.linalg.inv(A)

这个代码会返回矩阵 ( A ) 的逆矩阵。

适用场景:
  • 当你需要求矩阵的逆时,使用 inv 函数。
  • 但是直接求逆并不总是最好的做法,因为逆矩阵的计算在数值上可能不稳定,特别是当矩阵接近奇异时。

2. linalg.solve(): 解线性方程组

用法:
import numpy as np
np.linalg.solve(A, b)
  • 功能: 直接求解线性方程组 A * x = b 中的未知数向量 x。
  • 场景: 当你想要解某个线性方程组时,比直接计算逆矩阵效率更高且更稳定。
示例:
A = np.array([[1, 2], [3, 4]])
b = np.array([5, 6])
x = np.linalg.solve(A, b)

这个代码会解出 A * x = b 中的 x 值。

适用场景:
  • 当你只需要解线性方程组时,linalg.solve() 是最有效率的选择,因为它内部使用了专门的数值方法,避免了求矩阵逆的额外开销。

总结:

  • linalg.inv(): 用于计算矩阵的逆。虽然你可以通过计算逆矩阵然后再与右侧的矩阵相乘来解线性方程组,但这是不推荐的做法,因为逆矩阵计算较慢且不稳定。

  • linalg.solve(): 直接求解线性方程组 ( A * x = b ),推荐用于解方程组的场景,速度更快且数值更稳定。

推荐: 如果你的目的是解方程组,使用 linalg.solve() 而不是先求矩阵的逆再乘以结果。


http://www.mrgr.cn/news/54691.html

相关文章:

  • FineReport 分页
  • 基于SSM机场网上订票系统的设计
  • vue前端开发框架的常见知识点和应用
  • 【UML】一个UML学习的还不错的几个帖子
  • 200台设备如何做到运行半年0故障?工厂设备管理这些环节是关键!
  • 大模型的检索增强生成综述研究
  • 【OD】【E卷】【真题】【100分】分苹果(PythonJavaJavaScriptC++C)
  • JavaWeb 24.Vue3的简介和快速体验
  • ssh 秘钥登录如何防止中间人攻击
  • 试了那么多内网穿透,还是神卓互联最稳定
  • 【An】Animate 2024 for【Mac】 An动画设计制作软件 安装教程——保姆级教程
  • python实战项目44:某眼电影字体反爬
  • Nginx安装于环境配置
  • 1024-过去一年的总结
  • 【JS】双指针法获得满足三数之和且不重复的三元组
  • 一文讲清楚 OAuth 2.0 支持的四个授权流程
  • 1024程序员节 | 一个机械专业的牛马转行牛码的经历
  • STM32重拾+找工作MD
  • Java 多线程(四)—— 线程安全 与 volatile 与 单例模式
  • JavaScript中实现十进制转二进制算法
  • 项目模块五:poller模块
  • 智能工厂的软件设计 三个单词( link/relation/chain):自然语言的此一字库stock、形式语言的彼多字扇fan到人工语言的专有名词 之1
  • python 更换pip源
  • V2X介绍
  • 程序化交易中,如何编写盈利回撤一半平仓的策略?
  • DGCNN代码详解(一)