5.4.2 미적분
근 찾기 외에도 R에서 기본으로 제공하는 수치 해석 기법은 바로 미적분을 계산하는 것이다.
미분
D() 함수는 주어진 변수에 대한 함수의 미분식을 심벌릭하게 계산해 준다. 예를 들어 dx2 / dx를 유도해 보자.
> D(quote (x ^ 2), "x")
2 * x
dsin(x)cos(xy) / dx를 유도해 보자.
> D(quote(sin(x) * cos(x * y)), "x")
cos(x) * cos(x * y) - sin(x) * (sin(x * y) * y)
quote() 함수 덕분에 표현식 안의 기호를 직접 평가하는 대신 심벌릭하게 접근이 가능하다.
미분 결과 자체는 평가하지 않는 표현식이기에 eval()을 호출하여 필요한 모든 기호의 값이 주어진다면 이를 평가할 수 있다.
> z <- D(quote(sin(x) * cos(x * y)), "x") > z cos(x) * cos(x * y) - sin(x) * (sin(x * y) * y) > eval(z, list(x = 1, y = 2)) [1] -1.75514