本文转自公众号 imath, 作者 阮一峰。

一直觉得虚数(imaginary number)很难懂。

中学老师说,虚数就是-1的平方根。

可是,什么数的平方等于-1呢?计算器直接显示出错!

直到今天,我也没有搞懂。谁能解释,虚数到底是什么?它有什么用?

对于虚数,很多童鞋都有上面的疑问,有人推荐了一篇非常棒的文章《虚数的图解》。我读后恍然大悟,醍醐灌顶,原来虚数这么简单,一点也不奇怪和难懂!下面,我就用自己的语言,讲述我所理解的虚数。

一什么是虚数

首先,假设有一根数轴,上面有两个反向的点: 1和-1。

这根数轴的正向部分,可以绕原点旋转。显然,逆时针旋转180度, 1就会变成-1。

这相当于两次逆时针旋转90度。

因此,我们可以得到下面的关系式:

( 1) * (逆时针旋转90度) * (逆时针旋转90度) = (-1)

如果把 1消去,这个式子就变为:

(逆时针旋转90度)^2 = (-1)

将'逆时针旋转90度'记为 i :

i^2 = (-1)

这个式子很眼熟,它就是虚数的定义公式。

所以,我们可以知道,虚数 i 就是逆时针旋转90度,i 不是一个数,而是一个旋转量。

二复数的定义

既然 i 表示旋转量,我们就可以用 i ,表示任何实数的旋转状态。

将实数轴看作横轴,虚数轴看作纵轴,就构成了一个二维平面。旋转到某一个角度的任何正实数,必然唯一对应这个平面中的某个点。

只要确定横坐标和纵坐标,比如( 1 , i ),就可以确定某个实数的旋转量(45度)。

数学家用一种特殊的表示方法,表示这个二维坐标:用 号把横坐标和纵坐标连接起来。比如,把 ( 1 , i ) 表示成 1 i 。这种表示方法就叫做复数(complex number),其中 1 称为实数部,i 称为虚数部。

为什么要把二维坐标表示成这样呢,下一节告诉你原因。

三虚数的作用:加法

虚数的引入,大大方便了涉及到旋转的计算。

比如,物理学需要计算'力的合成'。假定一个力是 3 i ,另一个力是 1 3i ,请问它们的合成力是多少?

根据'平行四边形法则',你马上得到,合成力就是 ( 3 i ) ( 1 3i ) = ( 4 4i )。

这就是虚数加法的物理意义。

四虚数的作用:乘法

如果涉及到旋转角度的改变,处理起来更方便。

比如,一条船的航向是 3 4i 。

如果该船的航向,逆时针增加45度,请问新航向是多少?

45度的航向就是 1 i 。计算新航向,只要把这两个航向 3 4i 与 1 i 相乘就可以了(原因在下一节解释):

( 3 4i ) * ( 1 i ) = ( -1 7i )

所以,该船的新航向是 -1 7i 。

如果航向逆时针增加90度,就更简单了。因为90度的航向就是 i ,所以新航向等于:

( 3 4i ) * i = ( -4 3i )

这就是虚数乘法的物理意义:改变旋转角度。

五虚数乘法的数学证明

为什么一个复数改变旋转角度,只要做乘法就可以了?

下面就是它的数学证明,实际上很简单。

任何复数 a bi,都可以改写成旋转半径 r 与横轴夹角 θ 的形式。

假定现有两个复数 a bi 和 c di,可以将它们改写如下:a bi = r1 * ( cosα isinα )c di = r2 * ( cosβ isinβ )

这两个复数相乘,( a bi )( c di ) 就相当于

r1 * r2 * ( cosα isinα ) * ( cosβ isinβ )

展开后面的乘式,得到

cosα * cosβ - sinα * sinβ i( cosα * sinβ sinα * cosβ )

根据三角函数公式,上面的式子就等于

cos(α β) isin(α β)

所以,

( a bi )( c di ) = r1 * r2 * ( cos(α β) isin(α β) )

这就证明了,两个复数相乘,就等于旋转半径相乘、旋转角度相加。

