level 10
mm_酱
楼主
可能有人需要:
code:
=====================================================================
Clear[periodic];periodic[func_, {val_Symbol, min_?NumberQ, max_?NumberQ}] /; (max > min && ! FreeQ[func, val]) := Module[{interval, shift, shiftmin, shiftfunc}, interval = max - min; If[min < 0, shift = interval Ceiling[-min/interval], shift = 0]; shiftmin = min + shift; shiftfunc = func /. val -> val - shift; shiftfunc /. val -> (Mod[val - max, interval] + shiftmin) ];periodic[___] := Print["Wrong Input!"];
=====================================================================
用法示例:


2013年03月30日 06点03分
1
code:
=====================================================================
Clear[periodic];periodic[func_, {val_Symbol, min_?NumberQ, max_?NumberQ}] /; (max > min && ! FreeQ[func, val]) := Module[{interval, shift, shiftmin, shiftfunc}, interval = max - min; If[min < 0, shift = interval Ceiling[-min/interval], shift = 0]; shiftmin = min + shift; shiftfunc = func /. val -> val - shift; shiftfunc /. val -> (Mod[val - max, interval] + shiftmin) ];periodic[___] := Print["Wrong Input!"];
=====================================================================
用法示例:


