function ss = tweedie_safety_stock2(p, mu, phi, P) ss = mu; delta = 0.1; tol = 1e-6; while true Q = tweedie_cdf(p, mu, phi, ss); if abs(Q - P) < tol break; end if Q < P ss = ss + delta; else ss = ss - delta; delta = delta / 2; end end disp(ss); end function Q = tweedie_cdf(p, mu, phi, x) if p == 1 Q = poisscdf(x, mu); elseif p == 2 Q = gamcdf(x, phi, mu/phi); else Q = exp(tweedie_logcdf(p, mu, phi, x)); end end function logQ = tweedie_logcdf(p, mu, phi, x) if x == 0 if p < 1 logQ = -inf; else logQ = log(1 - p) + log(mu^(1-p)/((1-p)*phi^(1-p))); end elseif x < 0 logQ = -inf; else logQ = -1/p * log(x/phi) - (x/phi)^(1-p)/(1-p) + ... (1/p - 1/2) * log(x/mu) + (x/mu)^(1- p)/(1-p); end end为什么显示不了结果
时间: 2024-03-31 17:32:37 浏览: 41
藏经阁-large-scaled insurance analytics using tweedie models in apa
这段代码并没有调用tweedie_safety_stock2函数,因此并没有执行函数内部的代码。如果要显示结果,需要在代码中调用该函数并提供函数需要的输入参数。例如,可以在代码最后添加如下语句来调用该函数:
```
ss = tweedie_safety_stock2(1.5, 10, 1.2, 0.8);
```
这里假设需要求解的Tweedie分布的参数为p=1.5,均值为mu=10,离散度参数为phi=1.2,需保护的概率为P=0.8。这样,函数将会返回计算出的安全库存量,并用disp函数将结果打印出来。
阅读全文