手撕乘积(**Multiplication** **Product**): 穷举和图示(1)

news2025/2/26 3:38:50

手撕乘积(Multiplication & Product): 穷举和图示(1)

乘积

在这里插入图片描述

在这里插入图片描述

r ⋅ s = ∑ i = 1 s r = r + r + ⋯ + r ⏟ s  times = ∑ j = 1 r s = s + s + ⋯ + s ⏟ r  times r\cdot s=\sum _{i=1}^{s}r=\underbrace {r+r+\cdots +r} _{s{\text{ times}}}=\sum _{j=1}^{r}s=\underbrace {s+s+\cdots +s} _{r{\text{ times}}} rs=i=1sr=s times r+r++r=j=1rs=r times s+s++s

4 * 3
>>> 12
.1 * .2
>>> 0.020000000000000004 # 😓
[1, 2, 3] * 2
>>> [1, 2, 3, 1, 2, 3]
[1, 2, 3] * [1, 2, 3]
>>> TypeError: can't multiply sequence by non-int of type 'list' # 😓
(1, 2, 3) * 4
>>> (1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3)
(1, 2, 3) * (1, 2, 3)
>>> TypeError: can't multiply sequence by non-int of type 'tuple'
np.array([1,2,3]) * 2
>>> array([2, 4, 6])
np.array([1,2,3]) * np.array([1,2,3])
>>> array([1, 4, 9])
np.multiply(np.array([1,2,3]), np.array([1,2,3]))
>>> array([1, 4, 9])
np.array([1,2,3]) * np.array([1,2,3,4])
>>> ValueError: operands could not be broadcast together with shapes (3,) (4,)
np.multiply(np.array([1,2,3]), np.array([1,2,3,4]))
>>> ValueError: operands could not be broadcast together with shapes (3,) (4,)
np.array([[1,2,3], [1,2,3]]) * np.array([2,3,4])
>>> array([[ 2,  6, 12],
           [ 2,  6, 12]])
np.multiply(np.array([[1,2,3], [1,2,3]]), np.array([2,3,4]))
>>> array([[ 2,  6, 12],
           [ 2,  6, 12]])

点乘

x = 3
y = 5
xNda = np.arange(x)
>>> array([0, 1, 2])
x2Nda = xNda*2+1
>>> array([1, 3, 5])
yNda = np.arange(1, y)
>>> array([1, 2, 3, 4])
xyNda = np.meshgrid(xNda, yNda)
>>> array([[[0, 1, 2],
            [0, 1, 2],
            [0, 1, 2],
            [0, 1, 2]],
           [[0, 0, 0],
            [1, 1, 1],
            [2, 2, 2],
            [3, 3, 3]]])

np.dot(x, y)
>>> 15
np.dot(xNda, x)
>>> array([0, 3, 6])
np.dot(xNda+3, xNda+7) # 👇图示之
>>> 98

在这里插入图片描述

在这里插入图片描述

向量的点乘,也叫做向量的内积、数量积。对两个向量执行点乘运算,就是对着两个向量对应位置一一相乘之后求和的操作,点乘的结果是一个标量。

定义: 向量 a = [ a 1 , a 2 , . . . , a n ] a = [a_1, a_2, ..., a_n] a=[a1,a2,...,an] 和向量 b = [ b 1 , b 2 , . . . , b n ] b = [b_1, b_2, ..., b_n] b=[b1,b2,...,bn] 的内积为:

a ⋅ b = ∑ i = 1 n a i b i = a 1 b 1 + a 2 b 2 + . . . + a n b n a \cdot b = \sum_{i=1}^n a_i b_i = a_1 b_1 + a_2 b_2 + ... + a_n b_n ab=i=1naibi=a1b1+a2b2+...+anbn

特别地, 0 ⋅ a = a ⋅ 0 = 0 0 \cdot a = a \cdot 0 = 0 0a=a0=0;若 a , b a, b a,b 是非零向量,则 a a a b b b 正交的充要条件是 a ⋅ b = 0 a \cdot b = 0 ab=0

点积的几何意义: 可以用来表征或计算两个向量之间的夹角,以及在 b b b 向量在 a a a 向量方向上的投影,有公式:

a ⋅ b = ∣ a ∣ ∣ b ∣ cos ⁡ θ a \cdot b = |a| |b| \cos \theta ab=a∣∣bcosθ

其中, θ \theta θ a a a b b b 之间的夹角。

在这里插入图片描述

