我想制定一个凹凸函数()F(X )F(X)f(x)具有以下实数属性:
f(x) :=
\begin{cases}
0, & \mbox{if } x \le -1 \\
1, & \mbox{if } x = 0 \\
0, & \mbox{if } x \ge 1
\end{cases}
此外(因为它是一个凹凸函数),它应该是平滑且连续可微的,并且一阶导数在x = − 1X=−1x = -1和x = 1X=1x = 1应为零。
但最后一个条件让我无法接受。我希望
\int_{-1}^1 f(x) dx = 1
上面链接的维基百科文章中提供的 bump 函数示例非常接近(我添加了111指数取其值为111在x = 0X=0x = 0):
g(x) :=
\begin{cases}
0, & \mbox{if } x \le -1 \\
\exp^{1-\frac{1}{1-x^2}}, & \mbox{if } -1 < x < 1 \\
0, & \mbox{if } x \ge 1
\end{cases}
功能GGg满足我的所有要求,除了∫1− 1F(x )dx = 1∫−11F(X)dX=1\int_{-1}^1 f(x) dx = 1。在这里我遇到了瓶颈。我假设,原则上,人们可以乘以XXx由于某种因素a > 1A>1a > 1以获得所需的精确结果……但这需要有一个反导数的公式∫经验1 −11−一X2dX∫经验1−11−AX2dX\int \exp^{1-\frac{1}{1-ax^2}} dx,我完全不知道如何找到它。常用的技术似乎不适用。此外,Mathematica 只是耸耸肩 – 这表明我可能会花很长时间尝试而毫无进展。
所以:
- 是G(X )G(X)g(x)实际上是可积的(在产生不定积分公式的意义上)?如果是,如何实现的?
- 如果没有,那么是否有一个完全不同的公式可以满足FFf? 我真的不知道如何开始构建这样的东西,因为我对各类函数属性的数学知识根本无法完成这项任务。
根据评论中的建议进行更新
我查看了答案(非常感谢@Lorago,我在这里搜索了“bump function”,但没有找到),但无法让它工作。也许我做错了什么?根据那里的答案,设置
f_0(x) :=
\begin{cases}
0, & \mbox{if } x \le 0 \\
e^{-\frac{1}{x^2}}, & \mbox{if } x > 0
\end{cases}
我可以看到这个函数F1(x ):= −埃−1X2+ 1F1(X):=−埃−1X2+1f_1(x) := -e^{-\frac{1}{x^2}} + 1会产生积极的影响F1(0 )= 1F1(0)=1f_1(0) = 1;尽管F1(x )→ 0F1(X)→0f_1(x) \rightarrow 0仅作为x → ± ∞X→±∞x \rightarrow \pm \infty,我不确定它的实用性。分段截断的选择x = 0X=0x = 0为了F1(X )F1(X)f_1 (x)看起来也很奇怪。
不过,我们还是继续吧。答案的下一步是设置
g_0(x)=f\left(x-\frac{1}{2}\right)f\left(\frac{1}{2}-x\right)
所以,
g_0(x) :=
\begin{cases}
0, & \mbox{if } x \le 0 \\
e^{-\frac{1}{(x – \frac {1}{2})^2}} \cdot e^{-\frac{1}{(\frac {1}{2} – x)^2}}, & \mbox{if } x > 0
\end{cases}
链接的答案指出“这是一个以原点为中心的平滑凹凸函数,但G0(0 )≠ 1G0(0)≠1g_0(0)\neq1”但我不敢苟同;情节如下:
显然,我深深误解了所建议的内容。但为了完整起见,现在设定G1(x )=G0(X )G0(0 )G1(X)=G0(X)G0(0)g_1(x)=\frac{g_0(x)}{g_0(0)}。Mathematica 做了以下简化:
\frac {e^{-\frac{1}{(x – \frac {1}{2})^2}} \cdot e^{-\frac{1}{(\frac {1}{2} – x)^2}}}{e^{-\frac{1}{(- \frac {1}{2})^2}} \cdot e^{-\frac{1}{(\frac {1}{2})^2}}} = e^{-\frac{1}{\left(x-\frac{1}{2}\right)^2}-\frac{1}{\left(\frac{1}{2} – x\right)^2}+8}
所以我们现在有
g_1(x) :=
\begin{cases}
0, & \mbox{if } x \le 0 \\
e^{-\frac{1}{\left(x-\frac{1}{2}\right)^2}-\frac{1}{\left(\frac{1}{2} – x\right)^2}+8}, & \mbox{if } x > 0
\end{cases}
这是提出的解决方案。但它看起来像这样…
即使考虑到人们可能已经对F0F0f_0产生更类似的东西F1F1f_1通过适当的分段截断,很容易看出我做错了什么。
为了完整起见,下面是将相同过程应用于F1F1f_1,并对分段规范的截止点进行适当调整。它稍微接近一点,但仍然没有满足大多数要求:
遗憾的是,尽管之前有这样的回答,但我发现自己仍然需要帮助。
\endgroup
8
6 个回答
6
如果你只要求一阶导数连续,那么你可以取
f(x) = \begin{cases}
\cos^2\frac{\pi x}{2}&\text{when $-1\leq x\leq 1$}\\
0,&\text{otherwise}
\end{cases}
它满足F(x )= 0F(X)=0f(x)=0什么时候| x | >1|X|>1|x|>1,F(0 )= 1 ,F(0)=1,f(0)=1, F∈C1(R),F∈C1(R),f\in C^1(\mathbb R),和∫F(X )dx = 1。∫F(X)dX=1.\int f(x)\,dx=1.
\endgroup
4
-
\begingroup
你好 @md2perpe,谢谢你,但我非常希望它是连续可微的……
\endgroup
– -
1\begingroup
嗯。我想我可能把“连续”和“无限”搞混了……如果是这样的话,你是对的,@md2perpe
\endgroup
– -
\begingroup
我非常感谢您的回答,@md2perpe。我必须将另一个标记为正确,因为它很全面。但您的回答也确实很有用,我已点赞。谢谢。
\endgroup
–
-
\begingroup
@RichardBurke-Ward。没问题。最佳答案应该获得最高荣誉。我的答案对那些寻找简单碰撞功能的人很有用。
\endgroup
–
|
我有一个比要求更严格的版本。过去我曾遇到过一个非常类似的问题,但一直没弄明白。我感兴趣的是比 OP 要求的更严格。由于这类关于碰撞函数性质的问题相当常见,我在研究我希望解决方案具有的属性列表时,在底部描述了我的一些思考过程。
我有一个平滑的凹凸功能FFf具有以下属性:
- FFf甚至,
- F≥ 0F≥0f\ge 0对全部XXx,
- F≡ 0F≡0f \equiv 0在外面(−1,1 )(−1,1)(-1,1),
- 0 < f≤ 10<F≤10 < f \le 1在(−1,1 )(−1,1)(-1,1),
- F(0 )= 1F(0)=1f(0) = 1,
- FFf正在减少000, 和
- ∫1− 1F(X )dx = 1∫−11F(X)dX=1\displaystyle \int_{-1}^1 f(x)\,dx = 1。
困难的部分,正如 OP 正确指出的那样,是F(0 )= 1F(0)=1f(0) = 1与整体存在一起工作111。你可以缩小函数的支持度来获得积分所需的值,但你可能会失去F(0 )= 1F(0)=1f(0) = 1在这个过程中。或者如果你缩小支持并保持F(0 )= 1F(0)=1f(0) = 1,你可能会失去积分的期望值。你可以添加较小的凹凸函数,以远离000缩小函数的支持度后,如果你小心的话,这种方法是可行的,但是你的解决方案可能不会单调衰减000。
让F0(x )=埃1 −11 −X2χ(−1,1 )(X )F0(X)=埃1−11−X2χ(−1,1)(X)\displaystyle f_0(x) = e^{1-\frac{1}{1-x^2}}\chi_{(-1,1)}(x)是标准凹凸函数。设J=∫1− 1F0(X )dXJ=∫−11F0(X)dX\displaystyle J = \int_{-1}^1 f_0(x)\,dx。通过,J=埃12(钾1(12) −钾0(12)) ≈1.2069J=埃12(钾1(12)−钾0(12))≈1.2069\displaystyle J = e^{\frac{1}{2}}\bigg(K_1\bigg(\frac{1}{2}\bigg) – K_0\bigg(\frac{1}{2}\bigg)\bigg)\approx 1.2069, 在哪里钾ν钾νK_{\nu}是。定义候选凸块函数FFf经过
f(x) = \frac{1}{1+\alpha}(f_0(2x) + \alpha f_0(x)),
在哪里α =1J−121 −1Jα=1J−121−1J\displaystyle \alpha = \frac{\frac{1}{J}-\frac{1}{2}}{1-\frac{1}{J}}。
很容易看出FFf是非负的并且相同000在外面(−1,1 )(−1,1)(-1,1)。因为它是F0F0f_0和0 ≤F0≤ 10≤F0≤10 \le f_0 \le 1, 我们还有0≤f≤ 10≤F≤10 \le f \le 1。 同样地,F(0 )= 1F(0)=1f(0) = 1和FFf正在减少000自从F0F0f_0是。棘手的部分是评估F0F0f_0(可以在链接的 MSE 帖子中找到),但之后只需进行简单的操作即可显示FFf有积分111。
以下是我做出这个决定的思考过程。至于我为什么选择FFf我这样做的方式:我想从F0F0f_0因为它是最常见的碰撞函数示例,并且 OP 已经明确指出了它。我缩小了它的支持(F0(2 x )F0(2X)f_0(2x)) 到(−12,12)(−12,12)\big(-\frac{1}{2},\frac{1}{2}\big)因为它的积分大于111。我首先添加了一些基于平移和重新缩放的凹凸函数F0F0f_0相对于原点对称,峰值接近±12±12\pm \frac{1}{2},但很快就变得难以管理单调递减部分,而不必陷入困境。问题是,我想要添加的较小的凹凸函数有一个峰值,然后在支撑的边缘附近衰减F0(2 x )F0(2X)f_0(2x)所以我意识到我真正想要的是一个平坦但不为零的函数,通过F0(2 x )F0(2X)f_0(2x),从而使用重新缩放的版本F0(X )F0(X)f_0(x)剩下的只是做一个特定的凸组合来使积分和F(0 )= 1F(0)=1f(0) = 1各条件共同作用。
以下是演示该功能的图表:
\endgroup
0
|
考虑以下函数:
f(x) = \begin{cases} 0,\quad x\leq -1;\\
0,\quad x\geq 1;\\
1,\quad x=1;\\
\dfrac{1}{1+\exp\left(\frac{1-2|x|}{x^2-|x|}\right)},\quad\text{otherwise;}
\end{cases}
这是非族中的一个,它在每个点都是连续的,其导数也是连续的,满足F(−1 )= f(1 )= 0F(−1)=F(1)=0f(-1)=f(1)=0,F(0 )= 1F(0)=1f(0)=1, 和∫1− 1F(x )d x = 1∫−11F(X) dX=1\int_{-1}^1 f(x)\ dx = 1至少在中也是如此∫∞− ∞F(x )d x = 1∫−∞∞F(X) dX=1\int_{-\infty}^\infty f(x)\ dx = 1并且顶部是一个 R (x )R(X)R(x)第一叶的位移版本,是无处解析的无限可微函数的示例:您可以在中检查它是否满足您的积分要求,但它没有闭式:在此中显示了数值近似,并且它解决了R′(x )= 2R (2x + 1 )−2R (2x − 1 )R′(X)=2R(2X+1)−2R(2X−1)R'(x) = 2R(2x+1)-2R(2x-1)。
您可以查看F(X )F(X)f(x)在中。
\endgroup
|
当你将函数提升到某个幂次时p > 0页>0p > 0,你可以“抬起”图形并以此方式改变积分,同时仍然G(0 )= 1G(0)=1g(0) = 1,即考虑
g(x)^p =
\begin{cases}
\exp(p \cdot (1-\frac{1}{1-x^2})) , & \text{if } |x| < 1 \\
0 , & \text{else}
\end{cases}
和页页p选择∫1− 1G(X)页dx = 1∫−11G(X)页dX=1\int_{-1}^1 g(x)^p \,dx = 1。不幸的是,我认为没有一个封闭的公式可以找到页页p这就成功了。求解页页p数字上给我p≈1.8995669372616584页≈1.8995669372616584p \approx 1.8995669372616584。
\endgroup
|
只需将四条三次曲线拼接在一起即可完成此操作。从曲线的片段开始F(x )= 1 − 4X3F(X)=1−4X3f(x)=1-4x^3在间隔上[ 0 ,12][0,12][0,\frac12]:
绕点旋转此曲线(12,12)(12,12)(\frac12,\frac12),通过添加曲线段是= 4 ( 1 − x)3是=4(1−X)3y=4(1-x)^3在间隔上(12,1 ](12,1](\frac12,1]:
并反思是是y-轴:
这具有连续的二阶(但不是三阶)导数,并且根据对称性,曲线下的面积为111。
感谢 Desmos 提供的图片。
\endgroup
|
也考虑一下这个。
我希望代码足够清晰以适应其他平台。
\endgroup
|
这个问题类似于:。如果您认为它有所不同,请编辑问题,说明它有何不同和/或该问题的答案对您的问题无益之处。
\endgroup
–
嗨@Lorago。我读过你链接的答案(它没有出现在我的搜索中,很奇怪)。恐怕它让我比以往更加困惑。很明显,我肯定没有掌握那里答案的一些非常基本的东西;如果它对其他人有用,那么一定是我错过了什么。所以,我的问题现在已更新以解决这个问题。
\endgroup
–
如果你不要求函数是无限可微的,那么你可以使用比埃− 1 /X2,埃−1/X2,e^{-1/x^2},例如余弦2X 。余弦2X。\cos^2 x.
\endgroup
–
您的书面版本G0G0g_0不正确,而且链接的问题中似乎有拼写错误。我认为该函数应该是G0(x )= f(12+ x ) f(12− x )G0(X)=F(12+X)F(12−X)g_0(x)=f\left(\frac{1}{2}+x\right)f\left(\frac{1}{2}-x\right).如果我们写F(x )=埃−1X2χ(0 ,∞ )(X )F(X)=埃−1X2χ(0,∞)(X)f(x)=e^{-\frac1{x^2}}\chi_{(0,\infty)}(x), 在哪里χAχA\chi_A是指示函数AAA, 然后
g_0(x)=e^{-\frac4{\left(2x+1\right)^2}-\frac{4}{\left(2x-1\right)^2}}\chi_{\left(-\frac1{2},\frac{1}{2}\right)}(x)=\begin{cases}e^{-\frac{4}{\left(2x+1\right)^2}-\frac{4}{\left(2x-1\right)^2}},&x\in\left(-\frac{1}{2},\frac{1}{2}\right),\\ 0,&\text{otherwise}.\end{cases}
\endgroup
–
谢谢。我仍然很困惑,抱歉。首先,让我们接受F0(x ):= {0 ,埃−1X2,如果 x≤0如果 x>0F0(X):={0,如果 X≤0埃−1X2,如果 X>0 f_0(x) := \begin{cases} 0, & \mbox{if } x \le 0 \\ e^{-\frac{1}{x^2}}, & \mbox{if } x > 0 \end{cases} 和G0(x )= f( x −12) F(12− x )G0(X)=F(X−12)F(12−X)g_0(x)=f\left(x-\frac{1}{2}\right)f\left(\frac{1}{2}-x\right)。这当然给了我们 F0(x ):=⎧⎩⎨0 ,埃−1(12+十)2−1(12− x)2,如果 x≤0如果 x>0F0(X):={0,如果 X≤0埃−1(12+X)2−1(12−X)2,如果 X>0f_0(x) := \begin{cases} 0, & \mbox{if } x \le 0 \\ e^{-\frac{1}{(\frac{1}{2}+x)^2}-\frac{1}{(\frac{1}{2}-x)^2}} , & \mbox{if } x > 0 \end{cases} 而不是你的结果?你的公式确实产生了一个凸起。但它大约是0.000330.000330.00033振幅很大,我无法积分;虽然积分肯定是< < 1<<1<<1…
\endgroup
–
|