Skip to content

Ode

本文档由 src/stdlib/ode.mcrs 自动生成,请勿手动编辑。

API 列表


ode_mul_fx v2.0.0

定点数乘法:a_fx * b_fx / 10000

redscript
fn ode_mul_fx(a_fx: int, b_fx: int): int

参数

参数说明
a_fx第一个操作数 ×10000
b_fx第二个操作数 ×10000

返回: 乘积(×10000)


ode_weighted_increment v2.0.0

计算 RK4 加权增量:h * (k1 + 2k2 + 2k3 + k4) / 6

redscript
fn ode_weighted_increment(h_fx: int, deriv_sum_fx: int): int

参数

参数说明
h_fx步长 ×10000
deriv_sum_fxk1 + 2k2 + 2k3 + k4,×10000

返回: 加权增量 ×10000


ode_reset v2.0.0

在 storage rs:ode 中初始化 ODE 模块状态

redscript
fn ode_reset(system_id: int, t_fx: int, y_fx: int, y2_fx: int, k_fx: int, extra_fx: int)

参数

参数说明
system_id内置系统常量(1=衰减,2=增长,3=振荡器)
t_fx初始时间 ×10000
y_fx初始主变量 y(0) ×10000
y2_fx初始次变量 y'(0) ×10000(仅 system 3 使用)
k_fx速率/弹性常数 ×10000
extra_fx阻尼系数 ×10000(仅 system 3 使用)

示例

redscript
ode_reset(1, 0, 10000, 0, 10000, 0)

ode_get_system v2.0.0

返回 ODE 状态中的系统 ID

redscript
fn ode_get_system(): int

返回: 槽位 0 中存储的系统 ID


ode_get_t v2.0.0

返回当前时间 t(×10000)

redscript
fn ode_get_t(): int

返回: 当前时间 ×10000


ode_get_y v2.0.0

返回当前主变量 y(×10000)

redscript
fn ode_get_y(): int

返回: 当前 y 值 ×10000


ode_get_y2 v2.0.0

返回当前次变量 y'(×10000,仅对 system 3 有意义)

redscript
fn ode_get_y2(): int

返回: 当前 y' 值 ×10000


ode_get_k v2.0.0

返回速率常数 k(×10000)

redscript
fn ode_get_k(): int

返回: 速率常数 ×10000


ode_get_extra v2.0.0

返回额外参数(×10000,system 3 中表示阻尼)

redscript
fn ode_get_extra(): int

返回: 额外参数 ×10000


ode_get_steps v2.0.0

返回已执行的步数

redscript
fn ode_get_steps(): int

返回: 步数(普通整数)


ode_step v2.0.0

向前推进一个 RK4 步

redscript
fn ode_step(h_fx: int)

参数

参数说明
h_fx步长 ×10000(如 1000 = 0.1 时间单位)

ode_run v2.0.0

对标量 ODE 系统执行 steps 步 RK4 积分

redscript
fn ode_run(system_id: int, t0_fx: int, y0_fx: int, h_fx: int, steps: int, k_fx: int)

参数

参数说明
system_id内置系统常量(1 或 2 用于标量系统)
t0_fx初始时间 ×10000
y0_fx初始 y 值 ×10000
h_fx步长 ×10000
stepsRK4 步数
k_fx速率常数 ×10000

示例

redscript
ode_run(1, 0, 10000, 1000, 10, 10000)
let y: int = ode_get_y()

ode_run2 v2.0.0

对二维 ODE 系统(如谐振子)执行 steps 步 RK4 积分

redscript
fn ode_run2(system_id: int, t0_fx: int, y0_fx: int, y20_fx: int, h_fx: int, steps: int, k_fx: int, extra_fx: int)

参数

参数说明
system_id内置系统常量(system 3 = 谐振子)
t0_fx初始时间 ×10000
y0_fx初始 y 值 ×10000
y20_fx初始 y' 值 ×10000
h_fx步长 ×10000
stepsRK4 步数
k_fx弹性常数 ×10000
extra_fx阻尼系数 ×10000

示例

redscript
ode_run2(3, 0, 10000, 0, 1000, 20, 10000, 500)

Released under the MIT License.