Как построить функцию с одной переменной для нескольких значений параметров? - PullRequest
0 голосов
/ 01 мая 2020

Добрый день!

У меня есть следующая функция переменной n:

P(n) = 1-(1-p)^n 
  • p - параметр в интервале [0, 1]

Я хочу построить эту одну размерную функцию с несколькими значениями p внутри одного и того же графика:

p=seq(0 , 1 , 0.1 ) 

Итак, я попытался для p = 0,1 и p = 0,9:

p=0.1

n <- seq(0, 100, 8) ;  y <- 1-(1-p)^n 

plot(n , y ,pch= 21,type = "o", col = "red", xlab = "n-values", ylab = "P(n) values ", main = "P(n)= 1-(1-p)^n ")

p=0.9

lines(n , 1-(1-p)^n , type="o", pch=16 , col="blue") 

legend(60 , 0.4, c("p=0.1","p=0.9"), cex=0.7, col=c("red", "blue"),pch=c(21, 16))

Это дает:

enter image description here

Проблема:

  • Я ищу элегантный способ построить эту функцию для всех значений p = seq (0,1,0.1) в пределах одного графика. Я хочу удалить эффект экстраполяции (я вообще хочу удалить символы pch, график должен содержать кривые с разными цветами и без эффекта экстраполяции сегментов).

  • я буду sh мой вопрос ясен.

    Заранее спасибо за помощь!

Ответы [ 2 ]

2 голосов
/ 01 мая 2020

Другой простой способ - заменить

lines(n , 1-(1-p)^n , type="o", pch=16 , col="blue") 

на

p = seq(0,1,0.1)
invisible(lapply(p, function(i) {lines(n, 1-(1-i)^n, type="o", col=i*10)}))
2 голосов
/ 01 мая 2020

Вы можете использовать outer и matplot, больше значений x и подходящую цветовую схему:

n <- seq(0, 100, length.out=200)
p <- seq(0.1, 1, 0.1)
f <- function(n, p) 1-(1-p)^n
M <- outer(n, p, "f")
col <- hcl.colors(length(p), "Spectral")
matplot(n, M, type = "l", col = col, lty = 1)
legend("bottomright", legend = p, col = col, lty = 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...