【 在 scArcer (莫迦三神器) 的大作中提到: 】
: 码农是工程思维,核心是要可用、低成本
: 不是一定要解决一个数学问题的。
: - 来自「最水木 for iPhone X」
: ...................
嗯嗯, 从工程的角度看, 楼主需要的是下面接口的一个可以接受的实现:
double f(u32 x);
这里输入参数为u32, 最大值并不是无穷大, 这是对原问题的极大的简化.
最简单的实现就是给 f(MAX_UINT32)一个接近1的值, 然后分段线性插值.
有了这个实现, 系统先跑起来, 然后考虑是不是有更好的实现.
比如带正则化的多项式插值, 通过选择多项式的最高阶数以及正则项的参数lambda,
挑选"心仪"的多项式; 或者样条插值, 先用软件画一条直观上符合预期的"渐近线",
然后得到这条"渐近线"的参数(如控制点等), 再在函数里实现这个渐近线的贝塞尔曲
线求解. 有一个开源软件 Asymptote 可以自动确定控制点划贝塞尔曲线, 可以先了解下
它的功能. 它的手册有一章介绍贝塞尔曲线, 里面提到Asymptote实际上是使用了Knuth
大神在MetaFontBook中的算法, MetaFontBook第14章中提到的文章是这一篇:
https://www.researchgate.net/publication/226514776_Smooth_easy_to_compute_interpolating_splines
--
FROM 103.85.165.*