跳转至

函数性质分析(functions/functions.py)

functions/functions.py 提供函数值域、单调区间、奇偶性、周期、最值等分析。所有函数接收字符串形式的函数 f、自变量 s、定义域 dfs 为函数字典。

Note

下列函数中 is_increasearg 为保留/占位参数:传入与否不影响 frange/monotonic_interval 的解析结果;odd_or_even/period 当前以 arg=None 调用。

frange — 值域

作用:求函数在给定定义域上的值域。

def frange(f, s, d, is_increase, fs):
    ...
参数 类型 含义
f str 函数表达式,如 "x**2"
s str 自变量符号,如 "x"
d str 定义域,SymPy Interval 形式字符串,如 "Interval(0, 3)"
is_increase bool 占位参数(未使用)
fs dict 函数字典

返回:值域,SymPy Set(由 function_range 计算)。

monotonic_interval — 单调区间

作用:求函数的单调递增或递减区间。

def monotonic_interval(f, s, d, is_increase, fs):
    ...
参数 类型 含义
f str 函数表达式
s str 自变量符号
d str 定义域(Interval 形式)
is_increase bool True 求递增区间,False 求递减区间
fs dict 函数字典

返回:单调区间,SymPy Set(区间)。

odd_or_even — 奇偶性

作用:判断函数的奇偶性。

def odd_or_even(f, s, d, arg, fs):
    ...
参数 类型 含义
f str 函数表达式
s str 自变量符号
d str 定义域
arg 占位 不使用(传 None
fs dict 函数字典

返回:字符串 "既奇又偶函数" / "奇函数" / "偶函数" / "非奇非偶函数"

period — 周期

作用:求函数的周期。

def period(f, s, d, arg, fs):
    ...
参数 类型 含义
f str 函数表达式
s str 自变量符号
d str 定义域
arg 占位 不使用(传 None
fs dict 函数字典

返回:周期表达式;无周期时返回字符串 "该函数无周期"

mvalues — 最值

作用:求函数在定义域上的最大值或最小值。

def mvalues(f, s, d, is_max, fs):
    ...
参数 类型 含义
f str 函数表达式
s str 自变量符号
d str 定义域(Interval 形式)
is_max bool True 求最大值,False 求最小值
fs dict 函数字典

返回:最值表达式(SymPy maximum / minimum)。

get_function_attr — 统一入口

作用:按 attr 编号统一调用上述属性分析,供 UI 调色板使用。

def get_function_attr(f, s, d, attr, fs):
    ...
参数 类型 含义
f str 函数表达式
s str 自变量符号
d str 定义域
attr int 属性编号 0–7(见下表)
fs dict 函数字典

返回attr 对应属性的结果。

attr 取值映射

attr 含义 调用
0 函数表达式与定义域 (sympify(f), sympify(d))
1 值域 frange
2 单调递增区间 monotonic_interval(is_increase=True)
3 单调递减区间 monotonic_interval(is_increase=False)
4 奇偶性 odd_or_even
5 周期 period
6 最大值 mvalues(is_max=True)
7 最小值 mvalues(is_max=False)

Example

python frange("x**2", "x", "Interval(0, 3)", True, {}) # -> Interval(0, 9) odd_or_even("x**3", "x", "Interval(-oo, oo)", None, {}) # -> "奇函数" get_function_attr("x**2", "x", "Interval(0, 3)", 1, {}) # -> 值域 Interval(0, 9)