[英]Plotting sin(x)/(x) in Matlab
我有正确绘制sin(x)/(x)的问题。 特别是当x = 0时,在Matlab中返回NaN。 然而,当应用L'Hôpital规则时,实际值是y = 1.我的问题是如何进入y矩阵并改变NaN。 我为可能的方法进行头脑风暴的是创建一个For循环来扫描y矩阵的NaN。
x = [-10:0.5:10]
y = sin(x)./(x);
plot(x,y), axis([-10 10 -1 1.5])
sin(x)/ x的情节
作为对原始问题的回答,如何一般地访问nans,简单的y(isnan(y)=某些东西应该有用。所以在这种情况下,
x = [-10:0.5:10]
y = sin(x)./(x);
y(isnan(y))=1;
plot(x,y), axis([-10 10 -1 1.5])
在C我用过这个:
#define SINC_EPS (1e-6)
// for small x,
// missing sinc terms start with pow(x,4)/120, and value close to 1, so negligeable in doubles
double sinc( double x)
{ return fabs(x) < SINC_EPS ? 1.0 - x*x/6.0 : (sin(x)/x);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.