matlab

时间:2017-02-20 12:01:24

标签: matlab nan

我想使用复杂参数的一点修改补充函数。我自己定义了它,因为MATLAB不能直接使用复杂的参数。

w=@(p) exp(-p.^2).*double(erfc(sym(-i*p)));

它有效,但不适用于所有论点。在我的循环中,我开始得到如此模糊的值

  

NaN + NaNi

例如参数-27.4525 +0.0070*i

这是什么意思以及如何处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

我不确定erfc对于复杂参数的重要性,但问题是erfc会变为无穷大:

>> syms p real
>> limit(erfc(p*i),p,Inf)

ans =

1 - Inf*i

您将erfc与exp(-p.^2)相乘,因为Inf*0=NaN>> w=@(p) double(exp(-sym(p).^2).*erfc(sym(-i*p))); >> w(-27.4525 +0.0070*i) ans = 0.0000 - 0.0206*i

如果您以符号方式处理整个事物并且仅将产品转换为数字值,则它会起作用,如下所示:

{{1}}