从函数结果中检测三角函数
Detect trigonomitric functions from function result
是否可以在数学上确定一个函数是否是三角函数,例如:
5*cos(4x+2)
或sin(1/2x)
...
只看结果?
我正在研究评估JavaScript函数function f(x){ return Math.sin(x*2); }
的代码,以查看它是否是基于结果的三角函数。
不是有效的函数,因为它总是返回 1 而不是谐波值:
function f(x){ return Math.pow(Math.sin(x),2) + Math.pow(Math.cos(x),2); }
此函数在function f(x){ return 1/4 * Math.cos(x*5) }
有效
这是无效的function f(x){ return x*Math.sin(x); }
等等...
首先,
1=cos(0·x)=cos(x-x)=cos²(x)+sin²(x)
在您的约束下有效。
其次,即使假设函数是周期性的(有进一步的小限制),你也可以使用三角多项式非常接近地近似它。
考虑到一大类函数可以通过傅里叶积分表示,傅里叶积分可以用频率不可比较的有限正弦曲线近似,这使得你的任务更加不可能。
但是,您可以通过一些三角多项式以经验和启发式方式插值采样集的近似部分,然后通过机器学习的其余样本进行测试。变化通过基波给出,即最小和最大频率,它决定了项的数量。您还可以删除系数太小的项,以降低表达式的复杂性。
相关文章:
- 如何检测是否有溢出
- 如何检测用于WebGL的专用或集成显卡
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- 如何使用密码检测网络中的状态连接
- 使用JavaScript检测Flash
- 在不阻止默认行为的情况下检测IE10中的缩放
- 检测个位数整数时正在转换毫秒
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 动态插入的表:JQuery未检测到最后一行
- 检测页面上某个元素中选择(突出显示)或单击的内容
- jQuery检测浏览器是否支持Zoom
- 检测iframe是否跨域的愚蠢方法
- 检测图像分辨率
- 如何检测第三方广告服务器请求
- 我是否可以检测到javascript正在被卸载(作为调试模式)
- 当没有文本输入聚焦时检测空格键按下
- 正在检测导航到<a name=“;最新主题”></a>
- 如何检测重叠元素下的单击
- 从函数结果中检测三角函数