java虚数复数计算_虚部?从搞懂虚数开始....相关推荐

  1. java虚数复数计算_真实的虚数,不仅不是没用,而且还很实在

    原标题:真实的虚数,不仅不是没用,而且还很实在 数学是从生产生活中诞生的,随着数学的发展,逐渐超出了人们的想象.虚数就是数学发展过程中的一个典型例子,不过,直到今天,仍有很多小伙伴对虚数表示难以理解. ...

  2. java 固定长度队列_如何彻底搞懂 Java 数据结构?|CSDN 博文精选

    作者 | 张振华.Jack 责编 | 郭芮 出品 | CSDN 博客 本文和大家一起来重温<Java数据结构>经典之作. Java数据结构 要理解Java数据结构,必须能清楚何为数据结构? ...

  3. c++ 计算正弦的近似值_一篇文章搞懂正弦保真性

    本文介绍数字信号处理中"正弦保真性"这一概念,想要更好地理解本文所述内容,建议读者先阅读<一篇文章搞懂卷积>. 正弦保真性定义 一个正弦信号作为线性时不变系统的输入时, ...

  4. python语言语句快的标记是什么_一文搞懂Python程序语句

    原标题:一文搞懂Python程序语句 程序流 Python 程序中常用的基本数据类型,包括: 内置的数值数据类型 Tuple 容器类型 String 容器类型 List 容器类型 自然的顺序是从页面或 ...

  5. 组件化开发实战_一篇文章搞懂什么是前端“组件化”开发

    学过网页的朋友都知道,制作一个网页离不开HTML.CSS和JavaScript技术.对于初学者来来说,掌握这3门技术就已经很不容易了,为什么前端为什么又要搞出来一个"组件化"开发的 ...

  6. C++两个函数可以相互递归吗_[算法系列] 搞懂递归, 看这篇就够了 !! 递归设计思路 + 经典例题层层递进

    [算法系列] 搞懂递归, 看这篇就够了 !! 递归设计思路 + 经典例题层层递进 从学习写代码伊始, 总有个坎不好迈过去, 那就是遇上一些有关递归的东西时, 看着简短的代码, 怎么稀里糊涂就出来了. ...

  7. reactrouter监听路由变化_一篇文章搞懂前端路由原理解析和实现方式

    在单页应用如此流行的今天,曾经令人惊叹的前端路由已经成为各大框架的基础标配,每个框架都提供了强大的路由功能,导致路由实现变的复杂. 想要搞懂路由内部实现还是有些困难的,但是如果只想了解路由实现基本原理 ...

  8. 单行溢出隐藏没生效_至今没搞懂,为什么这个缸这么火?

    [首先] 用主石-火山岩来做个隐藏的过滤 看看这块火山岩的各个角度 火山石隐藏过滤制作开始 第一步50mm钻头开孔 (好像听到了耳膜挣扎的呐喊) 40mm钻头再次掘进 30mm钻头再次掘进 用12mm ...

  9. pythonxpath定位_一文搞懂 XPath 定位

    一文搞懂XPath 定位 XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历. XPath定位在爬虫和自动化测试中 ...

最新文章

  1. 从Java到Spring为何独得青睐Spring Summit 2017不可不知的那些事儿
  2. gRPC异步处理应答
  3. linux文件系统叫什么,【整理】什么是根文件系统(rootfs=Root Fils System)
  4. 在哪里学python比较好-学Python从哪里开始?
  5. xxx cannot be resolved to a type 错误解决方法
  6. Java中从Orcle里取出数据时,为什么提示“无效的列索引”
  7. PX4原生固件SPI驱动动编写与IMU传感器替换
  8. windows下面的txt在linux下面显示为乱码
  9. python 示例_带有示例的Python列表copy()方法
  10. mysql 5.7.17 64位_Windows(x86,64bit)升级MySQL 5.7.17免安装版的详细教程
  11. _declspec(naked) 使用
  12. MYSQL函数应用----替换函数replace()用法
  13. 十个程序员必备的网站_程序员必备网站之一:VisuAlgo
  14. Oracle根据月份获取其是哪个季度
  15. 正则表达式 学习笔记2.2
  16. Spring事务原理分析(二)--@Transactional事务属性的解析
  17. C语言小游戏-扫雷-源代码
  18. 电脑总是弹出广告怎么办?
  19. excel合并工作簿怎么做?
  20. UI设计需要的软件到底有哪些?UI新手必看

热门文章

  1. 新浪微博粉丝爬虫-wap站只能爬取20页-
  2. 关于2000版ISO 9001标准的新思考之四(转载)
  3. ACCESS关联更新
  4. 距离2022年春节还有多少天?2022年春节倒计时天数在手机便签上设置
  5. Centos7:您可以尝试添加 --skip-broken 选项来解决该问题
  6. 人一能之,己百之;人十能之,己千之
  7. unity网络实战开发(丛林战争)-前期知识准备(011-c#连接数据库并实现增删改查以及sql注入问题)
  8. sqlserver四舍六入五留双函数
  9. 爬虫数据分析-----matplotlib图形展示
  10. ganglia-原理介绍(一)