前言
对于很多场景需要一个合适的函数曲线模型。来实现对结果的取值。比如闪避概率的计算。需要点数越多,闪避概率越大。但不能达到100。这就可以用一个函数模型来模拟。我最后找到了一个函数就是y=-(10000/(x+100)+100)。这个函数曲线能比较好的模拟所需要的情况。
寻找过程
因为我考虑到需要逼近但是不能达到一个值。就想到了反比例函数y=1/x。这个函数在xy的无限长度上会贴近坐标轴,但不会相交。
它的函数曲线在第一和第三象限,是逐渐降低的值。所以表达式加一个负号。翻转到了第二、四象限。变成逐渐增加的值:y=-1/x。
需要的是处于第四象限的一段函数,但是它是无限贴近0值的。所以表达式+100,让他贴近100:y=-(1/x+100)
但是这个函数上升太快了。有坐标(2,99.5),在x为2的时候,y值已经达到99.5了。所以需要它上升的慢一些,让这个反比例函数远离中心。可以把反比例函数的k值增大。y=-(10000/x+100)。这时候它已经远离了它的中心位置。并且有坐标(250,60)。在x为250的时候y值才达到60。
最后需要让他的0值处处于原点,把函数向左平移100就行了,得到了最后的函数模型:y=-(10000/(x+100)+100)。可以看到这个函数从x=0处开始,y值一直在不断的贴近100,但始终不能达到100,并且开始上升的速度快,后面上升的速度慢。
常用函数原型
数学上的一些基本函数:线性函数、反比例函数、幂函数、指数函数、对数函数、三角函数、反三角函数。分段函数这些可以作为原型。
有一些比较高级的函数,单位圆函数,圆锥曲线函数。等螺角线函数。双曲线函数。甚至积分函数。能够实现更多的图形曲线。
函数曲线的简单变换
伸缩和平移
对于垂直方向上的伸缩是对x表达式乘除一个值
对于垂直方向的平移是对x表达式加减一个值
对于水平方向上的伸缩是对x变量乘除一个值
对于水平方向上的平移是对x变量加减一个值
翻转
水平翻转对x值乘-1
垂直翻转对x表达式乘-1
变形
可以用一些基本的函数相乘、相加之类的办法,得到一些变形后的函数。比如三角函数sin(x)和线性函数0.2*x相乘后,可以得到一个喇叭状起伏的函数:y=sin(x)*0.2*x
有时候函数还是很好玩的。