gpt4 book ai didi

matlab - 为什么 log 和 exp matlab 函数会产生相反的结果?

转载 作者:行者123 更新时间:2023-12-02 02:35:34 27 4
gpt4 key购买 nike

为什么amatlab中与b不一样??

a = signal;
b = exp(log(signal));

如果我绘制a和b,信号不一样,有什么帮助吗?

最佳答案

负数的对数-xy = log(x)+pi*1i。因此,当您将指数函数应用于 y 时,您将留下零虚部(或看起来像零的东西)。例如尝试这个:

format long
x = -1;
y = exp(log(x))
abserr = abs(x-y)

了解有关复对数的更多信息 here .

当然,由于浮点,也可能会出现不准确的情况。如果您的信号的值接近1/eps(或-1/eps),则绝对误差可能特别显着。尝试一下

x = 1/eps;
y = exp(log(x));
abserr = abs(y-x)
relerr = abs(y-x)/abs(x)

返回

abserr =

11.500000000000000


relerr =

2.553512956637860e-15

请注意,相对误差很小。在 floating point calculations相对误差通常是我们希望控制的。

关于matlab - 为什么 log 和 exp matlab 函数会产生相反的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21384056/

27 4 0