Mathematica 函数定义域自动生成代码优化
Mathematica 函数定义域自动生成代码优化
本文提供一个 Mathematica 代码片段,可以自动生成函数的定义域,并以简洁的方式输出。
示例函数:
f[x_] := x^2 - 4
FunctionRange[f[x], x, Reals]
(* 输出:(-∞,-4]∪[4,∞) *)
定义域[f_, x_] := Module[{domain = FunctionDomain[f[x], x, Reals]},
If[domain === True, 'R',
If[Head[domain] === Or,
StringJoin @@ (ToString[#] <> ',' & /@ domain[[1 ;; -2]]),
ToString[domain]]]]
定义域[f, x]
(* 输出:'R' *)
g[x_] := 1/(x - 2) + 3
定义域[g, x]
(* 输出:'x<2,x>2' *)
h[x_] := x^2 - 6x + 9 > 0
定义域[h, x]
(* 输出:'x<3,x>3' *)
代码解析:
- 定义域函数
定义域[f_, x_]:
- 利用
FunctionDomain[f[x], x, Reals]获取函数f[x]在实数域上的定义域。 - 如果定义域为
True,表示函数在实数域上定义,输出'R'。 - 如果定义域是一个
Or表达式,则将各区间以逗号隔开输出,例如'x<2,x>2'。 - 如果定义域是一个单一区间,则直接输出该区间,例如
'x>123'。
使用方法:
- 首先定义你的函数,例如
f[x_] := x^2 - 4。 - 使用
定义域[f, x]获取函数f的定义域。
优点:
- 自动生成函数定义域,简化代码。
- 采用简洁的方式输出定义域,易于理解。
注意:
- 该代码片段仅适用于实数域上的函数定义域。
- 如果函数定义域较为复杂,可能需要根据实际情况调整代码。
希望这篇文章对您有所帮助!
原文地址: https://www.cveoy.top/t/topic/oPJC 著作权归作者所有。请勿转载和采集!