6.Tensors For Beginners-What are Convector
Covectors (协向量)
What‘s a covector
Covectors are “basically” Row Vectors
在一定程度上,可认为 协向量 基本上就像 行向量。
但不能简单地认为 这就是列向量进行转置!
行向量 和 列向量 是根本不同类型的对象。
(处理正交基时,将列向量转置成行向量的做法是正确的,但在其他坐标系中不是这样)
要理解这个,需将 行向量视为函数,
因此,可将行向量 视为 列向量上的函数,row vectors are functions on (column) vectors
eg:y=f(x) x就是输入
行向量 [ 2,1 ]是函数,列向量 [ -3 ; 4 ]是函数的输入,
要得到函数的输出值,只需对该行向量和列向量进行矩阵乘法 或“点积”

现如果,有 任意通用的协向量α 作用于 任意通用向量v上,
则可通过两向量的点积来获取输出值,

因此,最终我们应将 行向量 视为 【从某个向量空间V 中 获取输入并返回实数或“标量”】的函数

这些行向量函数是如何工作的?
假设一行向量 作用于两个相加的向量输入上,可通过两种方式求,
(1.分配律--我认为就是分配律的体现)
将行向量分配给每个输入,然后将结果相加,输出
(2.结合律--个人理解)
将输入相加,再进行点积 

所以行向量作为函数 在这里有个属性:可以在之前添加输入;或在之后添加输出。会得到相同的结果
还有一个想法是:
若向量输入按某个数字进行缩放会怎样
同样有两种方法计算
1.可缩放输入向量,再进行点积
2.把缩放数 提到最前面,再计算行向量与列向量的点积,最后再缩放结果,

因此,作为函数的行向量具有这个属性:可缩放输入,或缩放输出,并得到相同的结果。
总而言之, 协向量是一个 函数,它接受一个向量并产生一个“标量”(或一个数字);它具有可添加输入或添加输出以获得相同答案的属性;并且它具有可按相同数量缩放输入或缩放输出并得到相同答案的属性。
这种能添加或缩放 输入或输出 并获得相同答案的行为 称为 “线性“。所以协向量是线性函数。

如何可视化协向量?
我们可以将普通向量可视化为箭头,我们可以对协向量做同样的事情,但对于可视化函数来说,这是件尴尬的事。

有一种更好的办法可视化协向量
首先将2D行向量视为两个变量x、y的函数,(x、y是输入)
在这个例子中,这个行向量 [ 2 , 1 ] 就可认为是一个函数:v,如何可视化 用两个变量产生一个输出 的函数 呢?

这与地形图有些相似,地形图上,同一海拔高度的都用一条线连起来。
同样地,我们给这个函数一个输出,就有一条线,
如 2x+1y = 0 确定一条线;
2x+1y = 1 确定一条线;
2x+1y = 2 确定一条线;
2x+1y = -1 确定一条线;
2x+1y = -2 确定一条线;

所以我们可将协向量【2,1】视为 一堆的直线:

注意到,这些线 向右上角增加,可添加箭头提示增加的方向。
将行向量α=【2,1】绘制在图上的话,会发现 α 垂直于 所有的直线。

为什么会垂直?把【2,1】用【a,b】去进行证明,一个方向是 这些直线的方向相同,方向向量相同,用方向向量与α进行点乘; 另一个方向是 斜率,直线的斜率都一样(-a/b),α行向量作为直线的话,斜率是b/a,也可证明
所以我们可将协向量【2,1】视为 一堆的直线,而且这非常有用。
例子:
在这四个图中,协向量α相同,可视化为一堆线
在该协向量上, 有向量V指向不同的方向,

需要做的是,计算作用在向量V上的协向量α的数值,
记住:这一堆线中的每一条线都是代表一常量值的线,
因此,要获得作用在V上的α的值,需要做的是 计算V穿透的线的个数。
PS:这样计算真的好简单,但是对于编写成代码来计算的话,好像很难把,想不出头绪,能自己画出图,这样是最直观,但画图也不容易。
接着,修改协向量,获得新的协向量来进行计算
把协向量放大两倍

