NExpectation[expr,xdist]
x が確率分布 dist に従うという仮定の下に expr の期待値を数値で与える.
NExpectation[expr,{x1,x2,…}dist]
{x1,x2,…}が多変量分布 dist に従うという仮定の下に expr の期待値を数値で与える.
NExpectation[expr,{x1dist1,x2dist2,…}]
x1, x2, … が独立であり分布 dist1, dist2, …に従うという仮定の下に expr の期待値を数値で与える.
NExpectation[exprpred,…]
pred である場合の expr の条件付き期待値を数値として与える.
NExpectation
NExpectation[expr,xdist]
x が確率分布 dist に従うという仮定の下に expr の期待値を数値で与える.
NExpectation[expr,{x1,x2,…}dist]
{x1,x2,…}が多変量分布 dist に従うという仮定の下に expr の期待値を数値で与える.
NExpectation[expr,{x1dist1,x2dist2,…}]
x1, x2, … が独立であり分布 dist1, dist2, …に従うという仮定の下に expr の期待値を数値で与える.
NExpectation[exprpred,…]
pred である場合の expr の条件付き期待値を数値として与える.
詳細とオプション
- xdist は x
dist
dist またはr x \[Distributed]dist と入力できる. - exprpred は expr
cond
pred または expr \[Conditioned]pred と入力できる. - NExpectationは,総和と積分に数値メソッドが使われる点を除いて,Expectationと同じように働く.
- 連続分布 dist では,expr の期待値は
で与えられる.ただし,
は dist の確率密度関数で積分は dist の領域で行われるものとする. - 離散分布 dist では,expr の期待値は
で与えられる.ただし,
は dist の確率密度関数であり,総和は dist の領域で行われるものとする. - NExpectation[expr,{x1dist1,x2dist2}]はNExpectation[NExpectation[expr,x2dist2],x1dist1]に対応するので,最後の変数が最初に合計されたり積分されたりする.
- N[Expectation[…]]は,記号的には期待値が求まらない場合はNExpectationを呼び出す.
- 使用可能なオプション
-
AccuracyGoal ∞ 目標とする絶対確度の桁数 PrecisionGoal Automatic 目標とする精度の桁数 WorkingPrecision MachinePrecision 内部計算で使用する精度 Method Automatic 使用するメソッド TargetUnits Automatic 出力で表示する単位
例題
すべて開く すべて閉じる例 (3)
NExpectation[2x + 3, xNormalDistribution[]]NExpectation[x ^ 2 + 7x + 8, xPoissonDistribution[2.7]]NExpectation[x ^ 2 + 3y ^ 2 + 11, {x, y}DirichletDistribution[{1, 4, 5}]]NExpectation[x ^ 3 + 4y - 11z / 5, {x, y, z}MultinomialDistribution[10, {1 / 2, 1 / 3, 1 / 6}]]NExpectation[(x - 1)^2 + E ^ (-x), xNormalDistribution[]]NExpectation[Abs[2x - 1], xExponentialDistribution[3]]NExpectation[x ^ 2 + E ^ (x + y), {x, y}DirichletDistribution[{2, 3, 4}]]NExpectation[x^2 + 1x > 1 / 2, xLaplaceDistribution[0, 1 / 2]]NExpectation[x + y^2 - (3/10)(1 / 2 < x < 3 / 4), {x, y}DirichletDistribution[{1, 3, 4}]]スコープ (28)
基本的な用法 (9)
NExpectation[3x ^ 2 + 5, xNormalDistribution[]]NExpectation[2x + 7, xPoissonDistribution[1]]NExpectation[5x + 3y ^ 2 + 11, {x, y}UniformDistribution[{{2, 3}, {4, 11}}]]NExpectation[3x ^ 2 + 8x y + Abs[y - 5], {x, y}DiscreteUniformDistribution[{{2, 3}, {4, 11}}]]NExpectation[2x + 3y ^ 2 + 11, {xExponentialDistribution[1], yNormalDistribution[]}]NExpectation[x + 21 / 2 < x ^ 2 < 5, xExponentialDistribution[2]]NExpectation[x ^ 2 + 12x > 2, xPoissonDistribution[3]]NExpectation[(x + y)(y > 1 / 3), {x, y}DirichletDistribution[{1, 3, 4}]]NExpectation[x + y + 5z > 2, {x, y, z}MultinomialDistribution[10, {1 / 3, 1 / 2, 1 / 6}]]NExpectation[x + y ^ 2 + z ^ 2(x == 1 / 7∧y == 1 / 4), {x, y, z}DirichletDistribution[{1, 3, 4, 7}]]記号評価が失敗した場合はN[Expectation[…]]を適用してNExpectationを呼び出す:
f[x_ ? NumericQ] := x ^ 2 + 3x ^ 4Expectation[f[x], xNormalDistribution[]]N[%]NExpectation[f[x], xNormalDistribution[]]NExpectation[(x + 3) / (x + 5), xExponentialDistribution[2]]NExpectation[E ^ (-3x ^ 2) + 1, xExponentialDistribution[2]]NExpectation[Piecewise[{{5, x < 1}, {x ^ 2 + 3, x ≥ 1}}], xExponentialDistribution[2]]NExpectation[E ^ (I x), xUniformDistribution[{3, 4}]]exact = Expectation[x + y ^ 2, {x, y}DirichletDistribution[{1, 3, 4}]]p1 = NExpectation[x + y ^ 2, {x, y}DirichletDistribution[{1, 3, 4}]]p1 - exactp2 = NExpectation[x + y ^ 2, {x, y}DirichletDistribution[{1, 3, 4}], WorkingPrecision -> 20]p2 - exactp3 = NExpectation[x + y ^ 2, {x, y}DirichletDistribution[{1, 3, 4}], WorkingPrecision -> 20, AccuracyGoal -> 5]p3 - exactNExpectation[x[3] ^ 2 + x[3] + 3E ^ (-x[3]), xPoissonProcess[4]]dist = RandomVariate[NormalDistribution[], 1000];NExpectation[x ^ 2 + 3x + 11, xdist]数量の使用 (4)
NExpectation[Quantity[x, "Meters"] * Quantity[3, "Feet"], xLogNormalDistribution[2, 3]]NExpectation[Quantity[v, "Meters" / "Seconds"] Quantity[t, "Minutes"], {vMaxwellDistribution[5], tGammaDistribution[6, 0.3]}]QuantityDistributionを使って指定された期待値を求める:
freq𝒟 = UniformDistribution[{Quantity[2, "Hertz"], Quantity[5, "Hertz"]}]dur𝒟 = UniformDistribution[{Quantity[.5, "Seconds"], Quantity[.9, "Seconds"]}]ampl𝒟 = RayleighDistribution[Quantity[5, "Volts"]]NExpectation[a Sin[ω t], {ωfreq𝒟, tdur𝒟, aampl𝒟}]NExpectation[t1 - t2t1 > t2, {t1, t2}CopulaDistribution[{"FGM", 1 / 3}, {UniformDistribution[{Quantity[MixedMagnitude[{1, 15}], MixedUnit[{"Hours", "Minutes"}]], Quantity[2, "Hours"]}], UniformDistribution[{Quantity[80, "Minutes"], Quantity[MixedMagnitude[{1, 45}], MixedUnit[{"Hours", "Minutes"}]]}]}]]QuantityMagnitudeで期待値を計算する:
𝒟 = QuantityDistribution[NormalDistribution[0, .3], "Yards"];NExpectation[QuantityMagnitude[x, "Meters"] ^ 2, x𝒟]NExpectation[x ^ 2, Quantity[x, "Meters"]𝒟]パラメトリック分布 (4)
NExpectation[x + 1 / 2, xBetaDistribution[2, 3]]NExpectation[x ^ 2 + 7E ^ x, xUniformDistribution[{-2, 11}]]NExpectation[(x - 3) ^ 2 + 5UnitStep[x ^ 2 - 1], xNormalDistribution[0, 1]]NExpectation[E ^ (-x) + 3x, xChiSquareDistribution[5]]NExpectation[x ^ 2 + 9, xBinomialDistribution[10, 2 / 3]]NExpectation[x + 10E ^ x, xDiscreteUniformDistribution[{5, 9}]]NExpectation[x ^ 3 + 12, xZipfDistribution[4]]NExpectation[E ^ (2x) + 3, xPoissonDistribution[1]]NExpectation[x + y ^ 2 + 7, {xUniformDistribution[{0, 1}], yLaplaceDistribution[0, 1]}]NExpectation[x ^ 6 + 3y + 1, {xNormalDistribution[0, 1], yExponentialDistribution[3.1]}]NExpectation[2x ^ 2 + y ^ 2 + z, {x, y, z}DirichletDistribution[{2, 3, 4, 7}]]NExpectation[x + y ^ 2, {x, y}ProductDistribution[DiscreteUniformDistribution[{2, 5}], BernoulliDistribution[1 / 7]]]NExpectation[x y ^ 2, {xGeometricDistribution[1 / 3], yPoissonDistribution[5]}]NExpectation[2x + 3y + z, {x, y, z}DiscreteUniformDistribution[{{2, 12}, {4, 11}, {-2, 7}}]]ノンパラメトリック分布 (2)
一変量のHistogramDistributionを使う:
𝒟 = HistogramDistribution[RandomVariate[ExponentialDistribution[2], 100]];NExpectation[x ^ 2 + x + 1, x𝒟]𝒟 = HistogramDistribution[RandomVariate[BinormalDistribution[1 / 3], 100]];NExpectation[x + y^2, {x, y}𝒟]一変量のKernelMixtureDistributionを使う:
𝒟 = KernelMixtureDistribution[RandomVariate[NormalDistribution[], 10]];NExpectation[x ^ 2 + 2x + 3, x𝒟]派生分布 (9)
TransformedDistributionを使って期待値を計算する:
NExpectation[x + 2, xTransformedDistribution[y ^ 2, yNormalDistribution[0, 1.4]]]NExpectation[y ^ 2 + 2, yNormalDistribution[0, 1.4]]ProductDistributionを使って期待値を求める:
NExpectation[x + y + 4, {x, y}ProductDistribution[ExponentialDistribution[2.78], TriangularDistribution[{3, 7}]]]NExpectation[x + y + 4, {xExponentialDistribution[2.78], yTriangularDistribution[{3, 7}]}]//TogetherNExpectation[E ^ x + 2, xMixtureDistribution[{1, 2}, {NormalDistribution[2, 3], NormalDistribution[4, 5]}]]NExpectation[2x + 3, x ParameterMixtureDistribution[
ExponentialDistribution[λ], λ UniformDistribution[{1, 2}]]]NExpectation[x ^ 2 + y + 4, {x, y}TruncatedDistribution[{{1 / 3, 1 / 2}, {1 / 6, 5 / 6}}, DirichletDistribution[{2, 4, 7}]]]NExpectation[UnitBox[x ^ 2 - 35], xCensoredDistribution[{5, 30}, TriangularDistribution[{1, 50}]]]NExpectation[x^2 + 13 x + 6E ^ x, xMarginalDistribution[DirichletDistribution[{1, 2, 3}], 1]]NExpectation[x^2 + 13 x + 6E ^ x, {x, y}DirichletDistribution[{1, 2, 3}]]NExpectation[x + y ^ 2 + 1, {x, y}CopulaDistribution[{"AMH", 1 / 5}, {UniformDistribution[{0, 1}], UniformDistribution[{0, 1}]}]]NExpectation[E ^ (-x ^ 2) + 2, xProbabilityDistribution[3 / 4(x ^ 2 + 2x), {x, 0, 1}]]オプション (7)
AccuracyGoal (1)
NExpectation[x ^ 3 + 1 / (x + 1), xExponentialDistribution[2]]AccuracyGoalを使って異なる確度の結果を得る:
NExpectation[x ^ 3 + 1 / (x + 1), xExponentialDistribution[2], AccuracyGoal -> 2]Method (3)
Method オプションを使って数値積分の二分法の反復回数を増やす:
dist = GammaDistribution[10 ^ 5, 1];
expr = x ^ 2 - 17 / 200000;NExpectation[expr, xdist, WorkingPrecision -> 30, Method -> {"NIntegrate", {MinRecursion -> 15, MaxRecursion -> 20}}]Expectationによる厳密な結果と比較する:
Expectation[expr, xdist]N[%, 30]NExpectation[x Sin[x] + 1, xNormalDistribution[]]NExpectation[x Sin[x] + 1, xNormalDistribution[], Method -> "MonteCarlo"]NExpectation[x Sin[x] + 1, xNormalDistribution[], Method -> {"MonteCarlo", "SamplingIncrement" -> 10 ^ 4}]NExpectation[E ^ (2x + 1), xNormalDistribution[]]この例はNIntegrateを使う:
NExpectation[E ^ (2x + 1), xNormalDistribution[], Method -> "Trace"]Activateを使って結果を評価する:
Activate[%]PrecisionGoal (1)
NExpectation[x + y ^ 2, {x, y}DirichletDistribution[{1, 3, 4}]]PrecisionGoalを使って異なる精度で結果を得る:
NExpectation[x + y ^ 2, {x, y}DirichletDistribution[{1, 3, 4}], PrecisionGoal -> 1]WorkingPrecision (1)
デフォルトで,NExpectationは機械精度を使う:
NExpectation[1 / (2x + 7), xExponentialDistribution[2]]WorkingPrecisionを使ってより高い精度で結果を得る:
NExpectation[1 / (2x + 7), xExponentialDistribution[2], WorkingPrecision -> 20]TargetUnits (1)
𝒟 = UniformDistribution[{1, 5} Quantity[1, "Seconds"]]Expectationはデフォルトで分布中に提供される数量を使う:
NExpectation[x ^ 2, x𝒟]NExpectation[x ^ 2, x𝒟, TargetUnits -> "Hours" ^ 2]アプリケーション (17)
分布の特性 (3)
NExpectation[x ^ 3, xChiSquareDistribution[5]]Moment[ChiSquareDistribution[5], 3]NExpectation[x, xPoissonDistribution[4]]Mean[PoissonDistribution[4]]dist = TruncatedDistribution[{1, 3}, ExponentialDistribution[2]];NExpectation[(x - Mean[dist]) ^ 2, xdist]Variance[dist]N[%]保険数理 (4)
ある保険会社の契約では,10を上限として損失を払い戻すことになっている.契約者の損失
は
では密度関数
の分布に従い,その他の場合は0である.保険契約下で支払われる給付金の期待値を求める:
NExpectation[x, xCensoredDistribution[{1, 10}, ProbabilityDistribution[2 / y ^ 3, {y, 1, Infinity}]]]ある保険会社では,月ごとの保険金支払い請求は,正の連続確率変数
でモデル化でき,その確率密度関数が
で
に比例する.この会社の月ごとの請求の期待値を求める:
dist = ProbabilityDistribution[3 / (1 + x) ^ 4, {x, 0, Infinity}];NExpectation[x, xdist]風によって家屋が被る被害に対する保険金支払い請求額は
については共通密度関数
の独立確率変数で,その他の場合は0である.
は千を単位とした請求額である.このような請求が3件あったとする.この3件のうち請求額が最も大きいものの期待値を求める:
1000NExpectation[Max[x, y, z], {x, y, z}ProductDistribution[{ProbabilityDistribution[3 / y ^ 4, {y, 1, Infinity}], 3}]]
は保険に加入していて事故に遭った車両の年齢を表しているとする.
は事故時点で当該車両の持ち主が保険に加入していた期間を表す.
と
の複合確率密度関数は
と
については
でその他の場合は0である.事故にあった車両が保険に加入していた期間の期待値を求める:
NExpectation[x, {x, y}ProbabilityDistribution[(10 - x y ^ 2) / 64, {x, 2, 10}, {y, 0, 1}], WorkingPrecision -> 2]スポーツ (2)
ランダムな実験 (2)
NExpectation[x, xOrderDistribution[{DiscreteUniformDistribution[{1, 6}], 4}, 1]]NExpectation[x, xOrderDistribution[{DiscreteUniformDistribution[{1, 6}], 4}, 4]]最大値3つの和の期待値を求める.恒等式
とExpectationの線形性を使うと以下が得られる:
NExpectation[x1 + x2 + x3 + x4, {x1, x2, x3, x4}ProductDistribution[{DiscreteUniformDistribution[{1, 6}], 4}]] - NExpectation[x, xOrderDistribution[{DiscreteUniformDistribution[{1, 6}], 4}, 1]]連続分布
に従うサイズ10のランダムサンプルが昇順で並べられている.新たな確率変量が生成された.11番目のサンプルが並べられているサンプルの小さい方から4番目と5番目の間に位置する確率を求める:
𝒟 = UniformDistribution[];n = 10;k = 4;NExpectation[Probability[x < z < y, z𝒟], {x, y}OrderDistribution[{𝒟, n}, {k, k + 1}]]Table[NExpectation[Probability[x < z < y, z𝒟], {x, y}OrderDistribution[{𝒟, n}, {k, k + 1}]], {k, 1, n - 1}]𝒟 = ExponentialDistribution[1];n = 6;Table[NExpectation[Probability[x < z < y, z𝒟], {x, y}OrderDistribution[{𝒟, n}, {k, k + 1}]], {k, 1, n - 1}]リスク分析 (2)
指標分布のテイルバリューアットリスク(TVaR)について考える:
MeanExcessLoss[dist_, d_] := NExpectation[ - d > d, dist]VaR[𝒟_, p_] := Quantile[𝒟, p]TVaR[dist_, p_] := VaR[dist, p] + MeanExcessLoss[dist, Quantile[dist, p]]MeanExcessLoss[ExponentialDistribution[2], 0.3]VaR[ExponentialDistribution[2], 0.3]r = Range[0.05, 0.95, 0.05];
ListLinePlot[Table[TVaR[ExponentialDistribution[λ], p], { λ, 1, 3, 0.5}, {p, r}], PlotLegends -> r]バリューアットリスクは,可能な損失額を過小評価することがある.株式の対数収益の2つのモデルを考える:
dist1 = NormalDistribution[];
dist2 = MixtureDistribution[{p, 1 - p}, {NormalDistribution[-4, 1], NormalDistribution[0.1, 1]}];99.5%レベルのバリューアットリスクが等しくなるように母数
を固定する:
VaR = InverseSurvivalFunction[dist1, 0.995]{sol} = NSolve[SurvivalFunction[dist2, VaR] == 0.995, p, Reals]次に,両方のモデルの期待損失を,これがバリューアットリスクを上回るものとして計算する:
loss1 = NExpectation[xx < VaR, xdist1]loss2 = NExpectation[xx < VaR, xdist2 /. sol]その他の応用 (4)
ある薬が40%のケースで有効であることが分かった.100ケースに処方された場合に成功数の期待値を求める:
NExpectation[x ^ 2, xBinomialDistribution[100, 0.4]]株式の対数収益が安定分布に従うものと仮定して,95%レベルのバリューアットリスクを求める:
log𝒟 = StableDistribution[1, 1.38, -0.177, -0.0006, 0.0297];VaR = InverseSurvivalFunction[log𝒟, 95 / 100]上記の分布を仮定して,現在のS&P 500指数値の95%のバリューアットリスクポイント損失額を計算する:
FinancialData["SP500"](Exp[VaR] - 1)esf = NExpectation[xx < VaR, xlog𝒟, Method -> "MonteCarlo"]FinancialData["SP500"](Exp[esf] - 1)ある場所では平均風速が秒速7メートルで形状母数2のワイブル分布に従うという:
Solve[Mean[WeibullDistribution[2, β]] == 7, β]Plot[24 365PDF[WeibullDistribution[2, (14/Sqrt[π])], x], {x, 0, 25}, AxesLabel -> {"m/s", "hours"}, Filling -> Axis]turbine = Interpolation[{{0., 0.}, {0.5, 0.}, {1., 0.}, {1.5, 0.}, {2., 0.}, {2.5, 0.}, {3., 0.}, {3.5, 0.}, {4., 36.}, {4.5, 66.}, {5., 104.}, {5.5, 150.}, {6., 205.}, {6.5, 269.}, {7., 344.}, {7.5, 428.}, {8., 528.}, {8.5, 644.}, {9., 774.}, {9.5, 926.5}, {10., 1079.}, {10.5, 1211.}, {11., 1342.}, {11.5, 1401.}, {12., 1460.}, {12.5, 1477.}, {13., 1494.}, {13.5, 1500.}, {14., 1500.}, {14.5, 1500.}, {15., 1500.}, {15.5, 1500.}, {16., 1500.}, {16.5, 1500.}, {17., 1500.}, {17.5, 1500.}, {18., 1500.}, {18.5, 1500.}, {19., 1500.}, {19.5, 1500.}, {20., 1500.}, {20.5, 1500.}, {21., 1500.}, {21.5, 1500.}, {22., 1500.}, {22.5, 1500.}, {23., 1500.}, {23.5, 1500.}, {24., 1500.}, {24.5, 1500.}, {25., 1500.}, {25.5, 0.}, {26., 0.}, {26.5, 0.}, {27., 0.}, {27.5, 0.}, {28., 0.}, {28.5, 0.}, {29., 0.}, {29.5, 0.}, {30., 0.}}];Plot[turbine[x], {x, 0, 25}, AxesLabel -> {"m/s", "kilowatts"}]1年間に生み出される総エネルギー量の平均は4.3GWhである:
NExpectation[24 365 turbine[x], xWeibullDistribution[2, (14/Sqrt[π])]]𝒟 = SmoothKernelDistribution[ N[Log[Table[GenomeData[i, "SequenceLength"], {i, 41}] ]]];Plot[PDF[𝒟, x], {x, 0, 30}, Filling -> Axis, Frame -> True]NExpectation[xx > Mean[𝒟], x𝒟]特性と関係 (7)
NExpectation[E ^ x, xNormalDistribution[]]NIntegrate[E ^ x PDF[NormalDistribution[], x], {x, -Infinity, Infinity}]NExpectation[E ^ x, xPoissonDistribution[1]]NSum[E ^ x PDF[PoissonDistribution[1], x], {x, -Infinity, Infinity}]Mean,Moment,Varianceその他の特性は,期待値として定義される:
dist = ExponentialDistribution[3.];{Mean[dist], NExpectation[x, xdist]}{Variance[dist], NExpectation[(x - Mean[dist]) ^ 2, xdist]}{Moment[dist, 5], NExpectation[x ^ 5, xdist]}{CentralMoment[dist, 5], NExpectation[(x - Mean[dist]) ^ 5, xdist]}{FactorialMoment[dist, 5], NExpectation[FactorialPower[x, 5], xdist]}Expectationを使って期待値の記号式を求める:
dist = ExponentialDistribution[1];NExpectation[E ^ (-x ^ 2), xdist]Expectation[E ^ (-x ^ 2), xdist]N[%]記号評価が失敗した場合,N[Expectation[…]]はNExpectationに等しい:
f[x_ ? NumericQ] := x ^ 2 + 2Expectation[f[x], xNormalDistribution[]]N[%]NExpectation[f[x], xNormalDistribution[]]AsymptoticExpectationを使って期待値の漸近近似を求める:
dist[b_] := ExponentialDistribution[b];AsymptoticExpectation[E ^ (-x ^ 2), xdist[b], {b, 0, 6}]% /. {b -> 0.14}NExpectation[E ^ (-x ^ 2), xdist[0.14]]NProbability[1 < x < 3, xExponentialDistribution[2]]NExpectationを使って同じ結果を得る:
NExpectation[Boole[1 < x < 3], xExponentialDistribution[2]]考えられる問題 (1)
NExpectationは,記号パラメータがある場合には,警告メッセージなしで失敗することがある:
NExpectation[x + 3, xExponentialDistribution[μ]]Expectationは,この例には閉形式の結果を与える:
Expectation[x + 3, xExponentialDistribution[μ]]関連するガイド
-
▪
- 確率・統計 ▪
- ランダムグラフ ▪
- 確率変数 ▪
- 行列の分布 ▪
- ソーシャルネットワーク分析 ▪
- 領域におけるソルバ ▪
- 確率・統計における数量
テキスト
Wolfram Research (2010), NExpectation, Wolfram言語関数, https://reference.wolfram.com/language/ref/NExpectation.html.
CMS
Wolfram Language. 2010. "NExpectation." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/NExpectation.html.
APA
Wolfram Language. (2010). NExpectation. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NExpectation.html
BibTeX
@misc{reference.wolfram_2026_nexpectation, author="Wolfram Research", title="{NExpectation}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/NExpectation.html}", note=[Accessed: 07-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_nexpectation, organization={Wolfram Research}, title={NExpectation}, year={2010}, url={https://reference.wolfram.com/language/ref/NExpectation.html}, note=[Accessed: 07-November-2026]}