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 编辑 ] 如果运算时干脆不要exp(a*i)中的i,做log运算时误差就会很大,比如原来a=30,log后a1=28 原帖由 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(虚数))=虚数” 当然不成立 matlab里log(exp(13*i))= 0 + 0.4336i
我希望得到0 + 13i,怎么办,理论值是13,通过反演算法可以得到exp(13*i)的输出,但得不到13,除非去掉i,得到exp(13),但那样误差会很大,因为数值太大 提示: 先对数据作判断,再决定"加几个pi*i"即可.
页:
[1]