Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我如何绘制一个;“不确定金额”;matlab中的函数?_Matlab_Plot - Fatal编程技术网

我如何绘制一个;“不确定金额”;matlab中的函数?

我如何绘制一个;“不确定金额”;matlab中的函数?,matlab,plot,Matlab,Plot,我的函数只是从-inf到inf的简单求和:f(x)=sum(pi*exp(-x+2pi*j),j=-inf到in) 我尝试过这样做,但出现了一个错误,即“需要一个数字或双可转换参数” 我认为您的代码编程没有什么问题,但有一个致命的数学缺陷——每x的和是无限的。注意,它只是exp(2*pi*j)乘以pi*exp(x)的和。当j为正时,exp(2*pi*j)的值很大,您尝试将其无限多地相加 当我将公式更改为实际收敛的级数时,代码可以工作,尽管这需要很长时间 x = linspace(-7, 7, 1

我的函数只是从-inf到inf的简单求和:f(x)=sum(pi*exp(-x+2pi*j),j=-inf到in)

我尝试过这样做,但出现了一个错误,即“需要一个数字或双可转换参数”


我认为您的代码编程没有什么问题,但有一个致命的数学缺陷——每x的和是无限的。注意,它只是exp(2*pi*j)乘以pi*exp(x)的和。当j为正时,exp(2*pi*j)的值很大,您尝试将其无限多地相加

当我将公式更改为实际收敛的级数时,代码可以工作,尽管这需要很长时间

x = linspace(-7, 7, 1000);
h = 10; 
syms j; 
v_hat = symsum(pi * exp(-abs(x+ 2*pi*j/h) ),-inf, inf);
plot(x, v_hat);

请注意,尽管使用了1000个数据点,但质量并不是很好。通过放弃符号和,您将更快地获得更好的质量。abs(j)>100的项在这里的贡献很小,所以去掉它们,在其余项上使用数字和

h = 10; 
x = linspace(-7,7,10000);
[X,j] = meshgrid(x, -100:100);
v_hat = sum(pi * exp(-abs(X+ 2*pi*j/h) ), 1);
plot(x, v_hat);

此外,要认识到该函数是周期为2*pi/h的周期函数。所以你可以设计 函数的一到两个周期,然后想象其余的

h = 10; 
x = linspace(-2*pi/h, 2*pi/h, 101);
syms j;
v_hat = symsum(pi * exp(-abs(x+ 2*pi*j/h) ),-inf, inf); 
plot(x, v_hat);

看起来您缺少了一个输入参数
symsum
,加上右侧的右括号。此外,你真的想计算出与<代码> j>代码>的总和吗?而不是<代码> x>代码>?是的,j是计数变量,而VHAT是席函数的函数,不能重现错误,你使用MATLAB版本。我使用2014b。但是,如果您尝试执行函数系列,您可能希望将
x
作为符号<代码>符号x,j;v_hat=symsum(pi*exp(x+2*pi*j),j,-inf,inf)。这为该函数提供了nan。你可能需要做一些数学上的把戏才能把它做好。嗨@Woodface。实际上,我的函数是$v_hat=symsum(pi*exp(-abs(x+2*pi*j/h)),-inf,inf)$,所以它确实收敛,但似乎仍然不起作用。是的!我的也花了很长时间!所以这不仅仅是我的机器。
h = 10; 
x = linspace(-2*pi/h, 2*pi/h, 101);
syms j;
v_hat = symsum(pi * exp(-abs(x+ 2*pi*j/h) ),-inf, inf); 
plot(x, v_hat);