光滑函数摄动的三重随机约束曲线发生器

smurves的Python项目详细描述


smurves

光滑函数摄动的三重随机约束曲线发生器

smurves是一个随机平滑曲线生成工具,允许在生成过程中设置多个约束。if提供了一个更具约束性的替代方案,例如,为此目的使用高斯过程。该方法基于牛顿定律,灵感来源于布兰登·桑德森的系列丛书The Stormlight Archive和书籍中称为“涌动绑定”的魔法系统。更具体地说,这种方法记录了处理飞行物体重力方向和大小变化的部分,这提供了最初的概念。

考虑到这一想法,smurves通过随机抽样重力,以及梯度符号变化的位置和数量,为每个曲线路径一个弹丸生成平滑曲线,并确保遵守所有约束,在重力方向切换后保持速度和飞行角度。

从本质上讲,代码的内部工作可以想象为,根据用户偏好,从x轴间隔的左边或右边的指定点或随机点发射任意角度或任意角度的子弹。在任意数量的随机点上,当子弹继续飞行时,重力会以新的随机大小颠倒过来,所有这些都受用户为所需曲线的属性设置的约束。

这种方法的动机是寻找一种新的方法来产生具有一定约束的完全随机曲线来平滑扰动函数,例如宇宙学中的matter power spectrum。在this paper关于sn-ia超新星数据检验宇宙学标准模型的可行性的文章中,可以找到对该方法的更详细描述,以及该工具在科学研究中的首次应用。

因为这是小说里的。本文档中完全包含了恶作剧。

安装

smurves可以通过PyPI安装,只需在终端中使用一个命令:

pip install smurves

或者,可以从存储库中的文件夹smurves下载文件smurves.py,并通过将该文件放入给定项目的工作目录在本地使用。但是,强烈建议通过终端进行安装,因为安装过程将检查软件包要求,并自动更新或安装任何缺少的依赖项,从而节省用户进行故障排除和自行安装的工作量。

快速启动指南

下面的描述和示例用法提供了有关smurves的快速教程。此外,此存储库中examples文件夹中的examples.ipynbJupyter笔记本显示了该工具用于各种约束、解释每个参数集以及绘制曲线所需的代码。

除了x轴和y轴之外的曲线数和间隔约束之外,曲线不应该散列,该工具需要测量点的数量和每个曲线的方向变化的最大数目。

六个可选参数包括曲线应收敛的点的位置、x轴的对数刻度的选择、随机地启动曲线轨迹的选择而不是零角度的选择、如果提供收敛点,则允许曲线在右侧而不是在左侧收敛;沿X轴的百分位数之前和没有方向重力变化应该被实施,以及放置阈值点之前,不偏离收敛点的X轴值应该发生。下表描述了这些参数。



VariablesExplanationsDefault
n_curvesThe number of curves you want to generate
x_intervalThe allowed x-axis interval for the curves
y_intervalThe allowed y-axis interval for the curves
n_measureThe number of equally-spaced measurement points
direction_maximumThe maximum number of allowed gradient changes
convergence_point (optional)The left-side point of convergence for curves
log_scale (optional)Whether measurements should be on a log-scaleFalse
random_launch (optional)Whether the first launch angle should be randomFalse
right_convergence (optional)Whether convergence should be on the right sideFalse
change_range (optional)The x-axis percentiles before and after which no
gradient changes should take place for curves
[0.1, 0.9]
change_spacing (optional)The minimum space in measurement points between
the different points of a gravitational force change
None
change_ratio (optional)The multiplier for the last partial trajectory to get
the upper limit for the next partial trajectory's force
None
start_force (optional)The point of the first deviation from unityNone



在通过PyPI或在本地使用smurves.py文件进行安装之后,可以使用ut可选参数如下:

fromsmurvesimportsurgebindercurves=surgebinder(n_curves=10,x_interval=[0.1,10.0],y_interval=[0.0,1.0],n_measure=100,direction_maximum=1)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JAVAutil。整数java的扫描器键盘输入   java通知运行后立即崩溃   java如何在一个只能由类修改而不能由其实例修改的类中生成静态变量?   数据库Java字段猜测   返回值周围的java括号为什么?   java Android更新通讯录中的联系人   一个消费者正在读取数据   java是否可以通过编程方式为蓝牙配对设置pin?   java Spring引导和buildResponseEntity()   java为什么序列化可以在没有实现可序列化的情况下工作   Java同步无助于相互排斥   twitter Java Twitter4J未在推文下显示源标签   为什么Javasocket不支持中断处理?