把协向量放大两倍,其实就是从 α 变为 2α , 如果你从式子上看的话, 能直接想到应该是结果放大两倍, 那么对应的输出结果应该放大两倍, 那对应图上,就是穿透的线要翻倍,则图要变密集,比原来密集一倍。
从 【a,b】*【x;y】上理解,ax+by函数,变为【2a,2b】*【x;y】= 2ax + 2by、ax+by = k---------y = -ax/b + k/b;
2ax+2by= k-------y= -ax/b + k/2b; 只是截距变啦,斜率没变, 所以截距影响线 的间距?

以上就是缩放协向量;
接着便是把协向量进行相加的情况,
β、γ两个协向量进行相加,如何画出β+γ的线?----------结果 在 β方向上与β具有相同的密度,在γ方向上与γ具有相同的密度。

观察相加后的新协向量,V在β方向上的分量 同之前一样,穿透三根线,V在γ方向上的分量 同之前一样,穿透两根线。
从某种意义上说,β的水平密度为3,垂直密度为0;而γ的水平密度为0,垂直密度为2
而β+γ ,就是将两者结合在一起,水平密度:3+0=3;垂直密度:0+2 =2
而V在β+γ这个协向量上穿透5根线,其实就是原来的:V在β上穿透3根,在γ上穿透2根,加起来就是5根。,
其实从式子上理解的话,是非常容易理解的。
以上就证明,协向量具有合理的缩放和添加规则,

