Imagine that the origin is a point on a continuous surface.

We’d like to estimate the position of another point on the surface, at (x,y, z(x,y)) using the values of the first couple of directional derivatives calculated at the origin.

If the surface is continuous, we should get the same value of z(x,y) no matter what path we take.

Though there are an infinite number of ways to move from (0,0) to (x,y), two that are particularly easy to calculate are these paths, consisting of two straight segments:

1.) Moving from (0,0) -> (x,0)->(x,y)
2.) Moving from (0,0)->(0,y)->(x,y)

Using only the values for (Subscript[f, x]) and (Subscript[f, y]) calculated at the origin, the result along both paths is the same, that

({{({{z(x,y)=x (Subscript[f, x])+y (Subscript[f, y])}})}})

Manipulate[
Graphics3D[
{
Thick,Red,
Line[{  {0,0,0},{3,0,fx* 3}  }],
Line[{  {0,2,fy*2},{3,2,fx*3+fy*2}  }],
Blue,
Line[{  {0,0,0},{0,2,fy*2}  }],
Line[{  {3,0, fx*3}, {3,2,fx*3+fy*2}  }],
PointSize[Large],Black,Point[{{0,0,0}}]  (* the origin *)
},
PlotRange->{{-0.5,3.5},{-0.5,3.5},{-2,+5}},
Axes->True,AxesLabel->{x,y,z}
],
{{fx,0},-0.5,+1},
{{fy,0},-0.5,+1}
]

Now, if we take into account the next higher order of “twist” derivatives, the value for z reached for the first segment of the path is the same. But for the second segment, the slope has changed a bit. For the first path, we get

({{({{z(x,y)=x (Subscript[f, x])+y((Subscript[f, y])+x (Subscript[f, yx]))=x (Subscript[f, x])+y (Subscript[f, y])+y x (Subscript[f, yx])}})}})

and for the second path

({{({{z(x,y)=y (Subscript[f, y])+x((Subscript[f, x])+y (Subscript[f, xy]))=x (Subscript[f, x])+y (Subscript[f, y])+y x (Subscript[f, xy])}})}})

Manipulate[
Graphics3D[
{
Thick,Red,
Line[{  {0,0,0},{3,0,fx* 3}  }],
Line[{  {0,2,fy*2},{3,2,fx*3+fy*2+3*fxy*2}  }],
Blue,
Line[{  {0,0,0},{0,2,fy*2}  }],
Line[{  {3,0, fx*3}, {3,2,fx*3+fy*2+2*fyx*3}  }],
PointSize[Large],Black,Point[{{0,0,0}}]  (* the origin *)
},
PlotRange->{{-0.5,3.5},{-0.5,3.5},{-2,+5}},
Axes->True,AxesLabel->{x,y,z}
],
{{fx,0},-0.5,+1},
{{fy,0},-0.5,+1},
{{fxy,0},-0.25,.5},
{{fyx,0},-0.25,.5}
]