我有一个应用程序,我需要定义一个分段函数,IE,f(x)= g(x)为[x在某个范围内],f(x)= h(x)为[x在某些其他范围] ,......等
在朱莉娅有一个很好的方法吗?我宁愿不使用if-else,因为我似乎必须检查x的大值的每个范围.我想的方法是构造一个函数数组和一个边界/范围数组,然后当调用f(x)时,对范围进行二元搜索以找到适当的索引并使用相应的函数(IE, h(x),g(x)等
似乎这种数学友好的语言可能具有一些功能,但文档没有以这种方式分段提及.希望其他人给出了一些想法,谢谢!
小智 6
使用 Heaviside 函数,您可以执行间隔函数:
function heaviside(t)
0.5 * (sign(t) + 1)
end
Run Code Online (Sandbox Code Playgroud)
和
function interval(t, a, b)
heaviside(t-a) - heaviside(t-b)
end
function piecewise(t)
sinc(t) .* interval(t,-3,3) + cos(t) .* interval(t, 4,7)
end
Run Code Online (Sandbox Code Playgroud)
我认为它也可以实现一个子类型 Interval,它会更优雅