Algorithm 捕捉函数中的不连续性

Algorithm 捕捉函数中的不连续性,algorithm,function,math,Algorithm,Function,Math,我有一个函数,类似于 f(a,b,s)=arctan(cos(a+b)*csc(a-b)*cot(s)) 我知道它在某些地方是不连续的,通过改变函数可以“治愈”不连续。在这种情况下,我知道这些不连续性在哪里,并且很容易正确处理它们。基本上只是 s_discontinuities = [s_0, s_1, s_2] for i in s_discontinuities: jump = round(f(a, b, s_discontinuities(i) + Ds) - f(a, b, s

我有一个函数,类似于

f(a,b,s)=arctan(cos(a+b)*csc(a-b)*cot(s))

我知道它在某些地方是不连续的,通过改变函数可以“治愈”不连续。在这种情况下,我知道这些不连续性在哪里,并且很容易正确处理它们。基本上只是

s_discontinuities = [s_0, s_1, s_2]

for i in s_discontinuities:
    jump = round(f(a, b, s_discontinuities(i) + Ds) - f(a, b, s_discontinuities(i) - Ds))
    offset(i) = jump

def new_f(a, b, s):
    exit = 0
    for i in s_discontinuities:
        if s > s_discontinuities(i):
            exit += offset(i)
    return f(a, b, s) + exit
然后与
a
b
相同。第一个问题是:有没有办法使算法更有效,在我不知道不连续性在哪里的情况下,有没有算法可以工作


更新我忘了指定我为任何给定函数(如果f(x+delta)>f(x)+epsilon,那么是不连续的)允许ε(y中的间距)和δ(x中的间距),加上域是有限的。

一旦找到不连续的位置,就可以创建数组累积偏移[I]其中cumulativeOffset[0]=偏移量[0],cumulativeOffset[1]=偏移量[0]+偏移量[1],依此类推。然后,一旦你找到了你应该在cumulativeOffset中的位置,你只需要做一次查找和加法。您可以通过找到在cumulativeOffset[]中的位置


查找一般函数的不连续性看起来至少和查找一般函数的零点一样困难,因为f(x)的零点在1/f(x)中显示为不连续性。

首先,为什么要向下投票?因此,由于各种原因,不可能计算函数的不连续性。首先,连续性的定义包括delta和epsilon,它们的大小如人们所愿。传统的数据类型不允许这样做。然后,即使你使用“直觉实数”,你也可以在直觉逻辑中一致地假设所有实数函数都是连续的(即,你不能证明你不能构造连续模)。这是以一般方式识别不连续性的一个严重障碍。我更新了主要问题以反映您的观察结果。我对否决票一无所知:)关于我先前的声明(现在与手头的问题无关),请参阅