JulianChin 发表于 2007-5-26 11:39

matlab的log函数的郁闷问题

输入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 编辑 ]

JulianChin 发表于 2007-5-26 11:44

如果运算时干脆不要exp(a*i)中的i,做log运算时误差就会很大,比如原来a=30,log后a1=28

eight 发表于 2007-5-26 11:49

原帖由 JulianChin 于 2007-5-26 11:44 发表 http://www.chinavib.com/forum/images/common/back.gif
如果运算时干脆不要exp(a*i)中的i,做log运算时误差就会很大,比如原来a=30,log后a1=28


>> log(exp(30))
ans =
    30


你提到的 i 是虚数单位,exp 是 cos + i * sin 的意思,“log(exp(虚数))=虚数” 当然不成立

JulianChin 发表于 2007-5-26 12:22

matlab里log(exp(13*i))= 0 + 0.4336i

我希望得到0 + 13i,怎么办,理论值是13,通过反演算法可以得到exp(13*i)的输出,但得不到13,除非去掉i,得到exp(13),但那样误差会很大,因为数值太大

xjzuo 发表于 2007-5-26 15:21

提示: 先对数据作判断,再决定"加几个pi*i"即可.
页: [1]
查看完整版本: matlab的log函数的郁闷问题