2015-08-20 9 views
3

Я до сих пор довольно новичок во всей R-вещи.R: Как создать шумную функцию синуса

У меня есть следующая цель; У меня есть синусоидальная функция, которая описывает число частиц кальция с течением времени: что-то вроде y = a * sin (b * t) + c

Поскольку на самом деле генерация и удаление кальция описывается в стохастических событиях, я бы как добавить случайный шум в мою функцию (желательно масштабируемую в среднем амплитуде шума).

Что-то вроде г = у + случайная * Amplitude

вы можете мне помочь?

Лучшие

ответ

1

y <- jitter(a*sin(b*t) + c) с помощью функции jitter() добавит случайный шум в вашей функции. вы можете указать параметр «количество» внутри jitter() для управления амплитудой.

+1

Не 'джиттера()' предназначен с небольшим шумом только для целей визуализации (избегая повторных точек данных, чтобы скрыть друг друга)? – ecerulm

8

Вот подход, который я хотел бы использовать - я представил два варианта, как ваша ошибка может быть сгенерирована (равномерное распределение против гауссова распределения):

### Equation: y=a*sin(b*t)+c.unif*amp 
# variables 
n <- 100 # number of data points 
t <- seq(0,4*pi,,100) 
a <- 3 
b <- 2 
c.unif <- runif(n) 
c.norm <- rnorm(n) 
amp <- 2 

# generate data and calculate "y" 
set.seed(1) 
y1 <- a*sin(b*t)+c.unif*amp # uniform error 
y2 <- a*sin(b*t)+c.norm*amp # Gaussian/normal error 

# plot results 
plot(t, y1, t="l", ylim=range(y1,y2)*c(1,1.2)) 
lines(t, y2, col=2) 
legend("top", legend=c("y1", "y2"), col=1:2, lty=1, ncol=2, bty="n") 

enter image description here

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

  • Нет связанных вопросов^_^