用R语言实现一个求导的简单例子

在学习导数的时候,老师都会这样解释,假设y=f(x),对点(x0,y0)的求导过程如下:
设dx是一个很小的数
=> y0+dy=f(x0+dx)
=> dy=f(x0+dx)-y0
则在这一点的导数a=dy/dx
这样假设的前提是dx很小,所以x0至(x0+dx)很短,可以近似为一条直线,则dy/dx可以看成是点(x0,y0)和点(x0+dx,y0+dy)连成直线的斜率
因此关于某个点的导数,其意义也可以解释成在该点的变化率

下面用R语言实现一个简单例子:
假设:y=1/x,求点(1,1)的导数

x<-seq(0,3,by=0.0001)  

y<-1/x   ##生成模拟数据

d_point<-data.frame(x,y)

 

x0<-1
y0<-1/x0  ##点(1,1)


dx=0.0001 ##dx很小
dy<-1/(x0+dx)-y0


a<-dy/dx  ##导数
b<-y0-a*x0  ##直线与y抽的截距

library(ggplot2)  ##画图
p<-ggplot(subset(d_point,y<=3),aes(x,y))
p+geom_line()+geom_abline(intercept=b, slope=a,linetype=2)+geom_point(data=data.frame(x=1,y=1),aes(colour="red"))

##结果:

posted on 2014-11-21 10:07  R爱好者  阅读(6344)  评论(0编辑  收藏  举报

导航