我对图像函数I(x,y)的二次推导有问题。
第一个推导是:
I_x(x,y) = I(x+1,y) - I(x,y)
和
I_y(x,y) = I(x,y+1) - I(x,y)
。
但是当我尝试再次在x方向上导出I_x
时,我得到了这个:
I_xx(x,y) = I(x+2,y) - 2*I(x+1,y) + I(x,y)
,但正确的答案似乎是:I_xx(x,y) = I(x+1,y) + I(x-1,y) -2*I(x,y)
。我的错误在哪里?有人可以解释一下吗?
答案 0 :(得分:0)
您的问题的答案可以在以下示例中看到。在“右”答案中,x处的二阶导数以点x为中心。在你的答案中,二阶导数以点x + 1为中心。在许多应用中尽可能多地排列衍生物是件好事。从某种意义上说,你有正确的答案和正确的答案。这是一个定义你的对齐和保持一致的问题。给定一个数组(让我们暂时使用基于1的数组)
x(1), x(2), x(3), x(4), x(5), x(6)
x = [3, 2, 1, 8, 9, 4]
一阶导数是
x'(1), x'(2), x'(3), x'(4), x'(5)
f'(x) = [3-2, 2-1, 1-8, 8-9, 9-4]
请注意,x'有一个小于x的元素。如果我们对边界条件做出假设,我们可以解决这个问题,我们目前不会这样做。
二阶导数是
x'(1)-x'(2), x'(2)-x'(3), x'(3)-x'(4), x'(4)-x'(5)
我们只有4个点具有有效的二阶导数。在你计算二阶导数的方式中,你将第一个二阶导数简化为x''(1)。通过这种方式,我们得到如下标签:
x''(1), x''(2), x''(3), x''(4),
x''=[(3-2)-(2-1), (2-1)-(1-8), (1-8)-(8-9), (8-9)-(9-4)]
一般来说,你提出的二阶导数可以写成:
x''(p) = x(p+2)-2*x(p+1)+x(p)
在你的二阶导数有效指数中取值1..4你没有定义x''(5)因为需要x(5 + 2)-2 * x(5 + 1)+ x(5)并且原始数组只有6个元素,所以x(7)是未定义的。
另一种标记点的方法是使第二个导数居中并对齐,使得第n个二阶导数以原始数组中第n个点为中心,如下所示:
x''(2), x''(3), x''(4), x''(5),
x''=[(3-2)-(2-1), (2-1)-(1-8), (1-8)-(8-9), (8-9)-(9-4)]
一般来说,这可以写成:
x''(p) = x(p+1)-2*x(p)+x(p-1)
请注意,此二阶导数有效指数在2..5范围内。在这种情况下,x''(1)未定义为需要x(1 + 1)-2 * x(1)+ x( 1-1)和原始数组,因为我们有一个基于数组的数组在x(0)处没有值。
在这两种情况下,形式都是一样的。只是你用不同的方式标记点。
奇数编号导数我们不能围绕有限差分中的点,而偶数导数我们可以集中在下游计算中更直观的对齐。