能不能用R语言按下面编程形式将正态分布改为指数分布,画出指数分布概率密度和分布函数?

默认分类 未结 1 1082
0o卡门序曲o0
0o卡门序曲o0 2023-03-21 09:32
1条回答
  • 2023-03-21 10:14

    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))

    如果只是画图,用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可以一图多线

    0 讨论(0)
提交回复