R: Как создать шумную функцию синуса

Я все еще довольно новичок во всей R-вещи.

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

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

Что-то вроде z = y + random*Amplitude

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

Лучший

2 ответа

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

### 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")

введите описание изображения здесь

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

Другие вопросы по тегам