声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3060|回复: 4

[编程技巧] matlab的log函数的郁闷问题

[复制链接]
发表于 2007-5-26 11:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
输入log(exp(12*i)),输出不是12*i,而是0.5664i,这是由于exp(2*pi*i)=1引起的,因为exp(0.5664i)=exp(12*i)。但是我现在要用算法反演出一个exp(x)的数据,然后通过逆运算得到x,并与理论之比较,但是由于log函数的问题反演不出x,只能得到exp(x),不知有什么办法?

[ 本帖最后由 JulianChin 于 2007-5-26 11:40 编辑 ]
回复
分享到:

使用道具 举报

 楼主| 发表于 2007-5-26 11:44 | 显示全部楼层
如果运算时干脆不要exp(a*i)中的i,做log运算时误差就会很大,比如原来a=30,log后a1=28
发表于 2007-5-26 11:49 | 显示全部楼层


  1. >> log(exp(30))
  2. ans =
  3.     30
复制代码


你提到的 i 是虚数单位,exp 是 cos + i * sin 的意思,“log(exp(虚数))=虚数” 当然不成立
 楼主| 发表于 2007-5-26 12:22 | 显示全部楼层
matlab里log(exp(13*i))= 0 + 0.4336i

我希望得到0 + 13i,怎么办,理论值是13,通过反演算法可以得到exp(13*i)的输出,但得不到13,除非去掉i,得到exp(13),但那样误差会很大,因为数值太大
发表于 2007-5-26 15:21 | 显示全部楼层
提示: 先对数据作判断,再决定"加几个pi*i"即可.
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-24 09:27 , Processed in 0.068403 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表