Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于将函数从实数输入到实数的Web UI,如概率分布_Javascript_User Interface_Math_Wolfram Mathematica - Fatal编程技术网

Javascript 用于将函数从实数输入到实数的Web UI,如概率分布

Javascript 用于将函数从实数输入到实数的Web UI,如概率分布,javascript,user-interface,math,wolfram-mathematica,Javascript,User Interface,Math,Wolfram Mathematica,我想为用户提供一个web界面来描述一维实值函数。我想象着用户看到一对空白的轴,他们可以点击任意位置来创建厚且可拖动的点。比如说,双击一个点会使它消失。实际功能应实时显示为用户提供点的插值 下面是Mathematica中实现的内容(当然我在寻找javascript): (来源:)请记住,概率分布在其整个运行过程中必须是单调的非递减的,而您的示例并非如此。更糟糕的是,这种小倾角不是由于用户错误造成的——他们的点会根据需要增加——而是插值方法的一种伪影。如果使用线性插值,那么任何非单调性都是用户的错

我想为用户提供一个web界面来描述一维实值函数。我想象着用户看到一对空白的轴,他们可以点击任意位置来创建厚且可拖动的点。比如说,双击一个点会使它消失。实际功能应实时显示为用户提供点的插值

下面是Mathematica中实现的内容(当然我在寻找javascript):



(来源:)

请记住,概率分布在其整个运行过程中必须是单调的非递减的,而您的示例并非如此。更糟糕的是,这种小倾角不是由于用户错误造成的——他们的点会根据需要增加——而是插值方法的一种伪影。如果使用线性插值,那么任何非单调性都是用户的错误,您可以警告他们

Dan Goldstein的工具有一个用于获取概率分布的替代界面。

如果您的网站用户安装了新的CDF播放器插件,他们将能够使用您编写的上述示例

虽然我还没有这方面的经验,但我相信CDF文件代码会直接放到您的页面中,并在启用正确MIME类型的情况下自动加载

下面是一个嵌入在博客文章中的实时可操作接口的示例:


很酷吧?

线性插值的优点很好。我甚至可能想要插值,这样无论用户将点放置在何处,结果函数总是单调的。在任何情况下,如何插值的选择应该是这个…Wtf的简单部分?它只需要是非负的,除非你说的是累积分布函数(我认为OP不是)。但样条插值确实会产生负值,您可能希望将上限设置为零。另一个很好的解决方案是用样条函数代替对数密度。如果OP实际上想要一个CDF而不是密度函数,还有一些方法可以用单调样条函数()。如果你有Mathematica,为什么要使用Javascript?为什么不使用WebMathematica?事实上我还没有想过WebMathematica。我假设它有一系列令人讨厌的许可限制,并且不会产生像纯javascript解决方案那样圆滑的东西。如果你的经历与此相反,我很想听听。也许这是一个真实的答案?谢谢!请注意,这里的CDF是“可计算文档格式”,不要与累积分布函数混淆。