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}")