x'' + w^2 * x = 0,
x(0)=0,
x'(0)=C
Math.atan // 22
Math.sin // 23
Math.asin // 24
Math.cos // 25
Math.acos // 26
<canvas id="plot" width="300" height="300"></canvas>
<script>
const canvas = document.getElementById("plot").getContext("2d");
canvas.beginPath();
const h=0.1, a=1, b=1, coeff=50, height=300;
for(let i=0; i<10; i+=h) canvas.lineTo(coeff*i, coeff*Math.sin(a*i+b)+height/2);
canvas.stroke();
</script>
a <- c(0, NA, NaN, Inf, -Inf)
is.finite(a) вернет: TRUE FALSE FALSE FALSE FALSE
!is.infinite(a) вернет: TRUE TRUE TRUE FALSE FALSE
в 27 ожидаемо is.finite и is.infinite дают FALSE для NA-значений
Эта функция позволяет осуществлять "безопасное" сравнение двух Float-значений. Может принимать допустимую погрешность в качестве третьего необязательного параметра.
mean(is.na(x)) логично, что эта вещь вернет долю NA-значений:
a <- c(0, NA, NaN, Inf, -Inf)
mean(is.na(a))
вернет: 0.4
sum(!is.finite(a)) вернет количество значений, которые дали TRUE при вызове !is.finite(a):
a <- c(0, NA, NaN, Inf, -Inf)
sum(!is.finite(a))
вернет: 4
x <- c(-Inf, -1, 0, 1, Inf, NA, NaN)
x[-which(x > 0)]
вернет: -Inf -1 0 NA NaN
x[x <= 0]
вернет: -Inf -1 0 NA NA
1 - получим NA
2 - тоже получим NA