经过痛苦的尝试和错误,我得到了一个奇怪的函数,它的行为符合我想要的方式:

(exp(- abs(6 * (x - 0.7)) ^ 2.5 ) + exp(- (x-1.7) ^ 8 ) * 1.2)/1.5785

我只关心 0 <= x <= 1 范围内的值以及 x = 1 处的斜率。在这个区间内,0 <= y <= 1 。

是否有任何免费工具(基于网络或 MAC OS X)可以为此生成泰勒级数展开式?(我找到了一个,但是它被这么复杂的公式噎住了,而且不支持腹肌。)

我生成级数展开式的目的是为了提高计算效率。(这个函数在Javascript中会被调用数十万次,所以性能是一个问题。)

或者,如果我有曲线拟合工具,我可以对点进行采样并进行曲线拟合。(唉,我没有 MS Excel。) 知道任何免费的非线性曲线拟合工具(基于网络或 MAC OS X)吗?

有帮助吗?

解决方案

GNU倍频是一个免费的包,除了别的以外,具有这样的功能<强> polyfit 以做 最小二乘多项式曲线拟合。我认为这(或其它的什么包具有同等功能)可能是你的问题不是泰勒级数展开更好的匹配。该绝对值术语可能会使它很难找到一个泰勒一系列推断通过在x = 0.7,其中第一衍生物具有不连续性。

的点以及

其他提示

最大值的做到这一点。请参阅泰勒功能。

https://ctaylor.codeplex.com

这是一个C ++库,允许编写表达式和变量,并计算不仅价值,而且任何阶导数。 编译器是一个产生的代码为衍生物。

Wolfram Alpha 将象征性地在网络上免费为您完成此操作. 。H/T @ExcessPhase 使用的想法 abs(x)=sqrt(x*x).

Wolfram Alpha output

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top