我想使用复杂参数的一点修改补充函数。我自己定义了它,因为MATLAB不能直接使用复杂的参数。
w=@(p) exp(-p.^2).*double(erfc(sym(-i*p)));
它有效,但不适用于所有论点。在我的循环中,我开始得到如此模糊的值
NaN + NaNi
例如参数-27.4525 +0.0070*i
。
这是什么意思以及如何处理它?</ p>
答案 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}}