> 其他 >
能不能用R语言按下面编程形式将正态分布改为指数分布,画出指数分布概率密度和分布函数?
sigma=1
u=c(-2,0,2)
#计算和绘图
x=seq(-6,6,0.1)
t1=t2=list()
for(i in 1:3){
t1[[i]]=dnorm(x,u[i],sigma)
t2[[i]]=pnorm(x,u[i],sigma)
}
par(mar=c(2,2,2,1))
plot(x,t1[[1]],xlim=c(-6,6),type="l",lty=2,col=2) #概率分布图
lines(x,t1[[2]])
lines(x,t1[[3]],col=4,lty=3)
text(u,0.35,paste("u=",u,sep=""),col=c(2,1,4))
plot(x,t2[[1]],xlim=c(-6,6),type="l",lty=2,col=2) #累计分布图
lines(x,t2[[2]])
lines(x,t2[[3]],col=4,lty=3)
text(u,0.5,paste("u=",u,sep=""),col=c(2,1,4))
人气:108 ℃ 时间:2020-03-28 18:55:19
解答
如果只是画图,用curve()函数就好了
画正态密度:curve(dnorm,xlim=c(-3,3),col=2)
xlim是控制x轴显示从哪儿到哪儿,col是控制曲线颜色
画指数密度:curve(dexp(x,rate=1),xlim=c(0,5))
画指数分布:curve(pexp(x,rate=1),xlim=c(0,5))
你的方法是生成很多点x=seq(-6,6,0.1)
逐一算出函数值
t1[[i]]=dnorm(x,u[i],sigma)
t2[[i]]=pnorm(x,u[i],sigma)
最后在plot出来,用type="l"和lty=2的虚线弄出来.
curve这些功能都可以做到.
curve(dexp(x,rate=1),xlim=c(0,5),lty=2,add=T)就有虚线,
add=T可以一图多线
推荐
猜你喜欢
© 2024 79432.Com All Rights Reserved.
电脑版|手机版