FunctionDomain[f,x]
変数 x の実関数 f が定義され得る,最大定義域を求める.
FunctionDomain[f,x,dom]
f を,その引数と値が定義域 dom にある関数であるとみなす.
FunctionDomain[funs,vars,dom]
変数 vars の写像 funs の定義の最大定義域を求める.
FunctionDomain[{funs,cons},vars,dom]
vars の値が制約条件 cons で制限されている funs の定義域を求める.
FunctionDomain
FunctionDomain[f,x]
変数 x の実関数 f が定義され得る,最大定義域を求める.
FunctionDomain[f,x,dom]
f を,その引数と値が定義域 dom にある関数であるとみなす.
FunctionDomain[funs,vars,dom]
変数 vars の写像 funs の定義の最大定義域を求める.
FunctionDomain[{funs,cons},vars,dom]
vars の値が制約条件 cons で制限されている funs の定義域を求める.
詳細とオプション
- funs は,変数 vars の関数のリストでなければならない.
- dom の可能な値にはRealsおよびComplexesがある.デフォルトはRealsである.
- dom がRealsのときは,変数,パラメータ,定数,および関数値はすべて,実数に制限される.
- cons は,方程式,不等式,あるいはこれらの論理結合を含むことができる.
- 次は,使用可能なオプションである.
-
GeneratedParameters C 生成されるパラメータの命名方法 Method Automatic 使用すべきメソッド WorkingPrecision Automatic 計算に使用する精度
例題
すべて開く すべて閉じる例 (2)
スコープ (4)
FunctionDomain[x / (x ^ 2 - 1), x]FunctionDomain[Log[Tan[x] - 1], x]FunctionDomain[Gamma[1 - x ^ 2], x]FunctionDomain[{Log[Tan[x] - 1], x ^ 2 < 1}, x]FunctionDomain[x / (x ^ 2 + 1), x, Complexes]FunctionDomain[Log[Tan[x] - 1], x, Complexes]FunctionDomain[Log[Zeta[x]], x, Complexes]FunctionDomain[{1 / (x ^ 2 - 2), Abs[x] < 1}, x, Complexes]FunctionDomain[(x + y) / (x ^ 2 - y ^ 2), {x, y}]FunctionDomain[Beta[a, Sqrt[x]], {a, x}]FunctionDomain[ArcTan[x, y] / Tanh[z], {x, y, z}, Complexes]FunctionDomain[BesselJ[x, 1 + Gamma[y]], {x, y}, Complexes]オプション (3)
GeneratedParameters (1)
FunctionDomainは定義域を表す新たなパラメータを導入することがある:
FunctionDomain[Log[Sin[x]], x]GeneratedParametersを使ってパラメータの生成方法を制御する:
FunctionDomain[Log[Sin[x]], x, GeneratedParameters -> (Subscript[k, #]&)]Method (1)
FunctionDomain[1 / Log[Exp[1 / x] - x ^ 2], x]FunctionDomain[Sqrt[x ^ 2 - x y + y ^ 2], {x, y}]Methodを使って,定義域を約した形で与えるべきかどうかを指定する:
FunctionDomain[1 / Log[Exp[1 / x] - x ^ 2], x, Method -> {"Reduced" -> False}]FunctionDomain[Sqrt[x ^ 2 - x y + y ^ 2], {x, y}, Method -> {"Reduced" -> True}]WorkingPrecision (1)
デフォルトで,FunctionDomainは厳密計算を使う:
FunctionDomain[1 / Log[x - Exp[x]Log[x]], x]FunctionDomain[1 / Log[x - Exp[x]Log[x]], x, WorkingPrecision -> 20]アプリケーション (13)
基本的なアプリケーション (6)
FunctionDomain[Sqrt[1 - x] + Sqrt[1 + x], x, Reals]f = Sqrt[1 - x] + Sqrt[1 + x];
Plot[{Re[f], Im[f]}, {x, -2, 2}, PlotLegends -> {"Re[f]", "Im[f]"}]FunctionDomain[Sqrt[x ^ 2 + y ^ 2 - 9], {x, y}]Plot3D[Sqrt[x ^ 2 + y ^ 2 - 9], {x, -5, 5}, {y, -5, 5}]実領域の外では,関数は複素関数あるいは特異関数かもしれず,定義されないかもしれない:
FunctionDomain[ArcCos[x], x]f = ArcCos[x];
Plot[{Re[f], Im[f]}, {x, -2, 2}, PlotLegends -> {"Re[f]", "Im[f]"}]FunctionDomain[AlternatingFactorial[x - 1], x]Plot[AlternatingFactorial[x - 1], {x, -7, 0}]FunctionDomain[EllipticTheta[3, 2, x], x]EllipticTheta[3, 2, -1.5]FunctionDomain[Tanh[Pi x], x, Complexes]ComplexPlot3D[Tanh[Pi x], {x, -1 - 2I, 1 + 2I}]FunctionDomain[Exp[1 / x], x, Complexes]ComplexPlot[Exp[1 / x], {x, -1 - 1I, 1 + 1I}]FunctionDomain[EllipticTheta[1, 2, x], x, Complexes]EllipticTheta[1, 2, 2.1 + 3.2I]方程式の解と最適化 (2)
f = x Log[x] + Sqrt[1 - x] - E ^ x + 2;FunctionDomain[f, x]Plot[f, {x, 0, 1}]Solveは領域情報を自動的に使って解を求める:
Solve[f == 0, x, Reals]f = LegendreP[6, -1, x]FunctionDomain[f, x]rts = Solve[D[f, x] == 0 && -1 < x < 1, x]r = First[MinimalBy[rts, f /. #&]]
における
の値が領域の端点における
の値よりも小さいことを確認する:
(f /. r) <= Min[(f /. x -> -1), (f /. x -> 1)]Plot[f, {x, -1, 1}, Epilog -> {Red, PointSize[Large], Point[{x, f} /. r]}]Minimizeは領域情報を自動的に使って最小値を求める:
Minimize[f, x]//RootReduce微積分 (5)
実領域からの点に対する関数の極限が存在するなら,それは実数または実無限でなければならない:
FunctionDomain[Gamma[x], x]Plot[Gamma[x], {x, -3, 3}]Limitを使って,実方向に沿った
における
の極限が実無限であることを確認する:
Limit[Gamma[x], x -> 0, Direction -> "FromBelow"]Limit[Gamma[x], x -> 0, Direction -> "FromAbove"]実領域の部分集合上の積分が存在するなら,それは実数または実無限でなければならない:
f = ArcCos[x ^ 2];FunctionDomain[f, x]Integrateを使って
の積分を計算する:
Integrate[f, {x, -1, 1}]{N[%], Element[%, Reals]}実領域上の点における関数の導関数が存在するなら,それは実数値である:
f = InverseErf[x Log[x]];dom = FunctionDomain[f, x]df = D[f, x]Plot[df, {x, First[dom], Last[dom]}]FunctionAnalytic[BesselK[x, y], {x, y}]関数が実解析的であるためには,その関数は定義されていて実数値でなければならない:
FunctionDomain[BesselK[x, y], {x, y}, Reals]FunctionAnalytic[{BesselK[x, y], %}, {x, y}]FunctionAnalytic[Hypergeometric2F1[x, 4, 4, 1], x, Complexes]関数が複素解析的であるためには,その関数は定義されていなければならない:
FunctionDomain[Hypergeometric2F1[x, 4, 4, 1], x, Complexes]FunctionAnalytic[{Hypergeometric2F1[x, 4, 4, 1], %}, x, Complexes]考えられる問題 (3)
点が
の実領域に属すためには,
のすべての部分式が実数値でなければならない:
FunctionDomain[Cos[Sqrt[x]], x]Refine[Element[Sqrt[x], Reals], x < 0]Plot[Cos[Sqrt[x]], {x, -10, 10}]数値関数についての実領域情報は低次元集合についてまで正確である:
FunctionDomain[HankelH1[n, z], {n, z}, Reals]HankelH1が実数値になる
空間の全次元部分集合はない:
Plot3D[Im[HankelH1[n, z]], {n, -3, 3}, {z, -3, 3}]以下は,HankelH1が実数値になる
空間の一次元部分集合である:
f = HankelH1[n, BesselYZero[n, 1]];Plot[{Re[f], Im[f]}, {n, -3, 3}, PlotLegends -> "Expressions"]FunctionDomainは
が実数値であることを検出できない:
FunctionDomain[f, n]x / xFunctionDomainは,標準的な評価手順に従って評価された引数を受け取る:
FunctionDomain[x / x, x]関連項目
履歴
2014 で導入 (10.0)
テキスト
Wolfram Research (2014), FunctionDomain, Wolfram言語関数, https://reference.wolfram.com/language/ref/FunctionDomain.html.
CMS
Wolfram Language. 2014. "FunctionDomain." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FunctionDomain.html.
APA
Wolfram Language. (2014). FunctionDomain. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FunctionDomain.html
BibTeX
@misc{reference.wolfram_2026_functiondomain, author="Wolfram Research", title="{FunctionDomain}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/FunctionDomain.html}", note=[Accessed: 17-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_functiondomain, organization={Wolfram Research}, title={FunctionDomain}, year={2014}, url={https://reference.wolfram.com/language/ref/FunctionDomain.html}, note=[Accessed: 17-June-2026]}