Как построить график функции с несколькими параметрами - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь построить график этой функции function(x1,x2,x3,x4){2 * x2 * x4 + x3 ( x1 - 2 * x4)}, используя curve() в R. Тем не менее, меня встречают:

Ошибка в f1 (x): аргумент "x2"отсутствует, по умолчанию

x1 x2 x3 и x4 также должны иметь разные минимальные и максимальные значения, но я буду беспокоиться очто после того, как я смогу просто показать любой график

Ответы [ 2 ]

1 голос
/ 13 апреля 2019

Кривая
Как я уже упоминал в своем комментарии, я не понимаю, почему вы хотите использовать curve, так как он построен для приема одного диапазона чиселнапример, 1,2,3,4, а затем применяет формулу к нему.Это упрощает построение графика, поскольку входные числа образуют ось X (таким образом, 1,2,3,4 ...), а результаты формулы отображаются на оси Y.В вашем случае у вас нет одного входного диапазона (на самом деле у вас есть четыре диапазона: x1, x2, x3 и x4), и вы не можете построить график в 5D, поэтому вам нужно выбрать один из x1:x4 для отображения на оси х.Также у вас есть 2 * x2 * x4 + x3 ( x1 - 2 * x4) в качестве формулы, однако .. x3 ( .. не может быть напрямую интерпретировано R, поэтому я добавил *, чтобы сделать 2 * x2 * x4 + x3 * ( x1 - 2 * x4) , однако, если вы имели в виду, что X3 следует умножать на числа в скобках, вы должны отредактировать формулу вприведенный ниже код .

Альтернатива
Как вы упомянули, "x1 x2 x3 и x4 также должны иметь разные минимальные и максимальные значения", я бы предложил простонапишите свою собственную функцию построения графика, вот так (я теперь отобразил x1 на оси X):

range.plot <- function( func, x1.range, x2.range, x3.range, x4.range ) {
  # Apply formula
  res <- data.frame(x = x1.range, y = func(x1.range, x2.range, x3.range, x4.range))

  # Plot using ggplot2
  ggplot(res, aes(x, y)) + geom_line()
}


fun <- function(x1,x2,x3,x4){2 * x2 * x4 + x3 * ( x1 - 2 * x4)} # note the added *
range.plot(fun, seq(1,10), seq(10,29), seq(5,14), seq(1,10))

, которая будет создавать этот график:
enter image description here

1 голос
/ 13 апреля 2019

Построение кривой функции в R с 2 или более переменными

Ссылка выше похожа на ваш вопрос и может помочь вам разобраться. Возможно, вам придется добавить функцию curry (в функциональном пакете), чтобы предварительно указать параметры. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...