# your code goes here
likelihood=function(x,y){
dlnorm(6700,x,y)*(1-plnorm(6950,x,y))*(1-plnorm(7820,x,y))*(1-plnorm(8790,x,y))*dlnorm(9120,x,y)*(1-plnorm(9660,x,y))*(1-plnorm(9820,x,y))*
(1-plnorm(11310,x,y))*(1-plnorm(11690,x,y))*(1-plnorm(11850,x,y))*(1-plnorm(11880,x,y))*(1-plnorm(12140,x,y))*dlnorm(12200,x,y)*
(1-plnorm(12870,x,y))*dlnorm(13150,x,y)*(1-plnorm(13330,x,y))*(1-plnorm(13470,x,y))*(1-plnorm(14040,x,y))*dlnorm(14300,x,y)*
dlnorm(17520,x,y)*(1-plnorm(17540,x,y))*(1-plnorm(17890,x,y))*(1-plnorm(18450,x,y))*(1-plnorm(18960,x,y))*(1-plnorm(18980,x,y))*
(1-plnorm(19410,x,y))*dlnorm(20100,x,y)*(1-plnorm(20100,x,y))*(1-plnorm(20150,x,y))*(1-plnorm(20320,x,y))*dlnorm(20900,x,y)*dlnorm(22700,x,y)*
(1-plnorm(23490,x,y))*dlnorm(26510,x,y)*(1-plnorm(27410,x,y))*dlnorm(27490,x,y)*(1-plnorm(27890,x,y))*(1-plnorm(28100,x,y))
}
mu=seq(10.1,10.2,0.001)
sigma=seq(0.5,0.55,0.001)
z=outer(mu,sigma,likelihood)
ans=contour(mu,sigma,z,label=seq(0,1,by=.1))
#求mle
optimize(likelihood,c(0,20),maximum=T)
nlminb(start = 0, obj = likelihood , lower = 0, upper = 1000)$par
#微分
likelihood2=expression(
dlnorm(6700,x,y)*(1-plnorm(6950,x,y))*(1-plnorm(7820,x,y))*(1-plnorm(8790,x,y))*dlnorm(9120,x,y)*(1-plnorm(9660,x,y))*(1-plnorm(9820,x,y))*
(1-plnorm(11310,x,y))*(1-plnorm(11690,x,y))*(1-plnorm(11850,x,y))*(1-plnorm(11880,x,y))*(1-plnorm(12140,x,y))*dlnorm(12200,x,y)*
(1-plnorm(12870,x,y))*dlnorm(13150,x,y)*(1-plnorm(13330,x,y))*(1-plnorm(13470,x,y))*(1-plnorm(14040,x,y))*dlnorm(14300,x,y)*
dlnorm(17520,x,y)*(1-plnorm(17540,x,y))*(1-plnorm(17890,x,y))*(1-plnorm(18450,x,y))*(1-plnorm(18960,x,y))*(1-plnorm(18980,x,y))*
(1-plnorm(19410,x,y))*dlnorm(20100,x,y)*(1-plnorm(20100,x,y))*(1-plnorm(20150,x,y))*(1-plnorm(20320,x,y))*dlnorm(20900,x,y)*dlnorm(22700,x,y)*
(1-plnorm(23490,x,y))*dlnorm(26510,x,y)*(1-plnorm(27410,x,y))*dlnorm(27490,x,y)*(1-plnorm(27890,x,y))*(1-plnorm(28100,x,y))
)
deriv(likelihood2, namevec = "x")
relative=function(x,y){
likelihood(x,0.53)/likelihood(10.14,0.53)
}
x=seq(9,12,0.001)
plot(x,relative(x),type="l")
abline(h=0.147,col=2)
relative2=function(x,y){
f=likelihood(x,0.5301)/likelihood(10.14,0.5301)
return(f-0.147)
}
uniroot(relative2,c(9.5,10))$root
uniroot(relative2,c(10.3,10.5))$root
abline(v=9.9253593,col=2)
abline(v=10.37615,col=2)
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCmxpa2VsaWhvb2Q9ZnVuY3Rpb24oeCx5KXsKICBkbG5vcm0oNjcwMCx4LHkpKigxLXBsbm9ybSg2OTUwLHgseSkpKigxLXBsbm9ybSg3ODIwLHgseSkpKigxLXBsbm9ybSg4NzkwLHgseSkpKmRsbm9ybSg5MTIwLHgseSkqKDEtcGxub3JtKDk2NjAseCx5KSkqKDEtcGxub3JtKDk4MjAseCx5KSkqCiAgICAoMS1wbG5vcm0oMTEzMTAseCx5KSkqKDEtcGxub3JtKDExNjkwLHgseSkpKigxLXBsbm9ybSgxMTg1MCx4LHkpKSooMS1wbG5vcm0oMTE4ODAseCx5KSkqKDEtcGxub3JtKDEyMTQwLHgseSkpKmRsbm9ybSgxMjIwMCx4LHkpKgogICAgKDEtcGxub3JtKDEyODcwLHgseSkpKmRsbm9ybSgxMzE1MCx4LHkpKigxLXBsbm9ybSgxMzMzMCx4LHkpKSooMS1wbG5vcm0oMTM0NzAseCx5KSkqKDEtcGxub3JtKDE0MDQwLHgseSkpKmRsbm9ybSgxNDMwMCx4LHkpKgogICAgZGxub3JtKDE3NTIwLHgseSkqKDEtcGxub3JtKDE3NTQwLHgseSkpKigxLXBsbm9ybSgxNzg5MCx4LHkpKSooMS1wbG5vcm0oMTg0NTAseCx5KSkqKDEtcGxub3JtKDE4OTYwLHgseSkpKigxLXBsbm9ybSgxODk4MCx4LHkpKSoKICAgICgxLXBsbm9ybSgxOTQxMCx4LHkpKSpkbG5vcm0oMjAxMDAseCx5KSooMS1wbG5vcm0oMjAxMDAseCx5KSkqKDEtcGxub3JtKDIwMTUwLHgseSkpKigxLXBsbm9ybSgyMDMyMCx4LHkpKSpkbG5vcm0oMjA5MDAseCx5KSpkbG5vcm0oMjI3MDAseCx5KSoKICAgICgxLXBsbm9ybSgyMzQ5MCx4LHkpKSpkbG5vcm0oMjY1MTAseCx5KSooMS1wbG5vcm0oMjc0MTAseCx5KSkqZGxub3JtKDI3NDkwLHgseSkqKDEtcGxub3JtKDI3ODkwLHgseSkpKigxLXBsbm9ybSgyODEwMCx4LHkpKQp9CgptdT1zZXEoMTAuMSwxMC4yLDAuMDAxKQpzaWdtYT1zZXEoMC41LDAuNTUsMC4wMDEpCno9b3V0ZXIobXUsc2lnbWEsbGlrZWxpaG9vZCkKYW5zPWNvbnRvdXIobXUsc2lnbWEseixsYWJlbD1zZXEoMCwxLGJ5PS4xKSkKCiPmsYJtbGUKb3B0aW1pemUobGlrZWxpaG9vZCxjKDAsMjApLG1heGltdW09VCkKbmxtaW5iKHN0YXJ0ID0gMCwgb2JqID0gbGlrZWxpaG9vZCAsIGxvd2VyID0gMCwgdXBwZXIgPSAxMDAwKSRwYXIKCiPlvq7liIYKbGlrZWxpaG9vZDI9ZXhwcmVzc2lvbigKICBkbG5vcm0oNjcwMCx4LHkpKigxLXBsbm9ybSg2OTUwLHgseSkpKigxLXBsbm9ybSg3ODIwLHgseSkpKigxLXBsbm9ybSg4NzkwLHgseSkpKmRsbm9ybSg5MTIwLHgseSkqKDEtcGxub3JtKDk2NjAseCx5KSkqKDEtcGxub3JtKDk4MjAseCx5KSkqCiAgICAoMS1wbG5vcm0oMTEzMTAseCx5KSkqKDEtcGxub3JtKDExNjkwLHgseSkpKigxLXBsbm9ybSgxMTg1MCx4LHkpKSooMS1wbG5vcm0oMTE4ODAseCx5KSkqKDEtcGxub3JtKDEyMTQwLHgseSkpKmRsbm9ybSgxMjIwMCx4LHkpKgogICAgKDEtcGxub3JtKDEyODcwLHgseSkpKmRsbm9ybSgxMzE1MCx4LHkpKigxLXBsbm9ybSgxMzMzMCx4LHkpKSooMS1wbG5vcm0oMTM0NzAseCx5KSkqKDEtcGxub3JtKDE0MDQwLHgseSkpKmRsbm9ybSgxNDMwMCx4LHkpKgogICAgZGxub3JtKDE3NTIwLHgseSkqKDEtcGxub3JtKDE3NTQwLHgseSkpKigxLXBsbm9ybSgxNzg5MCx4LHkpKSooMS1wbG5vcm0oMTg0NTAseCx5KSkqKDEtcGxub3JtKDE4OTYwLHgseSkpKigxLXBsbm9ybSgxODk4MCx4LHkpKSoKICAgICgxLXBsbm9ybSgxOTQxMCx4LHkpKSpkbG5vcm0oMjAxMDAseCx5KSooMS1wbG5vcm0oMjAxMDAseCx5KSkqKDEtcGxub3JtKDIwMTUwLHgseSkpKigxLXBsbm9ybSgyMDMyMCx4LHkpKSpkbG5vcm0oMjA5MDAseCx5KSpkbG5vcm0oMjI3MDAseCx5KSoKICAgICgxLXBsbm9ybSgyMzQ5MCx4LHkpKSpkbG5vcm0oMjY1MTAseCx5KSooMS1wbG5vcm0oMjc0MTAseCx5KSkqZGxub3JtKDI3NDkwLHgseSkqKDEtcGxub3JtKDI3ODkwLHgseSkpKigxLXBsbm9ybSgyODEwMCx4LHkpKQopCmRlcml2KGxpa2VsaWhvb2QyLCBuYW1ldmVjID0gIngiKQoKCnJlbGF0aXZlPWZ1bmN0aW9uKHgseSl7CiAgbGlrZWxpaG9vZCh4LDAuNTMpL2xpa2VsaWhvb2QoMTAuMTQsMC41MykgCn0KeD1zZXEoOSwxMiwwLjAwMSkKcGxvdCh4LHJlbGF0aXZlKHgpLHR5cGU9ImwiKQphYmxpbmUoaD0wLjE0Nyxjb2w9MikKCgpyZWxhdGl2ZTI9ZnVuY3Rpb24oeCx5KXsKICBmPWxpa2VsaWhvb2QoeCwwLjUzMDEpL2xpa2VsaWhvb2QoMTAuMTQsMC41MzAxKSAKICByZXR1cm4oZi0wLjE0NykKfQp1bmlyb290KHJlbGF0aXZlMixjKDkuNSwxMCkpJHJvb3QKdW5pcm9vdChyZWxhdGl2ZTIsYygxMC4zLDEwLjUpKSRyb290CgphYmxpbmUodj05LjkyNTM1OTMsY29sPTIpCmFibGluZSh2PTEwLjM3NjE1LGNvbD0yKQo=