Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ClearAll[FiniteDifference];
- FiniteDifference[expr_, xs_List, ds_List] := Block[{},
- If[Length[xs] == 0,
- expr,
- If[Length[xs] == 1,
- If[
- ds[[1]] == 0,
- expr,
- If[ds[[1]] == 1,
- (expr /. xs[[1]] -> xs[[1]] + 1) - expr,
- FiniteDifference[(expr /. xs[[1]] -> xs[[1]] + 1) -
- expr, {xs[[1]]}, {ds[[1]] - 1}]
- ]
- ],
- FiniteDifference[FiniteDifference[expr, {xs[[1]]}, {ds[[1]]}],
- Rest[xs], Rest[ds]]
- ]
- ]
- ];
- FiniteDifference[f[x], {x}, {0}]
- FiniteDifference[f[x], {x}, {1}]
- FiniteDifference[f[x], {x}, {2}]
- FiniteDifference[f[x, y], {x, y}, {0, 1}]
- FiniteDifference[f[x, y], {x, y}, {1, 1}]
- Out[123]= f[x]
- Out[124]= -f[x] + f[1 + x]
- Out[125]= f[x] - 2 f[1 + x] + f[2 + x]
- Out[126]= -f[x, y] + f[x, 1 + y]
- Out[127]= f[x, y] - f[x, 1 + y] - f[1 + x, y] + f[1 + x, 1 + y]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement