brachistochrone_curve

描述

计算最速曲线(投掷线)并返回x_series对应的y坐标

函数签名

brachistochrone_curve(x1, y1, x2, y2, x_series, timeout_seconds) -> None

参数

x1 (float)

起点x坐标

y1 (float)

起点y坐标

x2 (float)

终点x坐标

y2 (float)

终点y坐标

x_series (numpy.ndarray)

需要计算y坐标的x点序列

timeout_seconds (float, optional)

计算超时时间,单位为秒。如果函数执行时间超过此值,将立即中断计算并抛出异常。默认值为None,表示无超时限制。

返回值


numpy.ndarray 与x_series相对应的y坐标值数组

异常:

TimeoutError 当计算时间超过timeout_seconds指定的秒数时抛出

Python调用示例: ```python import numpy as np import pandas as pd from rust_pyfunc import brachistochrone_curve

创建x序列

x_vals = pd.Series(np.linspace(0, 5, 100))

计算从点(0,0)到点(5,-3)的最速曲线,设置5秒超时

try: y_vals = brachistochrone_curve(0.0, 0.0, 5.0, -3.0, x_vals, 5.0) except RuntimeError as e: print(f"计算超时: {e}") ```

示例

输入:

brachistochrone_curve( 0.0, 0.0, 1.0, 1.0, np.array([0.0, 0.1111111111111111, 0.2222222222222222, 0.3333333333333333, 0.4444444444444444, 0.5555555555555556, 0.6666666666666666, 0.7777777777777777, 0.8888888888888888, 1.0]) )

输出:

array([0.0001, 0.2987, 0.4567, 0.5787, 0.6791, 0.7639, 0.8365, 0.8991, 0.9528, 0.9988], dtype=float64)

Python使用示例

import numpy as np
from rust_pyfunc import brachistochrone_curve

# 使用示例


result = brachistochrone_curve(0.0, 0.0, 1.0, 1.0, np.array([0.0, 0.1111111111111111, 0.2222222222222222, 0.3333333333333333, 0.4444444444444444, 0.5555555555555556, 0.6666666666666666, 0.7777777777777777, 0.8888888888888888, 1.0]))
print(f"结果: {result}")