热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

matlabm文件开方,matlab的默认复数开方

matlab的默认复数开方matlab的开方:sqrt()^(1n)都是把数字当复数去开方的我们知道,数学上复数开方可能有多个值的:一个一

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 参考文献



推荐阅读
  • 本文将详细探讨 Linux 系统中的 netstat 命令,该命令用于查看网络状态和连接情况。通过了解 IP 地址和端口的基本概念,我们将更好地理解如何利用 netstat 命令来监控和管理网络服务。 ... [详细]
  • 美国重返月球计划为何屡遭推迟?
    自2011年美国启动SLS计划以来,尽管技术不断进步,但重返月球的计划却一再延期。本文探讨了美国重返月球面临的技术挑战和外界的质疑。 ... [详细]
  • Description“第一分钟,X说,要有矩阵,于是便有了一个里面写满了\(0\)的\(n\timesm\)矩阵。第二分钟,L说,要能修改,于是便有了将左上角为\((a,b)\) ... [详细]
  • 1.增加视图函数#Http:127.0.0.1booksdefshow_books(request):booksBookInfo.objects.all()returnrend ... [详细]
  • Flowable系列教程:运用ProcessEngineConfigurator实现高级流程引擎配置
    本文探讨了通过ProcessEngineConfigurator接口实现对Flowable流程引擎的高级配置方法。这种方法允许开发者通过自定义配置器来增强或修改流程引擎的行为。 ... [详细]
  • 任务,栈, ... [详细]
  • 本文探讨了C++编程语言中声明与定义的区别,以及如何通过内部连接和外部连接来组织源文件,确保代码的正确链接与编译。文章详细解析了不同类型、变量、函数以及类的连接属性,并提供了实用的示例。 ... [详细]
  • Linux环境下Git安装及常见问题解析
    本文详细介绍了在Ubuntu系统中安装Git的过程,包括环境检查、软件安装、用户配置以及SSH密钥生成等步骤,并针对安装过程中可能出现的问题提供了有效的解决方案。 ... [详细]
  • 修改Linux登录欢迎信息
    编辑etcmotd文件(没有自己创建即可)▽_.._,------------.,'`.(HelloBoy!)__)__`\`-,----------'((`- ... [详细]
  • 智慧城市建设现状及未来趋势
    随着新基建政策的推进及‘十四五’规划的实施,我国正步入以5G、人工智能等先进技术引领的智慧经济新时代。规划强调加速数字化转型,促进数字政府建设,新基建政策亦倡导城市基础设施的全面数字化。本文探讨了智慧城市的发展背景、全球及国内进展、市场规模、架构设计,以及百度、阿里、腾讯、华为等领军企业在该领域的布局策略。 ... [详细]
  • R语言基础入门指南
    本文介绍R语言的基本概念,包括其作为区分大小写的解释型语言的特点、主要的数据结构类型如向量、矩阵、数据框及列表等,并探讨了R语言中对象的灵活性与函数的应用。此外,文章还提供了关于如何使用R进行基本操作的示例,以及解决常见编程问题的方法。 ... [详细]
  • 本文总结了MySQL的一些实用技巧,包括查询版本、修改字段属性、添加自动增长字段、备份与恢复数据库等操作,并提供了一些常见的SQL语句示例。 ... [详细]
  • Web前端性能提升指南:简化JavaScript与消除重复脚本
    本文为Web前端性能优化系列的第七篇,重点探讨简化JavaScript代码及清除重复脚本的方法。通过这些技术,可以显著提高网页加载速度和用户体验。了解更多信息,请参阅我们的完整指南:Web前端性能优化。 ... [详细]
  • 本文详细介绍了Linux操作系统中的cp和scp命令,包括它们的基本使用方法、常见选项以及如何通过scp命令安全地在不同主机之间传输文件。 ... [详细]
  • 解决Redis大Key问题的有效策略
    本文探讨了Redis中大Key的问题及其解决方案。大Key是指Redis数据库中占用大量内存的键值对,通常指字符串类型超过10KB的数据。文章详细分析了大Key的影响及检测方法,并提出了有效的处理措施。 ... [详细]
author-avatar
fuhuan9479184787
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有