ワイブル分布のパラメータについて

ワイブル分布を使うと故障率λ(t)、確率密度関数f(t)、信頼性R(t)と故障確率F(t)は以下のようなグラフになる。
f:id:seinzumtode:20200726153400p:plain
 R(t)=exp-\int_0^t \lambda(t) dtとしたところは、教科書では R(t)=exp-\int_t^\infty \lambda(t) dtとなっていた。しかし実際にMatlabで数値積分してみるとグラフの増加/減少関係が逆だったので、積分区間を[0,t]とした。

これをMatlabでシミュレーションしてみる。
区間のm=0.5, 1, 2として、 \lambda(t)のグラフで各区間の端点が整合するようにパラメータの \eta \gammaを選んだが、λを数値積分して確率密度関数を求め、それを数値微分すると誤差が生じてしまった。定性的な挙動は合っている。

clear all; close all;

f = @(m,eta,g,t) m/eta^m*(t-g).^(m-1);

t=0.1:0.1:2;
m=0.5; eta=3; g = 0;
lambda = f(m,eta,g,t);
subplot(311);
plot(t,lambda);
hold on;

t=2:0.1:6;
m=1; eta=5; g = 1;
lambda = f(m,eta,g,t);
plot(t,lambda);

t=6:0.1:10;
m=3.5; eta=7; g = 1;
lambda = f(m,eta,g,t);
plot(t,lambda);

syms x;
f = @(m,eta,g) m/eta^m*(x-g).^(m-1);

t=0.1:0.1:2;
m=0.5; eta=3; g = 0;
R(x) = exp(-int(f(m,eta,g),0,x));
subplot(312);
plot(t,R(t));hold on;
subplot(313);
pdf(x)=-diff(R);
plot(t,pdf(t));hold on;

t=2:0.1:6;
m=1; eta=5; g = 1;
R(x) = exp(-int(f(m,eta,g),0,x));
subplot(312);
plot(t,R(t));
subplot(313);
pdf(x)=-diff(R);
plot(t,pdf(t));

m=3.5; eta=7.071067812; g = 1;
t=6:0.1:10;
f = @(m,eta,g) m/eta^m*(x-g).^(m-1);
R(x) = exp(-int(f(m,eta,g),0,x));
subplot(312);
plot(t,R(t));
subplot(313);
pdf(x)=-diff(R);
plot(t,pdf(t));

subplot(311);title('Failure rate lambda');
subplot(312);title('Reliability R(t)');
subplot(313);title('Failure PDF f(t)');
sgtitle('Bathtub curve')

f:id:seinzumtode:20200726154608p:plain