In[]:=
MultivarTaylor3D[f_,vars_,point_,order_]:=Module​​{L=order,X1=vars[[1]],X2=vars[[2]],X3=vars[[3]],P1=point[[1]],P2=point[[2]],P3=point[[3]]},​​​​TermList=​​Array
1
(#1-1)!(#2-1)!(#3-1)!
(D[f,{X1,(#1-1)},{X2,(#2-1)},{X3,(#3-1)}]/.{X1P1,X2P2,X3P3})
(#1-1)
(X1-P1)
(#2-1)
(X2-P2)
(#3-1)
(X3-P3)
&,{L,L,L}//FullSimplify;​​Return[TermList];​​
​​
In[]:=
TestFunction=
3
(x+1)
3
(y+1)
3
(z+1)
;
In[]:=
TestArray=MultivarTaylor3D[TestFunction,{x,y,z},{0,0,0},3]//FullSimplify
Out[]=
{{{1,3z,3
2
z
},{3y,9yz,9y
2
z
},{3
2
y
,9
2
y
z,9
2
y
2
z
}},{{3x,9xz,9x
2
z
},{9xy,27xyz,27xy
2
z
},{9x
2
y
,27x
2
y
z,27x
2
y
2
z
}},{{3
2
x
,9
2
x
z,9
2
x
2
z
},{9
2
x
y,27
2
x
yz,27
2
x
y
2
z
},{9
2
x
2
y
,27
2
x
2
y
z,27
2
x
2
y
2
z
}}}