matlab的默认复数开方

matlab的开方:

sqrt()

^(1/n)

都是把数字当复数去开方的

我们知道,数学上复数开方可能有多个值的:

一个一般的复数可以写成

z=r*exp(1i*phi)

现在开方这个数,开方后正实数r唯一确定,变化的是角度phi

得到的数的角度为phi/n+k*2*pi/n     k=0,1,2,3,4,…,只要这个角度在如[0,2*pi)中的话就算是对应一个解

它可以有多个,例如:

数学上(exp(1i*pi))^(1/2)有两个解,k=0对应exp(1i*pi/2),k=1对应exp(-1i*pi/2)

数学上(-27)^(1/3)有三个解,r确定为3,k=0对应3*exp(1i*pi/3),k=1对应3*exp(1i*pi)=-3,k=2对应3*exp(1i*5*pi/3)

在MATLAB中,首先除非使用特别函数限制处理实数,matlab会把数默认当复数处理,然后matlab处理会有多个解的复数开方问题时,会默认使用这么多解的其中之一,那怎么整呢?经测试2和3的情况,都是默认使用的是k=0的那个解:

r^(1/n)*exp(1i*phi/n)

z为正实时,默认的结果为r^(1/n),合理

z为负实时,默认的结果为r^(1/n)*exp(1i*pi/n)

这在sqrt时就开始不合理:sqrt(-3)=1i*sqrt(3),这明明还有另一个解-1i*sqrt(3)

在^(1/3)时不合理: r^(1/3)*exp(1i*pi/3)总为实虚都有的复数,例如matlab算(-27)^(1/3)时,-3对应着k=1的解,是默认取k=0的matlab不会得到的,这样你计算(-27)^(1/3)得到1.5000 + 2.5981i就会很困扰

这很容易造成误会,比如你要画y=x.^(1/3)这个函数,在x<0的区域的时候,y会是一些复数

想要避免这样的误会,要理解matlab总是把数当复数处理,^(1/n)会从多个重根之中取其一,

要特别小心对负数开方的计算,如果你需要的是实数领域的计算,不能使用默认的sqrt,^(1/3),使用realsqrt,和nthroot(x,3)才对

如果你需要的是复数的开方,那你便要重新思考你想要得到重根之中的哪个根

其中realsqrt()和nthroot(x,n)

代替sqrt()和x^(1/n)用,matlab会强制保证x是实数,以及返回的值是实数,这样就不会为数被当复数处理而困扰了

Y = nthroot(X,N) returns the real nth root of the elements of X. Both X and N must be real scalars or arrays of the same size. If an element in X is negative, then the corresponding element in N must be an odd integer.

Ref matlab nthroot 参考文献

转载于:https://my.oschina.net/u/3695732/blog/2209722

matlab的默认复数开方相关推荐

  1. MATLAB笔记之复数以及基本复数函数二维视角(2d)图形绘制

    MATLAB笔记之复数以及基本复数函数二维视角(2d)图形绘制 QQ:3020889729 小蔡 一般复数的2d图形绘制 一般复数的平移图形~(即一个复数加另一个复数实现在复平面的平移) 补充几个复数 ...

  2. matlab 求复数的模长,matlab计算带有复数的函数,最后求复数函数的模,结果里面却有...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 matlab计算带有复数的函数,最后求复数函数的模,结果里面却有复数标志i,输入自变量,得到的结果确实是实数,不知道怎么回事; 代码如下: syms n2 ...

  3. matlab 复数求模长,matlab计算带有复数的函数,最后求复数函数的模,结果里面却有...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 matlab计算带有复数的函数,最后求复数函数的模,结果里面却有复数标志i,输入自变量,得到的结果确实是实数,不知道怎么回事; 代码如下: syms n2 ...

  4. matlab复函数求模长,matlab计算带有复数的函数,最后求复数函数的模,结果里面却有...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 matlab计算带有复数的函数,最后求复数函数的模,结果里面却有复数标志i,输入自变量,得到的结果确实是实数,不知道怎么回事; 代码如下: syms n2 ...

  5. matlab中求虚数的模,matlab计算带有复数的函数,最后求复数函数的模,结果里面却有...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 matlab计算带有复数的函数,最后求复数函数的模,结果里面却有复数标志i,输入自变量,得到的结果确实是实数,不知道怎么回事; 代码如下: syms n2 ...

  6. matlab虚数的模,matlab计算带有复数的函数,最后求复数函数的模,结果里面却有...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 matlab计算带有复数的函数,最后求复数函数的模,结果里面却有复数标志i,输入自变量,得到的结果确实是实数,不知道怎么回事; 代码如下: syms n2 ...

  7. matlab 求复数模值,matlab计算带有复数的函数,最后求复数函数的模,结果里面却有...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 matlab计算带有复数的函数,最后求复数函数的模,结果里面却有复数标志i,输入自变量,得到的结果确实是实数,不知道怎么回事; 代码如下: syms n2 ...

  8. Matlab:创建复数

    Matlab:创建复数 复数由两个单独的部分组成:实部和虚部.基本虚数单位等于 -1 的平方根.这在 MATLAB® 中通过以下两个字母之一表示:i 或 j. 以下语句显示了一种在 MATLAB 中创 ...

  9. matlab恢复默认界面布局

    matlab界面布局不小心被弄乱了,命令框和历史命令窗口自己弹出来了,如何恢复呢? 方法: [desktop]-> [desktop Layout] -> [default] 这样就可以& ...

  10. matlab左侧显示当前文件夹,matlab还原默认布局,matlab左侧显示

    matlab左侧当前文件夹显示,点击主页中的布局,选择默认:

最新文章

  1. 在linux CentOS 上安装chrome 谷歌浏览器
  2. linux 配置 clang++ SDL 开发环境 (新手向)
  3. Spring @Configuration注解及配置方法
  4. 浏览器在线预览pdf、txt、office文件
  5. 怎么做 慢充 话费_高佣联盟充值话费省钱小技巧教程
  6. Java中的继承和接口
  7. Swift傻傻分不清楚系列(十二) 属性
  8. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---55
  9. 填平数据、产品、模式需求鸿沟,浪潮云发布新一代行业云 MEP战略
  10. 2017.3.1 xiaoyimi测试
  11. docker export/import到docker容器迁移的思考
  12. 查询linux信号量命令,Linux信号量动作和说明列表
  13. 计算机百科丨存储介质发展史
  14. 一秒钟Hold住Application.xml
  15. 如何创建Qt quick应用程序
  16. 关于Visual Studio 2008调试的一些经验以及错误(0xXXXXXXXX处最可能的异常: 0xC0000005: 写入位置 0x00000014 时发生访问冲突)
  17. EOS 一周回顾(11.25-12.1)
  18. 上海交通大学计算机学院录取分数线,湖南省多少名可以进上海交大?附上海交通大学近三年录取分数线...
  19. 小学四年级家长计算机,小学四年级家长寄语
  20. java版银联8583协议解析,超简单超直观的实现及示例(全互联网最简单)

热门文章

  1. 计算机二级知识汇总手抄报,计算机二级vb_全国计算机二级vb真题
  2. VectorDraw机械制图,VectorDraw图形引擎crack版
  3. SVN(三)利用 IntelliJ IDEA 进行代码对比的方法
  4. C语言练习题——if语句
  5. (一)密码学之数论基础
  6. 电子元器件选型——电容
  7. 元胞自动机模型01——认识元细胞机模型
  8. 【转载】SAP用户出口清单(User Exits)
  9. TechTool Pro 11 Mac(硬件检测和系统维护工具)附序列号中文版
  10. 【iOS】lipo otool 动、静态库