根据这个公式就可以计算向量 a a a 和向量 b b b 之间的夹角。从而就可以进一步判断这两个向量是否是同一方向,是否正交(也就是垂直)等方向关系,具体对应关系为:

  • a ⋅ b > 0 a \cdot b > 0 ab>0,方向基本相同,夹角在 0 ° 0° 90 ° 90° 90° 之间;
  • a ⋅ b = 0 a \cdot b = 0 ab=0,正交,相互垂直;
  • a ⋅ b < 0 a \cdot b < 0 ab<0,方向基本相反,夹角在 90 ° 90° 90° 180 ° 180° 180° 之间。

向量点乘的运算特性:

  • a 2 ≥ 0 a^2 \geq 0 a20;当 a 2 = 0 a^2 = 0 a2=0 时,必有 a = 0 a = 0 a=0; (正定性)
  • a ⋅ b = b ⋅ a a \cdot b = b \cdot a ab=ba;(对称性)
  • ( λ a + μ b ) ⋅ c = λ a ⋅ c + μ b ⋅ c (\lambda a + \mu b) \cdot c = \lambda a \cdot c + \mu b \cdot c (λa+μb)c=λac+μbc,对任意实数 λ , μ \lambda, \mu λ,μ 成立; (线性)
  • cos ⁡ ∠ ( a , b ) = a ⋅ b / ( ∣ a ∣ ∣ b ∣ ) \cos \angle (a, b) = a \cdot b / (|a| |b|) cos(a,b)=ab/(a∣∣b);(余弦定理)
  • ∣ a ⋅ b ∣ ≤ ∣ a ∣ ∣ b ∣ |a \cdot b| \leq |a| |b| aba∣∣b,等号只在 a a a b b b 共线时成立。

😓😓😓…请等下集分解

以上内容来自维基百科, 由在这里插入图片描述协助完成.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么把workspace的数据导入到simulink查看波形?

仿真截图&#xff1b; 示例代码&#xff1a; sampleTime 0.001; %设置采样时间 numSteps 1/sampleTimes; %设置时间矩阵长度 time sampleTime*(0:numSteps-1); %定义时间矩阵 time time; %时间矩阵转置 data sin…

【Maven】008-Maven 私服搭建与使用

【Maven】008-Maven 私服搭建与使用 文章目录 【Maven】008-Maven 私服搭建与使用一、概述1、简介2、建立私服后依赖查找和下载逻辑第一步&#xff1a;请求本地仓库第二步&#xff1a;请求 Maven 私服第三步&#xff1a;请求外部远程仓库&#xff08;远程中央仓库等&#xff09…

SOMEIP学习总结

SOMEIP学习总结&#xff08;包含VSOMEIP库&#xff09; 一.基本概念 1.SOMEIP支持TCP和UDP两种传输方式 ​ 其中&#xff0c;SOMEIP-SD的消息都是通过UDP发送的 2.SOMEIP支持如下中间件特性&#xff1a; Serialization – transforming into and from on-wire representati…

深入解析JavaScript中构造函数和new操作符

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;《爱蹦跶的大A阿》 &#x1f525;当前正在更新专栏&#xff1a;《VUE》 、《JavaScript保姆级教程》、《krpano》 ​ ​ 目录 ✨ 前言 ✨ 正文 第一节:构造函数 第二节:new操作符 第三节:实例与原型 ✨ 结语 ✨ 前言…

java poi导出excel合并单元格

导出效果 代码&#xff1a; import java.math.BigDecimal;public class CwmonthlyPlanSub0Bean {/*** 主键*/private Long id;/*** 付款类*/private String fkl;/*** 付款事项*/private String fksx;/*** 本期预算金额*/private BigDecimal bqysje;/*** * 电汇金额*/private B…

CSS 弹幕按钮动画

<template><view class="content"><button class="btn-23"><text class="text">弹幕按钮</text><text class="marquee">弹幕按钮</text></button></view></template><…

移动硬盘无法识别处理办法

今天这里做一下总结&#xff0c;我现在手上有一个移动硬盘&#xff0c;插入win10电脑是有盘号的&#xff0c;但是 但是点击就出问题 解决办法 安装DiskGenius 下载网址在https://www.diskgenius.cn/download.php 下载之后解压安装就行&#xff0c;非常简单&#xff0c;然后…

Provide/Inject 依赖注入(未完待续)

