以下代码中的 f(2) 是什么?

What is f(2) in the following code?

代码(用Octave写的)是:

x=1:2:5;
y=1:1:3;
z=1:0.1:1.2;
f=[x+y+z,x.^2+z;sin(x.*y.*z),cos(x)];
h=x(2)-x(1);
xFor=x(1:end-1);
dffor=(f(2:end)-f(1:end-1))/h;
f(2) 
dffor

我得到的输出是

Hello World
ans = 0.84147
dffor = -1.07926  2.62926  -2.89423  4.44423  4.77985  -5.54500  13.59500  -12.95817

有些代码我看不懂。 f(2) 评价什么?

我其实想得到矩阵关于x的数值导数。我以为这是前向差异的方法。另外,为什么我得到一个 [1x11] 矩阵作为 dffor 的输出,它应该是数值微分矩阵?

首先,f 是您代码中的一个二维矩阵 (size [2,6]),我假设您想要一个向量 (size [1,12])。

dffor 确实是正向差异。它有 11 个元素(而不是 f 中的 12 个),因为它在每个后续对 f 之间有差异:每个元素被使用两次,除了第一个和最后一个:(10*2 + 1 + 1)/2 = 11

f(2) 只是 f 的第二个元素,等于 x(2) + y(2) + z(2)