环境: mathematica 12.0, fedora 29 workstation x86_64
smooth L1:
f ( x ) = { 0.5 x 2 ∣ x ∣ < 1 ∣ x ∣ − 0.5 otherwise f(x)= begin{cases} 0.5x^2 & mid xmid<1\ mid xmid-0.5 & text{otherwise} end{cases} f(x)={0.5x2∣x∣−0.5∣x∣<1otherwise
code snipet 1:
f = Piecewise[{{0.5 #^2, Abs[#] < 1}, {Abs[#] - 0.5, Abs[#] >= 1}, {Log[#], 2 < #}}] &;colorFunction = f;
piecewiseParts = Length@colorFunction[[1, 1]];
colors = ColorData[1][#] & /@ Range@piecewiseParts;
colorFunction[[1, 1, All, 1]] = colors;Plot[f[x], {x, -2, 2}, ColorFunction -> colorFunction, ColorFunctionScaling -> False]
code snipet 2:
pwSplit[_[pairs : {{_, _} ..}]] := Piecewise[{#}, Indeterminate] & /@ pairspwSplit[_[pairs : {{_, _} ..}, expr_]] := Append[pwSplit@{pairs}, pwSplit@{{{expr, Nor @@ pairs[[All, 2]]}}}]pw = Piecewise[{{0.5 x^2, Abs[x] < 1}, {Abs[x] - 0.5, Abs[x] >= 1}}];Plot[Evaluate[pwSplit@pw], {x, -2, 2}, PlotStyle -> Thick, Axes -> True]
[1]
本文发布于:2024-01-30 04:36:38,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170656060019266.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |