Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.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
Python 有没有一种方法可以在不首先计算一阶导数的情况下计算数据的二阶导数?_Python_Matlab_C++11_Derivative - Fatal编程技术网

Python 有没有一种方法可以在不首先计算一阶导数的情况下计算数据的二阶导数?

Python 有没有一种方法可以在不首先计算一阶导数的情况下计算数据的二阶导数?,python,matlab,c++11,derivative,Python,Matlab,C++11,Derivative,我试图用MATLAB中的梯度函数来避免舍入误差。在MATLAB或任何其他代码库中,是否可以从x和y值直接计算二阶导数,并避免与求导数导数相关的截断错误?如果数据具有均匀的间距,则有限差分法是获得二阶导数的一种很好的方法 有一个系数列表,用于计算不同精度阶数的不同导数。拉普拉斯不是你可以使用的吗?从内存中,存在一个拉普拉斯算子matlab@MatinaG拉普拉斯算子对行和列求导数。我只想区分压强和密度的关系。每一列都是不同的等温线,我不想区分它们。我首先尝试了拉普拉斯方法,它给了我完全不同的结果,

我试图用MATLAB中的梯度函数来避免舍入误差。在MATLAB或任何其他代码库中,是否可以从x和y值直接计算二阶导数,并避免与求导数导数相关的截断错误?

如果数据具有均匀的间距,则有限差分法是获得二阶导数的一种很好的方法


有一个系数列表,用于计算不同精度阶数的不同导数。

拉普拉斯不是你可以使用的吗?从内存中,存在一个拉普拉斯算子matlab@MatinaG拉普拉斯算子对行和列求导数。我只想区分压强和密度的关系。每一列都是不同的等温线,我不想区分它们。我首先尝试了拉普拉斯方法,它给了我完全不同的结果,仅仅使用梯度方法两次。两次使用梯度法是“正确的”,而拉普拉斯函数给了我一个连续递减的函数(这是错误的)。我意识到它这样做是因为它取了二阶导数wrt x和y。你可以先将样条曲线拟合到数据上(这对有噪声的数据也很有用),然后计算二阶导数。梯度法采用16位中心差分法。这不是很准确吗?我只需要使用梯度法两次就可以得到二阶导数。我怀疑16位数的部分会给你带来麻烦。如果你的(二阶)导数看起来很嘈杂,可能是因为使用了低阶近似。我猜MATLAB使用的是二阶精度方法,这对于大多数用途来说已经足够了。“如果对你来说还不够好,那就试试高阶的方法。”Ben,我查阅了MATLAB文档。MATLAB梯度法与维基百科的“导数=1,精度=2”方法相对应。应用这两次与维基百科的“导数=2,精度=2”方法相当。“导数=2,精度=4”或更高的精度仍然是可能的。在MATLAB中,我可以更改精度吗?请注意,精度的名称具有误导性。这是一个平滑操作,你不需要增加精度,你只需要使用更大的数据量来平滑导数。对于某些特定的噪声数据,它可能更准确,但对于过度平滑,也可能会失去准确性