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 - Fatal编程技术网

matlab中的微分函数

matlab中的微分函数,matlab,Matlab,我知道diff计算离散导数,或者说向量的求积分量之间的差 不是我定义了一个变量 x=-4:1/10:4; y=diff(diff(x)); 为什么我会得到1.e-15*和一行非零的向量?Matlab是诚实的,在计算x=-4:1/10:4时以某种方式显示了这一点它四舍五入了一些数字,尽管我执行y=(diff(x))only,尽管它显示的所有数字都相同,但它如何显示在其核心中,它们不是以相同的数量存储的(因为它舍入了-4+0.1,或者舍入了一些数量,而不是-3.9??)。现在,如何获得标准输出?当

我知道
diff
计算离散导数,或者说向量的求积分量之间的差

不是我定义了一个变量

x=-4:1/10:4;
y=diff(diff(x));
为什么我会得到
1.e-15*
和一行非零的向量?Matlab是诚实的,在计算
x=-4:1/10:4时以某种方式显示了这一点它四舍五入了一些数字,尽管我执行
y=(diff(x))
only,尽管它显示的所有数字都相同,但它如何显示在其核心中,它们不是以相同的数量存储的(因为它舍入了-4+0.1,或者舍入了一些数量,而不是-3.9??)。现在,如何获得标准输出?当它真的是零时,比如在本例中,我如何得到0,而当它实际上是非零时,如何得到非零,甚至像
1*e-…

注意:如果这是不可能的,我如何计算实际/实际的
diff(x,2)
,或者当diff实际为零时,如何计算至少准确的符号和零?得到像
余弦
这样的函数的真正离散导数,而不是一些误导性的值


我需要使用diff.

计算拐点简言之,这是因为浮点精度,在MATLAB中由(即epsilon)给出。你得到的任何结果都是如此准确,而不是更多。关于你的问题,你可以通过将所有元素四舍五入或将几乎为零的元素调零来美化结果。例如,要将小于10ε的所有元素设置为零:

y = diff(x, 2);
y(abs(y) < 10 * eps) = 0;
y=diff(x,2);
y(abs(y)<10*eps)=0;

有关更多详细信息,请参阅重复问题的答案。

b/c数字精度。另一个浮点不准确的受害者。和的可能副本。谢谢大家。我知道这个数字精度。我只是需要一个方法来解决这个问题。谢谢大家。只是不能拼出确切的作品。