FailureDistribution[bexpr,{{x1,dist1},{x2,dist2},…}]
ブール式 bexpr がTrueであるときに頂上事象が起り xi がTrueのときに事象 xiが起ったような,信頼性分布が distiの事象 xiの系の故障分布を表す.
FailureDistribution
FailureDistribution[bexpr,{{x1,dist1},{x2,dist2},…}]
ブール式 bexpr がTrueであるときに頂上事象が起り xi がTrueのときに事象 xiが起ったような,信頼性分布が distiの事象 xiの系の故障分布を表す.
詳細
- FailureDistribution[bexpr,…]は故障の木の指定に対応する.
- ブール式 bexpr は系の構造関数としても知られている.
- よく使用される構造関数
-

Orゲート 
Andゲート ![TemplateBox[{BooleanCountingFunction, paclet:ref/BooleanCountingFunction}, RefLink, BaseStyle -> {2ColumnTableMod}][{k,n},n] TemplateBox[{BooleanCountingFunction, paclet:ref/BooleanCountingFunction}, RefLink, BaseStyle -> {2ColumnTableMod}][{k,n},n]](Files/FailureDistribution.ja/3.png)
アウトオブ
の系BooleanConsecutiveFunction[k,n] 連続する
アウトオブ
の系 - 構造関数 bexpr はどの正ユネイトブール関数でもよい.
- UnateQ[bexpr]を使ってブール式が正ユネイトかどうか検定することができる.
- 事象の信頼性分布 distiはPDF[disti,t]が t≤0のときにゼロの一変量分布でなければならない.
- 事象識別子 xiのFailureDistribution[bexpr,…]
-
xiTrue 事象 xiが起ったことを示す xiFalse 事象 xiがまだ起っていないことを示す - 時間 t におけるFailureDistribution[bexpr,{{x1,dist1},…}]の累積分布関数はProbability[bexpr/.{x1->t1≤t,…},{t1dist1,…}]で与えられる.
- FailureDistributionは,Mean,SurvivalFunction,HazardFunction,RandomVariate等の関数とともに使うことができる.
例題
すべて開く すべて閉じる例 (3)
2つの事象のどちらかが起った場合に頂上事象が起る系を定義する:
ℱ = FailureDistribution[x∨y, {{x, ExponentialDistribution[Subscript[λ, 1]]}, {y, ExponentialDistribution[Subscript[λ, 2]]}}];SurvivalFunction[ℱ, t]下層の事象が両方とも起った場合に頂上事象が起る系を定義する:
ℱ = FailureDistribution[x∧y, {{x, ExponentialDistribution[λ]}, {y, WeibullDistribution[α, β]}}];SurvivalFunction[ℱ, t]ℱ = FailureDistribution[x∨(y∧z), {{x, ExponentialDistribution[3]}, {y, ExponentialDistribution[1]}, {z, ExponentialDistribution[2]}}];Table[Plot[df[ℱ, t], {t, 0, 2}, PlotLabel -> df, PlotRange -> All], {df, {SurvivalFunction, HazardFunction, PDF, CDF}}]{Mean[ℱ], Median[ℱ]}//NProbability[t < 0.5, tℱ]スコープ (22)
基本的な用法 (5)
2つの事象のどちらかが起った場合に故障する系の故障までの平均時間を求める:
ℱ = FailureDistribution[x∨y, {{x, ExponentialDistribution[1]}, {y, ExponentialDistribution[2]}}];Mean[ℱ]2つの事象が両方とも起った場合に故障する系の生存関数を求める:
ℱ = FailureDistribution[x∧y, {{x, ExponentialDistribution[1]}, {y, LogNormalDistribution[2, 3]}}];SurvivalFunction[ℱ, t]3つの事象のうち2つの事象が起った場合に故障する系のSurvivalFunctionを求める:
{𝒟1, 𝒟2, 𝒟3} = {ExponentialDistribution[1], ExponentialDistribution[2], ExponentialDistribution[3]};ℱ = FailureDistribution[BooleanCountingFunction[{2, 3}, {x, y, z}], {{x, 𝒟1}, {y, 𝒟2}, {z, 𝒟3}}];SurvivalFunction[ℱ, t]Plot[%, {t, 0, 2}, Filling -> Axis, PlotRange -> All]ℱ = FailureDistribution[x∨y, {{x, LogNormalDistribution[1, 2]}, {y, WeibullDistribution[3, 4]}}];data = RandomVariate[ℱ, 10^5];Show[
Histogram[data, {0, 7, 1 / 3}, "PDF"],
Plot[Evaluate[PDF[ℱ, t]], {t, 0, 7}, PlotStyle -> Thick]]𝒟 = StandbyDistribution[ExponentialDistribution[Subscript[λ, 1]], {ExponentialDistribution[Subscript[λ, 2]]}];ℱ = FailureDistribution[x∨y, {{x, 𝒟}, {y, ExponentialDistribution[Subscript[λ, 3]]}}];Mean[ℱ]構造関数 (4)
𝒟 = ExponentialDistribution[1];ℱ = FailureDistribution[(x∧y)∧(z∨w), {{x, 𝒟}, {y, 𝒟}, {z, 𝒟}, {w, 𝒟}}];SurvivalFunction[ℱ, t]𝒟 = ExponentialDistribution[1];ℱ = FailureDistribution[Majority[x, y, z], {{x, 𝒟}, {y, 𝒟}, {z, 𝒟}}];SurvivalFunction[ℱ, t]Subscript[𝒟, c] = ExponentialDistribution[1];ℱ = FailureDistribution[BooleanCountingFunction[{3, 4}, {x, y, z, v}], {{x, Subscript[𝒟, c]}, {y, Subscript[𝒟, c]}, {z, Subscript[𝒟, c]}, {v, Subscript[𝒟, c]}}];SurvivalFunction[ℱ, t]ℱ = FailureDistribution[¬x⊽¬y, {{x, WeibullDistribution[α, β]}, {y, ErlangDistribution[k, λ]}}];CDF[ℱ, t]UnateQを使ってブール式が正ユネイトであるかどうか検定する:
UnateQ[¬x⊽¬y]パラメトリック寿命分布 (4)
LogNormalDistributionを含む任意のパラメトリック寿命分布を使う:
ℱ = FailureDistribution[x∧y, {{x, ExponentialDistribution[1]}, {y, LogNormalDistribution[1, 2]}}];NExpectation[t, tℱ, WorkingPrecision -> 16]ℱ = FailureDistribution[x∧y, {{x, ExponentialDistribution[λ]}, {y, GammaDistribution[2, β]}}];μ = Mean[ℱ]Plot3D[μ, {λ, 1 / 2, 4}, {β, 0, 2}]1つの事象がかなり遅れて起る場合,この事象が系の寿命を決定する:
Limit[μ, λ -> ∞] == Mean[GammaDistribution[2, β]]{Subscript[𝒟, 1], Subscript[𝒟, 2]} = {WeibullDistribution[2, β], ExponentialDistribution[1 / (Sqrt[π] β / 2)]};Mean /@ {Subscript[𝒟, 1], Subscript[𝒟, 2]}OrゲイトとAndゲイトがある系をこれらの分布とともに定義する:
{Subscript[ℱ, P], Subscript[ℱ, S]} = Map[FailureDistribution[#[x, y], {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}}]&, {Or, And}];Plot[Evaluate[Mean /@ {Subscript[ℱ, P], Subscript[𝒟, 1], Subscript[ℱ, S]}], {β, 0, 10}, PlotLegends -> {"SubscriptBox[ℱ, P]", "SubscriptBox[𝒟, 1]", "SubscriptBox[ℱ, S]"}]{Subscript[𝒟, 1] = PoissonDistribution[10], Subscript[𝒟, 2] = PoissonDistribution[11]};ℱ = FailureDistribution[x∨y, {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}}];NExpectation[t, tℱ]SurvivalFunctionをプロットする:
DiscretePlot[SurvivalFunction[ℱ, t], {t, 0, 10}]ノンパラメトリック寿命分布 (3)
SmoothKernelDistributionを使って航空機のガラス強度をモデル化する:
data = ExampleData[{"Statistics", "AirplaneGlass"}]𝒟 = TruncatedDistribution[{0, ∞}, SmoothKernelDistribution[data]]航空機のガラスが割れるか他の事象が起るかすると故障する系について考える:
ℱ = FailureDistribution[x∨y, {{x, 𝒟}, {y, ExponentialDistribution[1 / 30]}}];SurvivalFunction[ℱ, t]Plot[SurvivalFunction[ℱ, x], {x, 0, 50}]HistogramDistributionを使って事象をモデル化する:
hd = HistogramDistribution[RandomVariate[WeibullDistribution[1, 2], 1000]];2つないし3つの事象があるOrゲートについての生存関数をプロットする:
{Subscript[𝒟, two], Subscript[𝒟, three]} = {FailureDistribution[x∨y, {{x, hd}, {y, hd}}],
FailureDistribution[x∨y∨z, {{x, hd}, {y, hd}, {z, hd}}]};Plot[{SurvivalFunction[Subscript[𝒟, two], t], SurvivalFunction[Subscript[𝒟, three], t]}, {t, 0, 5}, Filling -> 0, Exclusions -> None, PlotLegends -> {"SubscriptBox[𝒟, two]", "SubscriptBox[𝒟, three]"}]EmpiricalDistributionを使って直接データから事象をモデル化する:
ExampleData[{"Statistics", "AirplaneGlass"}, "Description"]data = ExampleData[{"Statistics", "AirplaneGlass"}];ℰ = EmpiricalDistribution[data]Plot[SurvivalFunction[ℰ, t], {t, 0, 50}, PlotPoints -> 100]2つの事象のどちらかが系の故障の原因となる場合の生存関数をプロットする:
ℱ = FailureDistribution[x∨y, {{x, ℰ}, {y, GeometricDistribution[1 / 30]}}];Plot[SurvivalFunction[ℱ, t], {t, 0, 50}, PlotPoints -> 100]派生寿命分布 (6)
StandbyDistributionで事象をモデル化する:
{Subscript[𝒟, 1], Subscript[𝒟, 2]} = {ExponentialDistribution[1 / 10], ExponentialDistribution[2 / 5]};𝒮 = StandbyDistribution[Subscript[𝒟, 1], {Subscript[𝒟, 2], Subscript[𝒟, 2]}];ℱ = FailureDistribution[x∧y, {{x, Subscript[𝒟, 1]}, {y, 𝒮}}];Mean[ℱ]SurvivalFunctionをプロットする:
Plot[SurvivalFunction[ℱ, t]//Evaluate, {t, 0, 40}]{Subscript[𝒟, 1], Subscript[𝒟, 2], Subscript[𝒟, 3]} = {ExponentialDistribution[Subscript[λ, 1]], ExponentialDistribution[Subscript[λ, 2]], ExponentialDistribution[Subscript[λ, 3]]};Subscript[ℱ, 1] = FailureDistribution[x∨y, {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}}];ℱ = FailureDistribution[z∧v, {{z, Subscript[ℱ, 1]}, {v, Subscript[𝒟, 3]}}];Mean[ℱ]Mean[FailureDistribution[(x∨y)∧v, {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}, {v, Subscript[𝒟, 3]}}]]FullSimplify[%% - %]StandbyDistributionで事象をモデル化する:
{Subscript[𝒟, 1], Subscript[𝒟, 2]} = {StandbyDistribution[ExponentialDistribution[1], {ExponentialDistribution[2]}], ExponentialDistribution[3]};ℱ = FailureDistribution[x∨y, {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}}];Plot[Evaluate[SurvivalFunction[#, t]& /@ {Subscript[𝒟, 1], ℱ}], {t, 0, 4}, Filling -> 0, PlotLegends -> {"SubscriptBox[𝒟, 1]", "ℱ"}]1つの事象がParameterMixtureDistributionである系:
𝒟 = ParameterMixtureDistribution[GammaDistribution[2, β], βUniformDistribution[{1, 2}]];ℱ = FailureDistribution[x∧y, {{x, 𝒟}, {y, ExponentialDistribution[λ]}}];SurvivalFunction[ℱ, t]MixtureDistributionで2要素のコールドスタンバイ系をモデル化する:
{Subscript[𝒟, 1], Subscript[𝒟, 2], Subscript[𝒟, 3]} = {ExponentialDistribution[Subscript[λ, 1]], ExponentialDistribution[Subscript[λ, 2]], WeibullDistribution[α, β]};ℳ = MixtureDistribution[{p, 1 - p}, {TransformedDistribution[x + y, {xSubscript[𝒟, 1], ySubscript[𝒟, 2]}], Subscript[𝒟, 1]}];これをFailureDistributionで使って生存関数を計算する:
ℱ = FailureDistribution[x∨y, {{x, ℳ}, {y, Subscript[𝒟, 3]}}];SurvivalFunction[ℱ, t]//SimplifyStandbyDistributionとの等価性を示す:
SurvivalFunction[FailureDistribution[x∨y, {{x, StandbyDistribution[Subscript[𝒟, 1], {Subscript[𝒟, 2]}, p]}, {y, Subscript[𝒟, 3]}}], t]FullSimplify[%% - %]OrderDistributionを使って事象の寿命をモデル化することができる:
{Subscript[𝒟, 1], Subscript[𝒟, 2]} = {OrderDistribution[{ExponentialDistribution[3], 5}, 3], WeibullDistribution[1 / 10, 2]};ℱ = FailureDistribution[x∧y, {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}}];sf = SurvivalFunction[ℱ, t]SurvivalFunctionをプロットする:
Plot[sf, {t, 0, 2}]アプリケーション (6)
朝起きられないリスクをモデル化する.古くなった目覚まし時計をバックアップとして持っていると仮定する:
windUpAlarm = mechanicFaultWind∨forgetSettingWind∨forgetWinding;mainAlarm = powerOutage∨forgetSettingMain∨(electricalFault∨mechanicalFaultMain);noAlarm = windUpAlarm∧mainAlarm;vars = {electricalFault, forgetSettingMain, forgetSettingWind, forgetWinding, mechanicalFaultMain, mechanicFaultWind, powerOutage};dists = ExponentialDistribution /@ {1 / 15, 2, 2, 3, 2 / 100000, 1 / 10, 3};ℛ = ReliabilityDistribution[noAlarm, Transpose[{vars, dists}]];1年目のある時点で(目覚ましが鳴らないために)起きられない確率を求める:
CDF[ℛ, 1]//NMean[ℛ]//N炭鉱での問題の一つに,石炭の山の間の空洞に渡した橋からブルドーザーが落ちることがある.ブルドーザーは空洞の存在を知った上でその上に来ることもあれば,知らずに来ることもある:
dozerOverVoid = intentional∨unintentional;空洞は石炭の地中流出によって形成される.これは,コンベヤーベルトの下から石炭を搬出し開放供給機を撤去することで生じる:
subsurfaceFlow = conveyorOperation∧feeder;地表に流れがないことも原因となる.石炭が凍結すると地表の流れが止まる:
frozenArch = temperature∧inactivity∧waterContent;compaction = waterContent∧force;noSurfaceFlow = compaction∨frozenArch;dozerFalls = dozerOverVoid∧(subsurfaceFlow∧noSurfaceFlow);vars = {conveyorOperation, intentional, feeder, force, inactivity, temperature, unintentional, waterContent};lifetimes = ExponentialDistribution /@ {5.25, 0.00525, 1.768, 0.0175, 0.000175, 0.0175, 0.1075, 3.5};dists = Table[{vars[[i]], lifetimes[[i]]}, {i, Length[vars]}];ℱ = FailureDistribution[dozerFalls, dists];CDF[ℱ, 1]CDF[ℱ, 1] * 3371つの堆積山で事象が発生するまでの平均時間はおよそ60年である:
Mean[ℱ]水中のパイプラインの修理は水面下のドライメンテナンスキャビンを使って行われる.生命維持装置の部品の故障までの平均時間(単位:時間)とその寿命分布
は以下で与えられる:
T = {3571, 3571, 4667, 4667, 50000, 9802, 9802, 9802, 9802, 9802, 4667, 9802, 8633, 4667, 5000};Do[Subscript[𝒟, i] = ExponentialDistribution[1 / T[[i]]], {i, 15}]ℱairsupply = FailureDistribution[(Subscript[s, 1]∧Subscript[s, 2])∨Or@@Table[Subscript[s, i], {i, 3, 7}], Table[{Subscript[s, i], Subscript[𝒟, i]}, {i, 7}]];ℱexhaust = FailureDistribution[Or@@Table[Subscript[s, i], {i, 8, 11}], Table[{Subscript[s, i], Subscript[𝒟, i]}, {i, 8, 11}]];ℱairdetect = FailureDistribution[Or@@Table[Subscript[s, i], {i, 12, 15}], Table[{Subscript[s, i], Subscript[𝒟, i]}, {i, 12, 15}]];ℱ = FailureDistribution[airsupply∨exhaust∨airdetect, {{airsupply, ℱairsupply}, {exhaust, ℱexhaust}, {airdetect, ℱairdetect}}];典型的な作業時間は24時間である.作業の生存確率を計算する:
SurvivalFunction[ℱ, 24]//NNExpectation[t, tℱ]地球を巡る軌道上の宇宙船に推進力を与える推進装置について考える.デバイスのスイッチを切ってから推進力を与える事象をモデル化する:
dvals = {2×10^-4, 2×10^-4, 3×10^-3, 3×10^-3, 3×10^-3, 2×10^-2, 1×10^-2, 5×10^-5};Do[Subscript[𝒟, i] = ExponentialDistribution[dvals[[i]]], {i, 8}]ℱemergency = FailureDistribution[Subscript[e, 7]∨Subscript[e, 8], {{Subscript[e, 7], Subscript[𝒟, 7]}, {Subscript[e, 8], Subscript[𝒟, 8]}}];ℱtiming = FailureDistribution[Subscript[e, 5]∨Subscript[e, 6], {{Subscript[e, 5], Subscript[𝒟, 5]}, {Subscript[e, 6], Subscript[𝒟, 6]}}];relief1 = Subscript[e, 2]∨(Subscript[e, 3]∨(Subscript[e, 4]∨(timing∧emergency)));relief2 = Subscript[e, 1]∨(timing∧emergency);ℱ = FailureDistribution[relief1∧relief2, {{Subscript[e, 1], Subscript[𝒟, 1]}, {Subscript[e, 2], Subscript[𝒟, 2]}, {Subscript[e, 3], Subscript[𝒟, 3]}, {Subscript[e, 4], Subscript[𝒟, 4]}, {timing, ℱtiming}, {emergency, ℱemergency}}];Plot[SurvivalFunction[ℱ, t]//Evaluate, {t, 0, 300}, Filling -> Axis]NExpectation[t, tℱ]望まない推進力が6ヶ月間のミッション中に生じる確率を求める:
Probability[t < 6, tℱ]//N{Subscript[𝒟, 1], Subscript[𝒟, 2], Subscript[𝒟, 3], Subscript[𝒟, 4]} = {ExponentialDistribution[λ], WeibullDistribution[5, 6], ErlangDistribution[3, 1], WeibullDistribution[4, 4]};ℱ = FailureDistribution[x∧BooleanCountingFunction[{2, 3}, {y, z, v}], {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}, {z, Subscript[𝒟, 3]}, {v, Subscript[𝒟, 4]}}];5日間のミッション中に故障しないように確率
で故障率
となる必要条件を求める:
Reduce[SurvivalFunction[ℱ, 5.] ≥ .9995, λ, Reals]FailureDistributionは一般化されたOrderDistributionとして使うことができる:
{Subscript[𝒟, 1], Subscript[𝒟, 2], Subscript[𝒟, 3], Subscript[𝒟, 4]} = Array[ExponentialDistribution[Subscript[λ, #]]&, 4];GeneralizedOrderDistribution[dists_List, k_] :=
Module[{n = Length[dists]}, FailureDistribution[BooleanCountingFunction[{k, n}, Array[Subscript[x, #]&, n]], Array[{Subscript[x, #], dists[[#]]}&, n]]
]SurvivalFunction[GeneralizedOrderDistribution[{Subscript[𝒟, 1], Subscript[𝒟, 2], Subscript[𝒟, 3], Subscript[𝒟, 4]}, 2], t] /. Subscript[λ, i_] -> λ同一分布が使われた場合,これはOrderDistributionに等しい:
SurvivalFunction[OrderDistribution[{ExponentialDistribution[λ], 4}, 2], t]% - %%//FullSimplify特性と関係 (12)
FailureDistributionは入力中の変数に局所名を使う:
ℱ = FailureDistribution[x∨y, {{x, ExponentialDistribution[Subscript[λ, 1]]}, {y, ExponentialDistribution[Subscript[λ, 2]]}}]したがって,続く計算はもとの変数名を使って行うことができる:
SurvivalFunction[ℱ, x]{Subscript[𝒟, 1], Subscript[𝒟, 2]} = {ExponentialDistribution[Subscript[λ, 1]], ExponentialDistribution[Subscript[λ, 2]]};Probability[¬(τ > Subscript[t, 1]∨τ > Subscript[t, 2]), {Subscript[t, 1]Subscript[𝒟, 1], Subscript[t, 2]Subscript[𝒟, 2]}]//SimplifyこれはOrゲートに対応する:
SurvivalFunction[FailureDistribution[x∨y, {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}}], τ]FullSimplify[%% - %]{Subscript[𝒟, 1], Subscript[𝒟, 2]} = {ExponentialDistribution[Subscript[λ, 1]], ExponentialDistribution[Subscript[λ, 2]]};Probability[¬(τ > Subscript[t, 1]∧τ > Subscript[t, 2]), {Subscript[t, 1]Subscript[𝒟, 1], Subscript[t, 2]Subscript[𝒟, 2]}]//SimplifyこれはAndゲートに対応する:
SurvivalFunction[FailureDistribution[x∧y, {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}}], τ]FullSimplify[%% - %]{Subscript[𝒟, 1], Subscript[𝒟, 2], Subscript[𝒟, 3]} = {ExponentialDistribution[Subscript[λ, 1]], ExponentialDistribution[Subscript[λ, 2]], ExponentialDistribution[Subscript[λ, 3]]};Probability[¬BooleanCountingFunction[{2, 3}, {τ > Subscript[t, 1], τ > Subscript[t, 2], τ > Subscript[t, 3]}], {Subscript[t, 1]Subscript[𝒟, 1], Subscript[t, 2]Subscript[𝒟, 2], Subscript[t, 3]Subscript[𝒟, 3]}]//SimplifySurvivalFunction[FailureDistribution[BooleanCountingFunction[{2, 3}, {x, y, z}], {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}, {z, Subscript[𝒟, 3]}}], τ]FullSimplify[%% - %]同一事象を繋ぐOrゲートはOrderDistributionに対応する:
d = ExponentialDistribution[λ];ℱ = FailureDistribution[x∨y∨z, {{x, d}, {y, d}, {z, d}}];SurvivalFunction[ℱ, t] - SurvivalFunction[OrderDistribution[{d, 3}, 1], t]//FullSimplify同一事象を繋ぐAndゲートはOrderDistributionに対応する:
ℱ = FailureDistribution[x∧y∧z, {{x, d}, {y, d}, {z, d}}];SurvivalFunction[ℱ, t] - SurvivalFunction[OrderDistribution[{d, 3}, 3], t]//FullSimplify同一事象を伴うボーティングゲートはOrderDistributionに対応する:
ℱ = FailureDistribution[BooleanCountingFunction[{2, 4}, {x, y, z, v}], {{x, d}, {y, d}, {z, d}, {v, d}}];SurvivalFunction[ℱ, t] - SurvivalFunction[OrderDistribution[{d, 4}, 2], t]//FullSimplifyOrゲートで繋がれた基本事象の寿命は部品の寿命の最低のものである:
{Subscript[𝒟, 1], Subscript[𝒟, 2]} = {ExponentialDistribution[Subscript[λ, 1]], ExponentialDistribution[Subscript[λ, 2]]};ℱ = FailureDistribution[x∨y, {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}}];𝒯 = TransformedDistribution[Min[t, s], {tSubscript[𝒟, 1], sSubscript[𝒟, 2]}];SurvivalFunction[𝒯, t] - SurvivalFunction[ℱ, t]//FullSimplifyAndゲートで繋がれた2つの事象の寿命はその事象の寿命の最大のものである:
{Subscript[𝒟, 1], Subscript[𝒟, 2]} = {ExponentialDistribution[Subscript[λ, 1]], ExponentialDistribution[Subscript[λ, 2]]};ℱ = FailureDistribution[x∧y, {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}}];𝒯 = TransformedDistribution[Max[t, s], {tSubscript[𝒟, 1], sSubscript[𝒟, 2]}];SurvivalFunction[ℱ, t]SurvivalFunction[𝒯, t]FullSimplify[%% - %]
アウトオブ
のボーティングゲートはRankedMin関数を伴うTransformedDistributionに対応する:
{Subscript[𝒟, 1], Subscript[𝒟, 2], Subscript[𝒟, 3]} = {ExponentialDistribution[Subscript[λ, 1]], WeibullDistribution[1, β], ExponentialDistribution[Subscript[λ, 3]]};ℱ = FailureDistribution[BooleanCountingFunction[{2, 3}, {x, y, z}], {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}, {z, Subscript[𝒟, 3]}}];𝒯 = TransformedDistribution[RankedMin[{x, y, z}, 2], {xSubscript[𝒟, 1], ySubscript[𝒟, 2], zSubscript[𝒟, 3]}];SurvivalFunction[ℱ, t]SurvivalFunction[𝒯, t]FullSimplify[%% - %]Orゲートで繋がれた指数分布に従う事象は指数的な頂上事象を与える:
Subscript[𝒟, c] = ExponentialDistribution[λ];ℱ = FailureDistribution[x∨y∨z, {{x, Subscript[𝒟, c]}, {y, Subscript[𝒟, c]}, {z, Subscript[𝒟, c]}}];SurvivalFunction[ℱ, t]SurvivalFunction[ExponentialDistribution[3λ], t]Orゲートで繋がれたワイブル(Weibull)分布に従う事象はワイブル分布に従う頂上事象を与える:
Subscript[𝒟, c] = WeibullDistribution[α, β];ℱ = FailureDistribution[x∨y∨z, {{x, Subscript[𝒟, c]}, {y, Subscript[𝒟, c]}, {z, Subscript[𝒟, c]}}];SurvivalFunction[ℱ, t]SurvivalFunction[WeibullDistribution[α, 3^-1 / α (β^-α)^-1 / α], t]FullSimplify[%% - %, DistributionParameterAssumptions[ℱ]]FailureDistributionは
あるいは
が故障すると頂上事象が起ることをモデル化する:
ℱ = FailureDistribution[x∨y, {{x, ExponentialDistribution[λ]}, {y, ExponentialDistribution[μ]}}];ReliabilityDistributionは系が動くためには両方の部品が動かなくてはならないことをモデル化する:
ℛ = ReliabilityDistribution[x∧y, {{x, ExponentialDistribution[λ]}, {y, ExponentialDistribution[μ]}}];部品
と
が動くことは
と
のどちらかが故障することに等しい:
SurvivalFunction[ℛ, t] == SurvivalFunction[ℱ, t]4つの部品のうち2つが故障すると系が故障する場合をモデル化する:
{Subscript[𝒟, 1], Subscript[𝒟, 2], Subscript[𝒟, 3], Subscript[𝒟, 4]} = {ExponentialDistribution[Subscript[λ, 1]], ExponentialDistribution[Subscript[λ, 2]], ExponentialDistribution[Subscript[λ, 3]], ExponentialDistribution[Subscript[λ, 4]]};ℱ = FailureDistribution[BooleanCountingFunction[{2, 4}, {x, y, z, v}], {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}, {z, Subscript[𝒟, 3]}, {v, Subscript[𝒟, 4]}}];これは,系が動くためには4つの部品のうち3つが必要な場合に等しい:
ℛ = ReliabilityDistribution[BooleanCountingFunction[{3, 4}, {x, y, z, v}], {{x, Subscript[𝒟, 1]}, {y, Subscript[𝒟, 2]}, {z, Subscript[𝒟, 3]}, {v, Subscript[𝒟, 4]}}];SurvivalFunction[ℛ, t] - SurvivalFunction[ℱ, t]//FullSimplify考えられる問題 (3)
ℱ = FailureDistribution[x∨y, {{x, NormalDistribution[6, 2]}, {y, ExponentialDistribution[3]}}];SurvivalFunction[ℱ, x]TruncatedDistributionを使って正の値のみに領域を限定する:
ℱ = FailureDistribution[x∨y, {{x, TruncatedDistribution[{0, ∞}, NormalDistribution[6, 2]]}, {y, ExponentialDistribution[3]}}];SurvivalFunction[ℱ, t]//Simplifyℱ = FailureDistribution[x∨y, {{x, ExponentialDistribution[1]}, {y, InverseGaussianDistribution[1, 3, 1 / 2]}}];CDF[ℱ, t]CDF[ℱ, 0.5]FailureDistributionは正ユネイト構造式についてのみ明確に定義することができる:
decfn = ¬x∨y;SurvivalFunction[FailureDistribution[decfn, {{x, ExponentialDistribution[3]}, {y, ExponentialDistribution[3]}}], t]UnateQを使ってブール式が正ユネイトかどうか検定する:
UnateQ[decfn]incfn = ¬x⊽¬y;UnateQ[incfn]SurvivalFunction[FailureDistribution[incfn, {{x, ExponentialDistribution[3]}, {y, ExponentialDistribution[3]}}], t]おもしろい例題 (1)
1つの点から別の点に移るために,馬に乗る,車を運転する,戦車に乗る,船に乗るの選択肢がある.船に乗る際は鮫がいないことも必要である.故障までの平均時間を求める:
𝒟 = ExponentialDistribution[1];Mean[FailureDistribution[(\!\(\*Graphics3DBox[«2»]\)∨[image])∧\!\(\*Graphics3DBox[«2»]\)∧[image]∧\!\(\*Graphics3DBox[«2»]\), {{\!\(\*Graphics3DBox[«2»]\), 𝒟}, {[image], 𝒟}, {\!\(\*Graphics3DBox[«2»]\), 𝒟}, {[image], 𝒟}, {\!\(\*Graphics3DBox[«2»]\), 𝒟}}]]テキスト
Wolfram Research (2012), FailureDistribution, Wolfram言語関数, https://reference.wolfram.com/language/ref/FailureDistribution.html.
CMS
Wolfram Language. 2012. "FailureDistribution." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FailureDistribution.html.
APA
Wolfram Language. (2012). FailureDistribution. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FailureDistribution.html
BibTeX
@misc{reference.wolfram_2026_failuredistribution, author="Wolfram Research", title="{FailureDistribution}", year="2012", howpublished="\url{https://reference.wolfram.com/language/ref/FailureDistribution.html}", note=[Accessed: 08-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_failuredistribution, organization={Wolfram Research}, title={FailureDistribution}, year={2012}, url={https://reference.wolfram.com/language/ref/FailureDistribution.html}, note=[Accessed: 08-September-2026]}