FunctionConvexity[f,{x1,x2,…}]
実数上の変数 x1,x2,…を持つ関数 f の凸性を求める.
FunctionConvexity[{f,cons},{x1,x2,…}]
変数が凸領域を表す条件 cons で制約されているときの凸性を求める.
FunctionConvexity
FunctionConvexity[f,{x1,x2,…}]
実数上の変数 x1,x2,…を持つ関数 f の凸性を求める.
FunctionConvexity[{f,cons},{x1,x2,…}]
変数が凸領域を表す条件 cons で制約されているときの凸性を求める.
詳細とオプション
- 凸性は,凸,凹,狭義凸,狭義凹としても知られている.
- デフォルトで,次の定義が使われる.
-

+1 凸,つまり,すべての
およびすべての
と
について 

0 アフィン
,つまり,すべての
とすべての
と
について 

-1 凹,つまり,すべての
とすべての
と
について 

Indeterminate 凸でも凹でもない - アフィン関数は凸かつ凹である.
- StrictInequalitiesTrueと設定すると,以下の定義が使われる.
-

+1 狭義凸,つまり,すべての
およびすべての
と
について
,ただし 

-1 狭義凹,つまり,すべての
およびすべての
と
について
,ただし 

Indeterminate 狭義凸でも狭義凹でもない - 関数
は,制約条件 cons を満足するすべての実数値の
について実数値関数でなければならない. - cons は,凸領域を表す等式,不等式,それらの論理結合を含むことができる.
- 次は,使用可能なオプションである.
-
Assumptions $Assumptions パラメータについての仮定 GenerateConditions Automatic パラメータについての条件を生成するかどうか PerformanceGoal $PerformanceGoal 速度あるいは品質を優先するかどうか StrictInequalities False 狭義凸性を必要とするかどうか - 次は,GenerateConditionsの可能な設定である.
-
Automatic 一般的ではない条件のみ True すべての条件 False 条件なし None 条件が必要な場合は未評価で返す - PerformanceGoalの可能な設定は"Speed"と"Quality"である.
例題
すべて開く すべて閉じる例 (3)
スコープ (7)
FunctionConvexity[Sin[x], x]FunctionConvexity[2 ^ x, x]FunctionConvexity[x - Sqrt[x ^ 2], x]Plot[{Sin[x], 2 ^ x, x - Sqrt[x ^ 2]}, {x, -3, 3}]実数値ではない関数はIndeterminateの凸性を持つ:
FunctionConvexity[Log[x], x]FunctionConvexity[{Log[x], x > 0}, x]FunctionConvexity[{Sin[x], 0 ≤ x ≤ Pi}, x]FunctionSign[{x - Sqrt[x ^ 2], x ≥ 0}, x]FunctionConvexity[Abs[x], x, StrictInequalities -> True]FunctionConvexity[x ^ 2 Abs[x], x, StrictInequalities -> True]Plot[{Abs[x], x ^ 2Abs[x]}, {x, -2, 2}]FunctionConvexity[x ^ 2 + y ^ 2, {x, y}]Plot3D[x ^ 2 + y ^ 2, {x, -2, 2}, {y, -2, 2}]FunctionConvexity[x ^ 2 - y ^ 2, {x, y}]Plot3D[x ^ 2 - y ^ 2, {x, -2, 2}, {y, -2, 2}]FunctionConvexity[{x ^ 3 + x ^ 2 y ^ 2 + y ^ 3, -2 < x < 2 && -2 < y < 2}, {x, y}]Plot3D[x ^ 3 + x ^ 2 y ^ 2 + y ^ 3, {x, -2, 2}, {y, -2, 2}]FunctionConvexity[{x ^ 3 + x ^ 2 y ^ 2 + y ^ 3, 0 < x < 2 && y > 0}, {x, y}]Plot3D[x ^ 3 + x ^ 2 y ^ 2 + y ^ 3, {x, 0, 2}, {y, 0, 2}]FunctionConvexity[a x ^ 2 + b x + c, x]FunctionConvexity[x ^ 2 + a x y + y ^ 2, {x, y}]オプション (5)
Assumptions (1)
FunctionConvexityは以下では条件付きの答を返す:
FunctionConvexity[x ^ 4 + a x ^ 2, x]FunctionConvexity[x ^ 4 + a x ^ 2, x, Assumptions -> a < 0]GenerateConditions (2)
デフォルトで,FunctionConvexityは記号パラメータについての条件を生成することがある:
FunctionConvexity[a x ^ 2 + b y ^ 2, {x, y}]GenerateConditionsNoneとすると,FunctionConvexityは条件付きの結果を返さずに失敗する:
FunctionConvexity[a x ^ 2 + b y ^ 2, {x, y}, GenerateConditions -> None]FunctionConvexity[a x ^ 2 + b y ^ 2, {x, y}, GenerateConditions -> False]FunctionConvexity[E ^ x / a ^ 2, x]GenerateConditionsAutomaticとすると,一般的に真である条件は報告されない:
FunctionConvexity[E ^ x / a ^ 2, x, GenerateConditions -> Automatic]PerformanceGoal (1)
PerformanceGoalを使って潜在的に高価な計算を避ける:
FunctionConvexity[x ^ 6 + a x ^ 2 y ^ 4 + b x ^ 4 y ^ 2 + y ^ 6, {x, y}, PerformanceGoal -> "Speed"]デフォルト設定は使用可能なすべてのテクニックを使って答を出そうとする:
FunctionConvexity[x ^ 6 + a x ^ 2 y ^ 4 + b x ^ 4 y ^ 2 + y ^ 6, {x, y}]StrictInequalities (1)
デフォルトで,FunctionConvexityは狭義ではない凸性を計算する:
FunctionConvexity[#, {x, y}]& /@ {x ^ 2, x ^ 2 + y ^ 2}StrictInequalitiesTrueとすると,FunctionConvexityは狭義の符号を計算する:
FunctionConvexity[#, {x, y}, StrictInequalities -> True]& /@ {x ^ 2, x ^ 2 + y ^ 2}GraphicsRow[Plot3D[#, {x, -2, 2}, {y, -2, 2}]& /@ {x ^ 2, x ^ 2 + y ^ 2}, ImageSize -> 400]アプリケーション (17)
基本的なアプリケーション (8)
FunctionConvexity[x ^ 2 - 1, x]Plot[x ^ 2 - 1, {x, -5, 5}, Rule[...]]FunctionConvexity[x - E ^ x, x]Plot[x - E ^ x, {x, -3, 3}, Rule[...]]FunctionConvexity[Sin[x], x]Plot[Sin[x], {x, -3Pi, 3Pi}, Rule[...]]FunctionConvexity[{Sin[x], 0 ≤ x ≤ Pi}, x, StrictInequalities -> True]FunctionConvexity[Abs[x], x]FunctionConvexity[Abs[x], x, StrictInequalities -> True]Plot[Abs[x], {x, -5, 5}, Rule[...]]FunctionConvexity[{Abs[x], x > 0}, x]FunctionConvexity[Norm[{x, y}, p], {x, y}, Assumptions -> p ≥ 1]FunctionConvexity[Norm[{x, y, z}, Infinity], {x, y, z}]FunctionConvexity[Norm[{x, y}, p], {x, y}, Assumptions -> p ≥ 1, StrictInequalities -> True]Plot3D[{Norm[{x, y}, 1], Norm[{x, y}, 2], Norm[{x, y}, Infinity]}, ...]f = x ^ 2 + Sin[x];
g = x Erf[x] + E ^ (-x ^ 2);FunctionConvexity[f, x]FunctionConvexity[g, x]FunctionConvexity[f + g, x]Plot[{f, g, f + g}, {x, -3, 3}]f = E ^ (x ^ 2);FunctionConvexity[f, x]FunctionConvexity[-f, x]Plot[{f, -f}, {x, -2, 2}]f = 3Abs[x];
g = E ^ x;FunctionConvexity[f, x]FunctionConvexity[g, x]FunctionConvexity[Max[f, g], x]Plot[{f, g, Max[f, g]}, {x, -2, 2}]アフィン関数は凸であり凹である.したがって,その最大値は凸である:
aff = Table[RandomReal[{-1, 1}]x + RandomReal[{-1, 1}]y + RandomReal[], {10}];FunctionConvexity[Max@@aff, {x, y}]Plot3D[Evaluate[Max@@aff], {x, -1, 1}, {y, -1, 1}, Mesh -> None]FunctionConvexity[Min@@aff, {x, y}]Plot3D[Evaluate[Min@@aff], {x, -1, 1}, {y, -1, 1}, Mesh -> None]二次の
は
が半正定値であるときかつそのときに限って凸である:
Subscript[A, 1] = {{1, 2}, {3, 4}};
Subscript[f, 1] = {x, y}.Subscript[A, 1].{x, y};PositiveSemidefiniteMatrixQ[Subscript[A, 1]]FunctionConvexity[Subscript[f, 1], {x, y}]Plot3D[Subscript[f, 1], {x, -1, 1}, {y, -1, 1}, Mesh -> None]Subscript[A, 2] = {{1, -2}, {3, 4}};
Subscript[f, 2] = {x, y}.Subscript[A, 2].{x, y};PositiveSemidefiniteMatrixQ[Subscript[A, 2]]FunctionConvexity[Subscript[f, 2], {x, y}]Plot3D[Subscript[f, 2], {x, -1, 1}, {y, -1, 1}, Mesh -> None]微積分 (2)
f = 5t + Cos[5t];FunctionMonotonicity[f, t]Plot[f, {t, -3, 3}]g = Integrate[f, {t, 0, x}]FunctionConvexity[g, x]Plot[g, {x, -3, 3}]f = E ^ -x + 25x ^ 2 + Sin[5x] - 100;FunctionConvexity[f, x]df = D[f, x]FunctionMonotonicity[df, x]ddf = D[df, x]FunctionSign[ddf, x]Plot[{f, df, ddf}, {x, -5, 5}]幾何 (4)
f = Log[3 ^ (x + 2 y) + Exp[y + z]] + x ^ 2 + y ^ 2 + z ^ 2;FunctionConvexity[f, {x, y, z}]ConvexRegionQを使って
が凸領域であることを確かめる:
reg = ImplicitRegion@@{f ≤ 1, {x, y, z}};ConvexRegionQ[reg]RegionPlot3D[f ≤ 1, ...]f = 3 - Exp[Norm[{x, y}, 3]];FunctionConvexity[f, {x, y}]ConvexRegionQを使って
が凸領域であることを確かめる:
reg = ImplicitRegion@@{f ≥ 1, {x, y}};ConvexRegionQ[reg]RegionPlot[f ≥ 1, {x, -1, 1}, {y, -1, 1}]f = Cosh[x];FunctionConvexity[f, x]ConvexRegionQを使って
が凸領域であることを確かめる:
reg = ImplicitRegion@@{f ≤ y, {x, y}};ConvexRegionQ[reg]Plot[f, {x, -2, 2}, Filling -> Top]f = Log[x];FunctionConvexity[{f, x > 0}, x]Plot[f, {x, 0, 2}, Filling -> Bottom]最適化 (3)
f = Ramp[x];FunctionConvexity[f, x]Plot[f, {x, -1, 1}]f = (x - 3y - 7) ^ 2 + (x + y - 5) ^ 2 + (2x - 3y - 4) ^ 2;FunctionConvexity[f, {x, y}, StrictInequalities -> True]{mval, mpoint} = Minimize[f, {x, y}]Show[{Plot3D[{f, mval}, {x, -5, 5}, {y, -5, 5}, PlotStyle -> Opacity[0.7]], Graphics3D[{Red, PointSize[Large], Point[{x, y, mval} /. mpoint]}]}]f = Exp[x] + Exp[y];FunctionConvexity[f, {x, y}, StrictInequalities -> True]Minimize[f, {x, y}]Plot3D[f, {x, -3, 3}, {y, -3, 3}]特性と関係 (2)
f = (Abs[x] ^ 3 + Abs[y] ^ 3) ^ (1 / 3);
g = Log[E ^ x + E ^ y];FunctionConvexity[#, {x, y}]& /@ {f, g, f + g, Max[f, g]}GraphicsGrid[Map[Plot3D[#, {x, -2, 2}, {y, -2, 2}]&, {{f, g}, {f + g, Max[f, g]}}, {2}], ImageSize -> 400]f = x ^ 4 - 12x Cos[x] - 4x ^ 2 Sin[x] + 12Sin[x]FunctionConvexity[f, x]Dを使って導関数を計算する:
g = D[f, {x, 2}]FunctionSignを使って導関数が非負であることを確かめる:
FunctionSign[g, x]Plot[{f, g}, {x, -7, 7}]関連するガイド
-
▪
- 関数と数列の特性
テキスト
Wolfram Research (2020), FunctionConvexity, Wolfram言語関数, https://reference.wolfram.com/language/ref/FunctionConvexity.html.
CMS
Wolfram Language. 2020. "FunctionConvexity." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FunctionConvexity.html.
APA
Wolfram Language. (2020). FunctionConvexity. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FunctionConvexity.html
BibTeX
@misc{reference.wolfram_2026_functionconvexity, author="Wolfram Research", title="{FunctionConvexity}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/FunctionConvexity.html}", note=[Accessed: 01-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_functionconvexity, organization={Wolfram Research}, title={FunctionConvexity}, year={2020}, url={https://reference.wolfram.com/language/ref/FunctionConvexity.html}, note=[Accessed: 01-November-2026]}