GFPolynomialMath¶
API Reference / Standard / 类索引
- 路径:
addons/gf/standard/foundation/math/gf_polynomial_math.gd - 模块:
Standard - 继承:
RefCounted - API:
public - 类别:运行时服务 (
runtime_service) - 首次版本:
4.4.0
通用实数多项式数学工具。 使用高阶到低阶的系数顺序,例如 x^2 - 5x + 6 表示为 [1, -5, 6]。 工具只提供纯计算能力,不解释项目公式、曲线配置或业务语义。
成员概览¶
| 类型 | 名称 | 签名 |
|---|---|---|
| 常量 | DEFAULT_EPSILON |
const DEFAULT_EPSILON: float = 0.000001 |
| 常量 | DEFAULT_ROOT_MERGE_EPSILON |
const DEFAULT_ROOT_MERGE_EPSILON: float = 0.00001 |
| 常量 | DEFAULT_MAX_ITERATIONS |
const DEFAULT_MAX_ITERATIONS: int = 96 |
| 常量 | DEFAULT_MAX_DEGREE |
const DEFAULT_MAX_DEGREE: int = 12 |
| 方法 | normalize_coefficients |
static func normalize_coefficients( coefficients: PackedFloat64Array, epsilon: float = DEFAULT_EPSILON ) -> PackedFloat64Array: |
| 方法 | evaluate |
static func evaluate(coefficients: PackedFloat64Array, x: float) -> float: |
| 方法 | derivative |
static func derivative( coefficients: PackedFloat64Array, epsilon: float = DEFAULT_EPSILON ) -> PackedFloat64Array: |
| 方法 | from_roots |
static func from_roots( roots: PackedFloat64Array, leading_coefficient: float = 1.0 ) -> PackedFloat64Array: |
| 方法 | real_roots |
static func real_roots( coefficients: PackedFloat64Array, options: Dictionary = {} ) -> PackedFloat64Array: |
常量¶
DEFAULT_EPSILON¶
- API:
public
默认浮点容差。
DEFAULT_ROOT_MERGE_EPSILON¶
- API:
public
默认根合并距离。
DEFAULT_MAX_ITERATIONS¶
- API:
public
默认二分迭代次数。
DEFAULT_MAX_DEGREE¶
- API:
public
默认允许的最高次数。
方法¶
normalize_coefficients¶
- API:
public
static func normalize_coefficients( coefficients: PackedFloat64Array, epsilon: float = DEFAULT_EPSILON ) -> PackedFloat64Array:
移除前导近零系数。
参数:
| 名称 | 说明 |
|---|---|
coefficients |
高阶到低阶排列的多项式系数。 |
epsilon |
小于等于该绝对值的前导项会被视为 0。 |
返回:规范化后的系数;零多项式返回空数组。
结构:
coefficients: PackedFloat64Array high-to-low polynomial coefficients.
evaluate¶
- API:
public
使用 Horner 法计算多项式在 x 处的值。
参数:
| 名称 | 说明 |
|---|---|
coefficients |
高阶到低阶排列的多项式系数。 |
x |
采样位置。 |
返回:多项式值;非法输入返回 NAN。
结构:
coefficients: PackedFloat64Array high-to-low polynomial coefficients.
derivative¶
- API:
public
static func derivative( coefficients: PackedFloat64Array, epsilon: float = DEFAULT_EPSILON ) -> PackedFloat64Array:
计算导函数系数。
参数:
| 名称 | 说明 |
|---|---|
coefficients |
高阶到低阶排列的多项式系数。 |
epsilon |
前导项规范化容差。 |
返回:导函数系数;常量或零多项式返回空数组。
结构:
coefficients: PackedFloat64Array high-to-low polynomial coefficients.
from_roots¶
- API:
public
static func from_roots( roots: PackedFloat64Array, leading_coefficient: float = 1.0 ) -> PackedFloat64Array:
根据实根生成多项式系数。
参数:
| 名称 | 说明 |
|---|---|
roots |
多项式实根列表,每个根生成一个 (x - root) 因子。 |
leading_coefficient |
最高阶系数。 |
返回:高阶到低阶排列的系数;leading_coefficient 为 0 时返回空数组。
real_roots¶
- API:
public
static func real_roots( coefficients: PackedFloat64Array, options: Dictionary = {} ) -> PackedFloat64Array:
求多项式的实根。
参数:
| 名称 | 说明 |
|---|---|
coefficients |
高阶到低阶排列的多项式系数。 |
options |
可选参数,支持 epsilon、root_merge_epsilon、max_iterations、max_degree、min_x 和 max_x。 |
返回:升序排列的实根列表,重复根会按 root_merge_epsilon 合并。
结构:
coefficients: PackedFloat64Array high-to-low polynomial coefficients.options: Dictionary with optional epsilon: float, root_merge_epsilon: float, max_iterations: int, max_degree: int, min_x: float, and max_x: float.