作用于向量V的所有covector 的集合形成一个新的向量空间,称为”对偶空间“,用 ” V* “表示,
有一组不同的添加规则,称为”red+“ ---- ” + “
有一组不同的缩放规则,称为”red·“------” · “
用不同颜色来表示这些规则的原因是 因为它们实际上是不同的规则,
黑色规则用于添加和缩放向量,就是用箭头表示的矢量所作规则;
红色规则用于添加和缩放协向量,像上面的例子那般,
V* 中的元素就是协向量,它们是 从V到实数的函数,
总结。协向量是从向量到实数的函数 , 这些函数具有可以添加和缩放输入 或 添加和缩放输出 以获得相同答案的属性。这就是所谓的”线性“,所以这些是线性函数。
作用在向量空间 V 上的所有协向量的集合形成 向量空间V*,这些协向量有自己的加法和缩放规则,可将协向量视为 一簇线,
+
相关文章:
6.Tensors For Beginners-What are Convector
Covectors (协向量) What‘s a covector Covectors are “basically” Row Vectors 在一定程度上,可认为 协向量 基本上就像 行向量。 但不能简单地认为 这就是列向量进行转置! 行向量 和 列向量 是根本不同类型的对象。 …...
Linux多线程网络通信
思路:主线程(只有一个)建立连接,就创建子线程。子线程开始通信。 共享资源:全局数据区,堆区,内核区描述符。 线程同步不同步需要取决于线程对共享资源区的数据的操作,如果是只读就不…...
矩阵的c++实现(2)
上一次我们了解了矩阵的运算和如何使用矩阵解决斐波那契数列,这一次我们多看看例题,了解什么情况下用矩阵比较合适。 先看例题 1.洛谷P1939 【模板】矩阵加速(数列) 模板题应该很简单。 补:1<n<10^9 10^9肯定…...
RPC 框架之Thrift入门(一)
📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言Ὅ…...
【C++】运算符重载 ⑥ ( 一元运算符重载 | 后置运算符重载 | 前置运算符重载 与 后置运算符重载 的区别 | 后置运算符重载添加 int 占位参数 )
文章目录 一、后置运算符重载1、前置运算符重载 与 后置运算符重载 的区别2、后置运算符重载添加 int 占位参数 上 2 2 2 篇博客 【C】运算符重载 ④ ( 一元运算符重载 | 使用 全局函数 实现 前置 自增运算符重载 | 使用 全局函数 实现 前置 - - 自减运算符重载 )【C】运算符…...
538. 把二叉搜索树转换为累加树
题目描述 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下,二叉搜索树满足下列约束…...
java8日期时间工具类
【README】 1)本文总结了java8中日期时间常用工具方法;包括: 日期时间对象格式化为字符串;日期时间字符串解析为日期时间对象;日期时间对象转换; 转换过程中,需要注意的是: Instan…...
算法-动态规划/trie树-单词拆分
算法-动态规划/trie树-单词拆分 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/word-break/description/?envTypestudy-plan-v2&envIdtop-interview-150 1.2 题目描述 2 动态规划 2.1 解题思路 dp[i]表示[0, i)字符串可否构建那么dp[i]可构建的条件是&…...
React框架核心原理
一、整体架构 三大核心库与对应的组件 history -> react-router -> react-router-dom react-router 可视为react-router-dom 的核心,里面封装了<Router>,<Route>,<Switch>等核心组件,实现了从路由的改变到组件的更新…...
python-pytorch 利用pytorch对堆叠自编码器进行训练和验证
利用pytorch对堆叠自编码器进行训练和验证 一、数据生成二、定义自编码器模型三、训练函数四、训练堆叠自编码器五、将已训练的自编码器级联六、微调整个堆叠自编码器 一、数据生成 随机生成一些数据来模拟训练和验证数据集: import torch# 随机生成数据 n_sample…...
制作 3 档可调灯程序编写
PWM 0~255 可以将数据映射到0 75 150 225 尽可能均匀电压间隔...
源码分享-M3U8数据流ts的AES-128解密并合并---GoLang实现
之前使用C语言实现了一次,见M3U8数据流ts的AES-128解密并合并。 学习了Go语言后,又用Go重新实现了一遍。源码如下,无第三方库依赖。 package mainimport ("crypto/aes""crypto/cipher""encoding/binary"&quo…...
CSDN Q: “这段代码算是在STC89C52RC51单片机上完成PWM呼吸灯了吗?“
这是 CSDN上的一个问题 这段代码算是在STC89C52RC51单片机上完成PWM呼吸灯了吗,还是说得用上定时器和中断函数#include <regx52.h> 我个人认为: 效果上来说, 是的! 码以 以Time / 100-Time 调 Duty, 而 for i loop成 Period, 加上延时, 实现了 PWM周期, 虽然…...
Linux系统编程系列之线程池
Linux系统编程系列(16篇管饱,吃货都投降了!) 1、Linux系统编程系列之进程基础 2、Linux系统编程系列之进程间通信(IPC)-信号 3、Linux系统编程系列之进程间通信(IPC)-管道 4、Linux系统编程系列之进程间通信-IPC对象 5、Linux系统…...
Linux CentOS7 vim多文件与多窗口操作
窗口是可视化的分割区域。Windows中窗口的概念与linux中基本相同。连接xshell就是在Windows中新建一个窗口。而vim打开一个文件默认创建一个窗口。同时,Vim打开一个文件也就会建立一个缓冲区,打开多个文件就会创建多个缓冲区。 本文讨论vim中打开多个文…...
SPI 通信协议
1. SPI通信 1. 什么是SPI通信协议 2. SPI的通信过程 在一开始会先把发送缓冲器的数据(8位)。一次性放到移位寄存器里。 移位寄存器会一位一位发送出去。但是要先放到锁存器里。然后从机来读取。从机的过程也一样。当移位寄存器的数据全部发送完。其实…...
【图像处理】使用各向异性滤波器和分割图像处理从MRI图像检测脑肿瘤(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
5个适合初学者的初级网络安全工作,网络安全就业必看
前言 网络安全涉及保护计算机系统、网络和数据免受未经授权的访问、破坏和盗窃 - 防止数字活动和数据访问的中断 - 同时也保护用户的资产和隐私。鉴于公共事业、医疗保健、金融以及联邦政府等行业的网络犯罪攻击不断升级,对网络专业人员的需求很高,这并…...
Kafka核心原理
1、Topic的分片和副本机制 分片作用: 解决单台节点容量有限的问题,节点多,效率提升,吞吐量提升。通过分片,将一个大的容器分解为多个小的容器,分布在不同的节点上,从而实现分布式存储。 分片…...
探秘前后端开发世界:猫头虎带你穿梭编程的繁忙街区,解锁全栈之路
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !
我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...
