Det är kanske inte så ofta man behöver beräkna derivatan till en
funktion. Koderna nedan visar dock med några exempel hur detta kan göras
med R-kommandon.
Derivatan till en graf visar lutningen i en viss
punkt. Varje graf visar delar av den ursprungliga funktionen samt en
rödpunkt där derivatan beräknats. Lutningen visas med en röd linje.
Derivata-funktionen visas inte.
(Det går att lägga in valfri funktion i ‘expression’-koden men kanske
måste ‘xlimit’- och ‘ylimit’-gränserna justeras för ge en bra bild.)
\[
\begin{align}
\large f(x) = x^{2}+0.25 & \phantom{litet tomt ut} \large f'(x)
= 2x
\end{align}
\]
library(ggplot2)
f <- expression(x^2 + 0.25) # Originalfunktion.
fdev <- D(f, 'x') # Derivatan.
x <- 0.5
y <- eval(f)
derivatan <- eval(fdev)
intercept <- y - derivatan*x
minfunkt1 <- function(x) {eval(f)} # Originalfunktion.
minfunkt2 <- function(x) {intercept + derivatan*x}
res <- paste0(" Derivatan = ", rlang::as_label(rlang::enquo(fdev)))
mingraf <- ggplot()
mingraf <- mingraf + xlim(-1, 1)
mingraf <- mingraf + ylim(0, 1)
mingraf <- mingraf + geom_function(fun = minfunkt1, colour='blue', linewidth=1.5)
mingraf <- mingraf + geom_function(fun = minfunkt2, colour='red', linewidth=0.5) +
annotate("text", x = -Inf, y = Inf, label=res, vjust = 2, hjust = 0, size = 4.5, colour = "blue")
mingraf <- mingraf + geom_point(aes(x=x, y=y), size=4, col="red")
mingraf
\[
\begin{align}
\large f(x) = e^{x} & \phantom{litet tomt ut} \large f'(x) =
e^{x}
\end{align}
\]
library(ggplot2)
f <- expression(exp(x)) # Originalfunktion.
fdev <- D(f, 'x') # Derivatan.
x <- 0.5
y <- eval(f)
derivatan <- eval(fdev)
intercept <- y - derivatan*x
minfunkt1 <- function(x) {eval(f)} # Originalfunktion.
minfunkt2 <- function(x) {intercept + derivatan*x}
res <- paste0(" Derivatan = ", rlang::as_label(rlang::enquo(fdev)))
mingraf <- ggplot()
mingraf <- mingraf + xlim(-3.5, 1)
mingraf <- mingraf + ylim(0, 2)
mingraf <- mingraf + geom_function(fun = minfunkt1, colour='blue', linewidth=1.5)
mingraf <- mingraf + geom_function(fun = minfunkt2, colour='red', linewidth=0.5) +
annotate("text", x = -Inf, y = Inf, label=res, vjust = 2, hjust = 0, size = 4.5, colour = "blue")
mingraf <- mingraf + geom_point(aes(x=x, y=y), size=4, col="red")
mingraf
\[
\begin{align}
\large f(x) = (sin (x))^{3} & \phantom{litet tomt ut} \large
f'(x) = 3\cdot(sin (x))^{2}\cdot cos(x)
\end{align}
\]
library(ggplot2)
f <- expression( sin(x)^3 )
fdev <- D(f, 'x')
x <- 0.50
y <- eval(f)
derivatan <- eval(fdev)
intercept <- y - derivatan*x
minfunkt <- function(x) {eval(f)}
minfunktion2 <- function(x) {intercept + derivatan*x}
res <- paste0(" Derivatan = ", rlang::as_label(rlang::enquo(fdev)))
mingraf <- ggplot()
mingraf <- mingraf + xlim(0.25, 0.75)
mingraf <- mingraf + ylim(0, 0.4)
mingraf <- mingraf + geom_function(fun = minfunkt, colour='blue', linewidth=1.5)
mingraf <- mingraf + geom_function(fun = minfunktion2, colour='red', linewidth=0.5) +
annotate("text", x = -Inf, y = Inf, label=res, vjust = 2, hjust = 0, size = 4.5, colour = "blue")
mingraf <- mingraf + geom_point(aes(x=x, y=y), size=4, col="red")
mingraf
\[
\begin{align}
\large f(x) = \frac{x}{1+x^{2}} & \phantom{litet tomt ut} \large
f'(x) = \frac{1-x^{2}}{(1+x^{2})^{2}}
\end{align}
\]
library(ggplot2)
f <- expression(x/(1+x^2)) # Originalfunktion.
fdev <- D(f, 'x') # Derivatan.
x <- 0.5
y <- eval(f)
derivatan <- eval(fdev)
intercept <- y - derivatan*x
minfunkt1 <- function(x) {eval(f)} # Originalfunktion.
minfunkt2 <- function(x) {intercept + derivatan*x}
res <- paste0(" Derivatan = ", rlang::as_label(rlang::enquo(fdev)))
mingraf <- ggplot()
mingraf <- mingraf + xlim(-5, 5)
mingraf <- mingraf + ylim(-0.7, 0.7)
mingraf <- mingraf + geom_function(fun = minfunkt1, colour='blue', linewidth=1.5)
mingraf <- mingraf + geom_function(fun = minfunkt2, colour='red', linewidth=0.5) +
annotate("text", x = -Inf, y = Inf, label=res, vjust = 2, hjust = 0, size = 4.5, colour = "blue")
mingraf <- mingraf + geom_point(aes(x=x, y=y), size=4, col="red")
mingraf
\[
\begin{align}
\large f(x) = arcsin(x) & \phantom{litet tomt ut} \large f'(x) =
\frac{1}{\sqrt{ 1-x^{2}}}
\end{align}
\]
library(ggplot2)
f <- expression(asin(x)) # Originalfunktion.
fdev <- D(f, 'x') # Derivatan.
x <- 0.5
y <- eval(f)
derivatan <- eval(fdev)
intercept <- y - derivatan*x
minfunkt1 <- function(x) {eval(f)} # Originalfunktion.
minfunkt2 <- function(x) {intercept + derivatan*x}
res <- paste0(" Derivatan = ", rlang::as_label(rlang::enquo(fdev)))
mingraf <- ggplot()
mingraf <- mingraf + xlim(0, 1.3)
mingraf <- mingraf + geom_function(fun = minfunkt1, colour='blue', linewidth=1.5)
mingraf <- mingraf + geom_function(fun = minfunkt2, colour='red', linewidth=0.5) +
annotate("text", x = -Inf, y = Inf, label=res, vjust = 2, hjust = 0, size = 4.5, colour = "blue")
mingraf <- mingraf + geom_point(aes(x=x, y=y), size=4, col="red")
mingraf
\[ \begin{align} \large f(x) = arccos(x) & \phantom{litet tomt ut} \large f'(x) = -\frac{1}{ \sqrt{ 1-x^{2} } } \end{align} \]
library(ggplot2)
f <- expression(acos(x)) # Originalfunktion.
fdev <- D(f, 'x') # Derivatan.
x <- 0.5
y <- eval(f)
derivatan <- eval(fdev)
intercept <- y - derivatan*x
minfunkt1 <- function(x) {eval(f)} # Originalfunktion.
minfunkt2 <- function(x) {intercept + derivatan*x}
res <- paste0(" Derivatan = ", rlang::as_label(rlang::enquo(fdev)))
mingraf <- ggplot()
mingraf <- mingraf + xlim(0., 1.2)
mingraf <- mingraf + geom_function(fun = minfunkt1, colour='blue', linewidth=1.5)
mingraf <- mingraf + geom_function(fun = minfunkt2, colour='red', linewidth=0.5) +
annotate("text", x = -Inf, y = Inf, label=res, vjust = 2, hjust = 0, size = 4.5, colour = "blue")
mingraf <- mingraf + geom_point(aes(x=x, y=y), size=4, col="red")
mingraf
Ovanstående koder och texter avser inte att ge en uttömmande diskussion om att beräkna derivatan av en funktion. Men här har framställningen poängterat enkelhet.
(Analyserna har gjorts med datorprogrammet ‘R’ och med det grafiska gränssnittet ‘R-studio’ och bägge är gratis tillgängliga på nätet. Se https://www.indstat.se och knappen [Statistikprogram - R] för installation.)
(Se https://www.indstat.se för många andra simuleringsövningar.)