首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >捕捉函数的不连续性

捕捉函数的不连续性
EN

Stack Overflow用户
提问于 2011-10-28 14:41:12
回答 1查看 199关注 0票数 3

我有一个函数,有点像

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

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

代码语言:javascript
复制
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

ab也是如此。第一个问题是:是否有办法提高算法的效率?在我不知道不连续的情况下,是否有任何算法可以工作?

UPDATE我忘记为任何给定的函数(如果f(x + delta) > f(x) + epsilon,那么是不连续的)允许一个epsilon (y中的间隔)和一个增量(x中的间隔),加上域是有限的。

EN

回答 1

Stack Overflow用户

发布于 2011-10-28 17:54:07

一旦您找到了不连续性的位置,就可以创建一个数组cumulativeOffseti,其中cumulativeOffset =偏移,cumulativeOffset1 =偏移+ offset1,等等。然后,一旦您找到了应该在cumulativeOffset中的位置,就只需进行一次查找和添加即可。您可以通过cumulativeOffset[]和http://en.wikipedia.org/wiki/Binary_search找到您应该在哪里。

求一般函数的不连续性与求一般函数的零点一样困难,因为f(x)的零点在1/f(x)中是不连续的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7930755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档