Ошибка нечислового аргумента двоичного оператора

Я хочу построить график ошибок для набора многочленов. Моя командная строка выглядит следующим образом:

W=function(x){(x^2 - 4*x + 3)*exp(1)^((x*log(x))/2)}
Z=function(x){7*x^3 - 40*x^2 + 69*x -36}
plot(abs(W-Z))

а потом я получаю сообщение об ошибке.


person Jemuel Chandrakumaran    schedule 22.04.2015    source источник


Ответы (1)


Чтобы построить функцию, она должна быть оценена по набору точек. Простое выполнение W-Z - это попытка вычесть один объект функции из другого, что не имеет смысла, отсюда и ошибка. Вы можете просто определить последовательность, по которой будут оцениваться функции и строиться абсолютная разница. Например,

x <- seq(1, 100, 0.1)

plot(abs(W(x) - Z(x)))

Обратите внимание, что, поскольку вы предоставляете только один аргумент для plot(), метка оси x по умолчанию будет Index. Чтобы изменить его, вы можете использовать аргумент xlab= следующим образом:

plot(abs(W(x) - Z(x)), xlab="x")

Теперь метка оси x будет "x". Для получения дополнительной информации о параметрах построения см. Документацию для plot с использованием ?plot.

person Alex A.    schedule 22.04.2015
comment
Привет, Алекс. Я попробовал воспользоваться твоим советом, и он сработал, если ты не против, просто помочь мне еще с одним делом. Ось x на графике показывает «индекс». Что это значит? - person Jemuel Chandrakumaran; 23.04.2015
comment
@JemuelChandrakumaran: Index - это метка оси X по умолчанию, когда вы предоставляете только один аргумент функции plot(). Вы можете изменить его на что угодно, используя аргумент xlab= в plot(). - person Alex A.; 23.04.2015