Advertisement
Guest User

Untitled

a guest
Nov 25th, 2014
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. ClearAll[FiniteDifference];
  2. FiniteDifference[expr_, xs_List, ds_List] := Block[{},
  3. If[Length[xs] == 0,
  4. expr,
  5. If[Length[xs] == 1,
  6. If[
  7. ds[[1]] == 0,
  8. expr,
  9. If[ds[[1]] == 1,
  10. (expr /. xs[[1]] -> xs[[1]] + 1) - expr,
  11. FiniteDifference[(expr /. xs[[1]] -> xs[[1]] + 1) -
  12. expr, {xs[[1]]}, {ds[[1]] - 1}]
  13. ]
  14. ],
  15. FiniteDifference[FiniteDifference[expr, {xs[[1]]}, {ds[[1]]}],
  16. Rest[xs], Rest[ds]]
  17. ]
  18. ]
  19. ];
  20. FiniteDifference[f[x], {x}, {0}]
  21. FiniteDifference[f[x], {x}, {1}]
  22. FiniteDifference[f[x], {x}, {2}]
  23. FiniteDifference[f[x, y], {x, y}, {0, 1}]
  24. FiniteDifference[f[x, y], {x, y}, {1, 1}]
  25.  
  26. Out[123]= f[x]
  27.  
  28. Out[124]= -f[x] + f[1 + x]
  29.  
  30. Out[125]= f[x] - 2 f[1 + x] + f[2 + x]
  31.  
  32. Out[126]= -f[x, y] + f[x, 1 + y]
  33.  
  34. 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