【AI | pytorch】torch.polar的使用

一、torch.polar的使用

torch.polar 是 PyTorch 中用来生成复数张量的一个函数,但它与数学中的复数表达式 ( z = re^{i\theta} ) 是等价的。

具体来说,torch.polar(abs, angle) 接受两个实数张量参数:

  • abs:表示复数的模长(绝对值)。
  • angle:表示复数的相角(以弧度为单位)。

函数的返回值是一个复数张量 ( z ),其中每个元素的值为:

[
z = \text{abs} \cdot e^{i \cdot \text{angle}}
]

这符合复数的极坐标形式,实际上就是将给定的模和角转化为复数的笛卡尔坐标形式 ( z = x + yi ),其中:

[
x = \text{abs} \cdot \cos(\text{angle})
]
[
y = \text{abs} \cdot \sin(\text{angle})
]
在这里插入图片描述

示例

import torch# 模和角
abs_tensor = torch.tensor([1.0, 2.0, 3.0])
angle_tensor = torch.tensor([0.0, 3.1415926 / 2, 3.1415926])  # 0, π/2, π# 使用 torch.polar 生成复数
complex_tensor = torch.polar(abs_tensor, angle_tensor)print(complex_tensor)
# 输出: tensor([ 1.0000e+00+0.0000e+00j,  1.2246e-16+2.0000e+00j, -3.0000e+00+3.6739e-16j])

从结果可以看出:

  • 对于 ( \theta = 0 ),复数是 ( 1+0j )。
  • 对于 ( \theta = \pi/2 ),复数是 ( 0+2j )。
  • 对于 ( \theta = \pi ),复数是 ( -3+0j )。

因此,torch.polar 是 PyTorch 中基于极坐标生成复数的一种实现,但其底层是通过欧拉公式 ( e^{i\theta} = \cos(\theta) + i\sin(\theta) ) 转化到复数的。
在这里插入图片描述

二、欧拉公式

数学中,复数的欧拉公式(Euler’s formula)定义了一个非常重要的关系:

[
e^{i\theta} = \cos\theta + i\sin\theta
]

其中:

  • ( \theta ) 是实数,表示角度,通常以弧度为单位。
  • ( \cos\theta ) 是角度 ( \theta ) 的余弦值。
  • ( \sin\theta ) 是角度 ( \theta ) 的正弦值。
  • ( i ) 是虚数单位,满足 ( i^2 = -1 )。

欧拉公式通过将指数函数 ( e^{i\theta} ) 和三角函数 ( \cos ) 与 ( \sin ) 联系起来,揭示了复数、三角学和指数运算之间的深刻关系。

特殊情况

欧拉公式在某些特定角度 ( \theta ) 下具有有趣的结果:

  1. 当 ( \theta = 0 ):
    [
    e^{i\cdot0} = \cos(0) + i\sin(0) = 1 + 0i = 1
    ]

  2. 当 ( \theta = \pi ):
    [
    e^{i\pi} = \cos(\pi) + i\sin(\pi) = -1 + 0i = -1
    ]

  3. 当 ( \theta = \frac{\pi}{2} ):
    [
    e^{i\frac{\pi}{2}} = \cos\left(\frac{\pi}{2}\right) + i\sin\left(\frac{\pi}{2}\right) = 0 + i = i
    ]

  4. 当 ( \theta = 2\pi ):
    [
    e^{i\cdot2\pi} = \cos(2\pi) + i\sin(2\pi) = 1 + 0i = 1
    ]
    在这里插入图片描述

复数表示

通过欧拉公式,复数 ( z ) 可以以极坐标的形式表示为:
[
z = re^{i\theta}
]
其中:

  • ( r ) 是复数的模,表示复数到原点的距离。
  • ( \theta ) 是复数的相角,表示复数与正实轴之间的角度。

这表明复数的表示可以分为模长角度两个部分。

总结

欧拉公式 ( e^{i\theta} = \cos\theta + i\sin\theta ) 是复数理论和数学分析中的一个重要公式,它将指数函数和三角函数联系在一起,广泛应用于物理学、工程学和计算机科学等领域。

在这里插入图片描述

数学复数

数学中的复数是由一个实数部分和一个虚数部分组成的数,通常表示为:

[
z = a + bi
]

