2016-11-25 2 views
-2

Я пытаюсь написать уравнение в R (см. Код ниже). Мне было интересно, как я могу правильно использовать + - до sqrt() в моем коде?+ - перед квадратным корнем в R

x <- seq(0,1,by=0.01) 
y <- %+-%sqrt((.5^2)-(x-.5)^2)+.5 
+2

Где находится оператор '% + -%'? –

+0

см. Https://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/plotmath.html – user7148318

ответ

1

Вы можете иметь уравнение в параметрической форме, не требуя + - от SQRT.

theta <- seq(0,2*pi,0.01) 
x <- 0.5 + 0.5*sin(theta) 
y <- 0.5 + 0.5*cos(theta) 
plot(x, y) 
title(main= substitute(paste('x=(1+sin',theta,')/2, y=(1+cos', theta, ')/2'))) 

enter image description here

Попробуйте это:

draw.circle <- function(stepsize=.01) { 
    theta <- seq(0,2*pi,by=stepsize) 
    x <- 0.5 + 0.5*sin(theta) 
    y <- 0.5 + 0.5*cos(theta) 
    plot(x, y,type="n",xlim = c(0,1),ylim = c(0,1)) 
    segments(x,y,.5,.5) 
} 

draw.circle(.01) 

enter image description here

draw.circle(.02) 

enter image description here

draw.circle(.05) 

enter image description here

+0

Любопытно, почему сюжет из предложенного вами sin() cos() выглядит скорее овальным, чем кругом? Спасибо – user7148318

+0

Это связано с размером участка, это на самом деле круг (так как значения основных и второстепенных осей одинаковы, иначе это будет эллипс), вы можете попробовать и выяснить. Обновленный сюжет, вы также можете попробовать, преимущество этого подхода в том, что вам не нужно думать о + - part, результат будет точно таким же ». –

+0

Абсолютно, я просто поддержал ваш ответ. – user7148318

5

Нужно построить их по отдельности, но оператор %+-% может быть использован в plotmath выражениях. Нуждается в окружении двух значений, однако, следовательно, необходимо использовать непечатаемые phantom():

x <- c(seq(0,1,by=0.01)) 
y <- c(sqrt((.5^2)-(x-.5)^2)+.5, -sqrt((.5^2)-(x-.5)^2)+.5) 
plot(rep(x,times=2), y) 
title(main= bquote(phantom(0) %+-% sqrt((.5^2)-(x-.5)^2)+.5)) 

enter image description here

+0

Из любопытства, как я мог добавить «y =» перед% + -% в уравнение в команде bquote? bquote (фантом (0)% + -% sqrt ((.5^2) - (x-.5)^2) +. 5)) – user7148318

+0

Наверное, может быть. Я просто хочу сделать мои выражения чистыми-plotmath и избегать значений символов, насколько я могу. Исключение составляет то, когда оно упрощает выражение значительно или когда оно абсолютно необходимо, как при попытках выделить курсивом цифры. –

Смежные вопросы