Hello,
I wrote the following code:
tfail = [5571.760,5573.742,5654.457,6079.693,6081.927,6172.915,6515.064,6517.515,6617.308,7095.558,7098.298,7209.831,7530.929,7533.885,7654.224,7966.300,7969.472,8098.617,8401.671,8405.059,8543.009,8982.166,8985.843,9135.533,9852.908,9857.017,10024.38,10868.774,10873.387,11061.234];n=length(tfail);beta_hat = 4.2915822; B_hat = 1861.6186657; C_hat = 58.9848692;syms t B beta Cy(t) = (exp(-B/((heaviside(t)-heaviside(t-2000))*(330)+(heaviside(t-2000)-heaviside(t-3000))*(350)+... (heaviside(t-3000)-heaviside(t-14000))*(390))))/C;ogL=0;for i=1:n tfail(i); I(i) = int(y(t),t,0,tfail(i)); y_new(i)=subs(y,t,tfail(i)); logL =logL+log((beta*y_new(i)*(I(i))^(beta-1))*exp(-((I(i))^beta)));endp = int(y(t),t,0,14000);u = beta*log(p);du_dB = diff(u,B);du_dbeta = diff(u,beta);du_dC = diff(u,C);du_dB_sub = subs(du_dB,{beta,B,C},{beta_hat,B_hat,C_hat});du_dbeta_sub = subs(du_dbeta,{B,C},{B_hat,C_hat});du_dC_sub = subs(du_dC,{beta,B,C},{beta_hat,B_hat,C_hat});v=[beta;B;C]; H=hessian(logL,v); H_negatv=-1*H;
now I would like to calculate the inverse of H_negatv by using:
H_inverse=inv(H_negatv);
But that doesn´t work. So I tried out:
h = 1\H_negatv.
That´s good so far.
But now I would do sth. like that:
w=subs(h,[beta,B,C],[beta_hat,B_hat,C_hat]);F_direct = w;
In according to calculate:
Var_B_hat_direct = double(F_direct(2,2));
But I can´t do that in MATLAB.
Does somebody have an idea how to solve that problem?
Best Answer