其中:

  • ( a ) 是实数部分 (( \text{Re}(z) ));
  • ( b ) 是虚数部分的系数 (( \text{Im}(z) ));
  • ( i ) 是虚数单位,满足 ( i^2 = -1 )。

复数的几何表示

复数可以在复平面上表示为一个点或向量:

  • 横坐标为实部 ( a );
  • 纵坐标为虚部 ( b )。

复数也可以用极坐标形式表示为:

[
z = r (\cos \theta + i \sin \theta)
]

或者用欧拉公式简化为:

[
z = r e^{i\theta}
]

其中:

  • ( r = |z| = \sqrt{a^2 + b^2} ) 是复数的模;
  • ( \theta = \arg(z) = \tan^{-1}\left(\frac{b}{a}\right) ) 是复数的辐角(以弧度表示)。

复数形式在数学、物理和工程学中有广泛的应用,尤其是在处理波动、信号分析和电路等领域。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.Net Core微服务入门全纪录(六)——EventBus-事件总线

系列文章目录 1、.Net Core微服务入门系列(一)——项目搭建 2、.Net Core微服务入门全纪录(二)——Consul-服务注册与发现(上) 3、.Net Core微服务入门全纪录(三)——Consul-服务注…

深度学习 · 手撕 DeepLearning4J ,用Java实现手写数字识别 (附UI效果展示)

引言 随着人工智能技术的不断发展,手写数字识别已经成为深度学习领域的一个经典案例。不管是老牌的机器学习模型还是现代的神经网络架构,手写数字识别总是大家学习和实战的起点之一。而对于我们日常使用的Java开发者来说,借助DeepLearning4J…

linux平台RTMP|RTSP播放器如何回调SEI数据?

我们在对接Linux平台RTMP|RTSP播放的时候,有遇到这样的技术需求,合作企业在做无人机视觉分析场景的时候,除了需要低延迟的拿到解码后的RGB|YUV数据,然后投递给他们自己的视觉算法处理模块外,还需要播放器支持SEI的回调…

vue2 - Day05 - VueX

Vuex 是 Vue.js 官方的状态管理库。它是一个让你能在应用中集中管理共享状态的工具。当应用的规模逐渐增大,组件之间的数据传递变得越来越复杂时,Vuex 就成为了救星,提供了一个集中式的存储来管理所有的组件状态,并且保证状态以一…

Linux系统之kill命令的基本使用

Linux系统之kill命令的基本使用 一、kill命令介绍1. kill命令简介2. kill命令的使用场景3. kill命令使用注意事项 二、kill命令的使用帮助1. 查看kill命令帮助信息2. kill命令帮助解释 三、kill常用的信号1. 列出所有的信号2.kill常用的信号 四、kill命令的基本使用1. 运行一个…

HTML之拜年/跨年APP(改进版)

目录: 一:目录 二:效果 三:页面分析/开发逻辑 1.页面详细分析: 2.开发逻辑: 四:完整代码(不多废话) index.html部分 app.json部分 二:效果 三:页面…

深入探索Python人脸识别技术:从原理到实践

一、引言在当今数字化时代,人脸识别技术已然成为了计算机视觉领域的璀璨明星,广泛且深入地融入到我们生活的各个角落。从门禁系统的安全守护,到金融支付的便捷认证,再到安防监控的敏锐洞察,它的身影无处不在,以其高效、精准的特性,极大地提升了我们生活的便利性与安全性…

JupyterLab 安装以及部分相关配置

安装 JupyterLab pip install jupyter启动 JupyterLab jupyter lab [--port <指定的端口号>] [--no-browser] # --port 指定端口 # --no-browser 启动时不打开浏览器安装中文 首先安装中文包 pip install jupyterlab-language-pack-zh-CN安装完成后重启 JupyterLab 选…

mac m1下载maven安装并配置环境变量

下载地址&#xff1a;Download Apache Maven – Maven 解压到一个没有中文和空格的文件夹 输入pwd查看安装路径 输入cd返回根目录再输入 code .zshrc 若显示 command not found: code你可以通过以下步骤来安装和配置 code 命令&#xff1a; 1. 确保你已经安装了 Visual Studio…

【环境搭建】Metersphere v2.x 容器部署教程踩坑总结

