Ошибка в xy.coords (x, y, xlabel, ylabel, log): длины 'x' и 'y' различаются - PullRequest
0 голосов
/ 07 апреля 2020

Я определяю функцию и пытаюсь построить ее для x > max{b1,b2}:

b1<-1
b2<-2
b<-1
l<-1
fn <- function(x,b1,b2,b,l){
         result <- b/x * ((1-(sqrt(1-(b1/x)^l)*sqrt(1-(b2/x)^l)))^(- 1/l))
         return(result)
          } 
fn1 <- fn(x,b1,b2,b,l)
x<-seq(3,20,0.1)
plot(x,fn1,type="l")

Она работает для этих значений, но когда я изменяю x следующим образом x <-seq (3 100,0,1), он показывает ошибку: </p>

Error in xy.coords(x, y, xlabel, ylabel, log) : 'x' and 'y' lengths differ

Можете ли вы подсказать, в чем здесь ошибка? Как это можно удалить?

Ответы [ 2 ]

0 голосов
/ 07 апреля 2020

строка результатов в вашей функции имеет неправильный синтаксис. это должно быть следующим образом

result <- b/x*(1-(sqrt(1-(b1/x)^l)*sqrt(1-(b2/x)^l)))*(- 1/l)

Обратите внимание на различия:

  • нет [ ] используются, поскольку они имеют значение, отличное от ( ) в R.
  • умножения * были исправлены повсюду
0 голосов
/ 07 апреля 2020

Не уверен, какую операцию вы хотите после ч / б термина, но он читает [] как индекс, попробуйте:

fn <- function(x,b1,b2,b,l){
  result <- b/x * (1-(sqrt(1-(b1/x)^l)*sqrt(1-(b2/x)^l)))**(- 1/l)
  return(result)
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...