gpt4 book ai didi

javascript - 什么样的算法可以生成这样的曲线 (img) & 它可以在 javascript 中为 flot 完成吗?

转载 作者:数据小太阳 更新时间:2023-10-29 05:53:27 25 4
gpt4 key购买 nike

你能给我一个算法的例子吗? alt text http://ryancalderoni.com/archive/ideal_curve.jpg

编辑:然后我将如何使用 Javascript 计算数学?有人可以添加吗?很抱歉最初没有包含该上下文..

注意:我正在使用“flot”来绘制它,flot 的输入是一个 javascript 数组,如下所示:

[[x,y],[x,y],[x,y]...]

因此,给定改变曲线的值,我将所有点输出到一个带有循环的数组,然后将其吐出以 float 到图形中。

最佳答案

典型的 S 型曲线是 tanh(x) 曲线。

根据定义,

  tanh(x) = sinh(x) / cosh(x) =
= [(1/2) (e^x - e^-x)] / [(1/2) (e^x + e^-x)] =
= (e^x - e^-x) / (e^x + e^-x) =
= (e^(2x) - 1) / (e^(2x) + 1)


(High-res)

请注意,对称线相对于您的样本图片发生了偏移。要使 tanh 图看起来更像您的示例,只需将其向上和向右移动即可:

y = 1 + (e^(2x - 6) - 1) / (e^(2x - 6) + 1)


(High-res)

在 JavaScript 中,您可以最有效地实现此表达式

exp2x = Math.exp(2*x)
y = (exp2x - 1) / (exp2x + 1)

更新(再次)

好的,如果你想让 y 的范围从 0 到 100,x 的范围从 0 到 100,那么你可能想尝试

y = 50 + 50*tanh((x−50)/10)

看起来像


(High-res)

现在

y = 50 + 50 * tanh((x−50)/10)
= 50 + 50 * (e^((x−50)/5) - 1) / (e^((x−50)/5) + 1)

错误函数 erf 看起来非常相似,但 更难计算(除非 JavaScript 具有内置的 erf 函数)。


Ryan (OP) 补充道:已实现!

var y = 50 + 50 * tanh((n-50)/10);

function tanh (arg) {
return (Math.exp(arg) - Math.exp(-arg)) / (Math.exp(arg) + Math.exp(-arg));
}

关于javascript - 什么样的算法可以生成这样的曲线 (img) & 它可以在 javascript 中为 flot 完成吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3479842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com