前言 Metersphere部署过程中遇到的问题有点多&#xff0c;原因是其容器的架构蛮复杂的&#xff0c;比较容易踩坑&#xff0c;所以记录一下。 介绍 MeterSphere 是开源持续测试平台&#xff0c;遵循 GPL v3 开源许可协议&#xff0c;涵盖测试管理、接口测试、UI 测试和性能测…

VSCode的配置与使用(C/C++)

从0开始教你在vscode调试一个C文件 一.首先是配置你的编译环境&#xff0c;添加到环境变量&#xff08;默认你是全新的电脑&#xff0c;没有安装vs2019之类的&#xff09; 原因&#xff1a;因为相比于vs2019&#xff0c;vscode只是个代码编辑器&#xff0c;相当于一个彩色的、…

QTableWidget的简单使用

1.最简单的表格示例&#xff1a; ui->tableWidget->setRowCount(2);// 设置行数ui->tableWidget->setColumnCount(3);// 设置列数&#xff0c;一定要放在设置行表头之前QStringList rowHeaderList;// 行表头rowHeaderList << QStringLiteral("姓名"…

七大排序算法

文章目录 排序的概念及引用1.插入排序2.希尔排序(缩小增量排序)3.选择排序4.堆排序5.冒泡排序6.快速排序7.归并排序8.代码排序部分的测试9.代码加效果大致测试时间&#xff08;仅供参考&#xff09; 排序的概念及引用 排序:将数据按照特定的规律排成递增或递减的操作 稳定性:…

前端常见标签

1. <!-- ! 快速生成标签 --> &#xff01;回车会立刻生成模板 2. <!-- CTRL / 生成注释--> 3. 文本标签 <!-- span 文本标签 --> 生成如下&#xff1a; 4. <!-- h1-h6标题标签 --> 大小依次递减 生成&…

PHP教育系统小程序

&#x1f310; 教育系统&#xff1a;全方位学习新体验&#xff0c;引领未来教育风尚 &#x1f680; 教育系统&#xff1a;创新平台&#xff0c;智慧启航 &#x1f4f1; 教育系统&#xff0c;一款深度融合科技与教育的创新平台&#xff0c;匠心独运地采用先进的ThinkPHP框架与U…

MySQL配置my.ini文件

my.ini文件中存储了数据库的文件地址&#xff0c;数据库数据存储地址以及登录密码等基础信息。在遇到忘记密码或者其他基础问题时&#xff0c;修改my.ini文件很方便。但是部分数据库版本默认不生成my.ini文件&#xff0c;需要自己进行配置。 1.停止数据库服务。在搜索框中输入…

【电视盒子】HI3798MV300刷机教程笔记/备份遥控码修复遥控器/ADB/线刷卡刷/电视盒子安装第三方应用软件

心血来潮&#xff0c;看到电视机顶盒满天飞的广告&#xff0c;想改造一下家里的电视盒子&#xff0c;学一下网上的人刷机&#xff0c;但是一切都不知道怎么开始&#xff0c;虽然折腾了一天&#xff0c;以失败告终&#xff0c;还是做点刷机笔记。 0.我的机器 年少不会甄别&…

Java中的构造器

Java中的构造器详解 1. 什么是构造器 构造器&#xff08;Constructor&#xff09; 是一种特殊的方法&#xff0c;用于在创建对象时初始化对象的状态。构造器的名字必须与类名相同&#xff0c;且没有返回类型&#xff0c;连 void 也不能使用。 2. 构造器的特点 名称与类名相同…

Zabbix监控山特UPS电源:实现高效监控与告警

背景 近期&#xff0c;随着机房迁移的进行&#xff0c;为了提升电力保障并确保设备的持续运行&#xff0c;我们在原有基础上新增了多台山特UPS电源作为备用电源。这些UPS电源的主要作用是在电力中断时为机房设备提供足够的电力支持&#xff0c;确保设备有充足的时间进行正常关…

计算机系统原理:一些断言

0 虚拟机和解释器 在Java中&#xff0c;JVM既充当了一个虚拟机的角色&#xff0c;也包含了用于执行字节码的解释器。同样地&#xff0c;Python的CPython实现也是先将源代码编译成字节码&#xff0c;然后由Python虚拟机执行。 1 从源代码中提取token的过程就是词法分析 词法分…