父组件传递给子组件数据&#xff0c;通过props&#xff0c;但是需要逐层传递 provide/Inject 的推出就是为了解决这个问题&#xff0c;它提供了一种组件之间共享此类值的方式,不必通过组件树每层级显示地传递props 目的是为了共享那些被 认为对于一个组件树而言是全局的数据 p…

【LeetCode: 57. 插入区间+分类讨论+模拟】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

12.3在应用层使用SPI总线

在SPI总线驱动框架中提供了一个spidev 的字符设备驱动&#xff0c;在应用层可以通过它来访问SPI总线。 应用层访问SPI总线的步骤 编写spidev设备树节点&#xff0c;在SPI总线的设备树节点下添加spidev设备的树节点&#xff0c;设备树示例如下所示&#xff1a; spidev0: spid…

ASCII编码:计算机文本通信的基石

ASCII&#xff08;美国信息交换标准代码&#xff09;编码是一种将字符与数字相互映射的编码系统&#xff0c;它为现代计算机文本通信奠定了基础。本文将从多个方面介绍ASCII编码的原理、发展历程、应用及其在现实场景中的优势&#xff0c;帮助您深入了解这一重要的编码技术。 …

C++进阶--红黑树

红黑树 一、红黑树的概念二、红黑树的性质三、红黑树结点的定义四、红黑树的插入五、红黑树的验证七、红黑树的查找七、红黑树与AVL树的比较七、完整代码RBTree.h 一、红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色…

QT -狗狗管理工具

QT -狗狗管理工具 一、演示效果二、UML三、关键代码四、程序链接 一、演示效果 二、UML 三、关键代码 #include <QFrame> #include <QHBoxLayout> #include <QVBoxLayout> #include <QLabel> #include <QSizePolicy> #include <QDialog> …

【深度学习每日小知识】Computer Vision 计算机视觉

计算机视觉是人工智能的一个领域&#xff0c;涉及算法和系统的开发&#xff0c;使计算机能够解释、理解和分析来自周围世界的视觉数据。这包括从静态图像到视频流甚至 3D 环境的一切。 使用对象检测和特征提取等方法&#xff0c;计算机视觉本质上需要从视觉输入中提取有用信息…

大模型微调及生态简单介绍

大模型 大模型生态OpenAI大模型生态&#xff1a; 全球开源大模型性能评估榜单中文语言模型——ChatGLM基于ChatGLM的多模态⼤模型 大模型微调LLM⼤语⾔模型 ⼀般训练过程为什么需要微调高效微调技术⽅法概述⾼效微调⽅法一&#xff1a;LoRA微调方法高效微调⽅法⼆&#xff1a;P…

linux 网络设置

查看linux基础的网络配置 命令 网关route -nip 地址ifconfig / ip aDNS 服务器cat /etc/resolv.conf主机名hostname路由route -n网络连接状态ss / netstat 一&#xff0c;ifconfig 查看网络接口信息 &#xff08;一&#xff09;ifconfig …

C++|68.虚析构函数

文章目录 虚析构函数诞生的背景问题若创造一个子类的对象&#xff0c;并使用一个父类的指针指向/管理它&#xff0c;结果会如何解决方案——虚析构函数 虚析构函数诞生的背景 Derived继承了Base&#xff0c;Derived本身自带析构函数&#xff0c;而由于继承了Base&#xff0c;De…

openssl3.2 - quic服务的运行

文章目录 openssl3.2 - quic服务的运行概述笔记运行openssl编译好的quic服务程序todo - 如果自己编译quic服务工程END openssl3.2 - quic服务的运行 概述 在看 官方 guide目录下的工程. 都是客户端程序, 其中有quic客户端, 需要运行quic服务才行. openssl编译好的目录中有编译…

【Python】数据可视化--基于TMDB_5000_Movie数据集

一、数据准备 tmdb_5000_movie数据集下载 二、数据预处理 观察数据集合情况 import pandas as pd import ast import warnings warnings.filterwarnings(ignore) # 加载数据集 df pd.read_csv(tmdb_5000_movies.csv) # 查看数据集信息 print(df.info()) 由于原数据集包含的…

DM数据库安装注意事项

数据库安装注意事项 一、安装前 一些参数需要在数据库创建实例前找用户确认。 参数名参数掩码参数值备注数据页大小PAGE_SIZE32数据文件使用的页大小(缺省使用8K&#xff0c;建议默认&#xff1a;32)&#xff0c;可以为 4K、8K、16K 或 32K 之一&#xff0c;选择的页大小越大…