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

##结果:

时间: 2024-10-13 22:28:34

用R语言实现一个求导的简单例子的相关文章

linux下java程序与C语言程序通过SOCKET通信的简单例子

linux下java程序与C语言程序通过SOCKET通信的简单例子 今天上午实验了java程序与c语言程序通过socket进行通信.由于没学过java,因此只是编写了C语言端的代码,java端的代码是从网上别的文章中找的,经过少量修改后与C语言端程序通信成功. 本例中C语言端作为服务器,java端作为客户端 代码如下: /****************** server program *****************/ #include <stdio.h> #include <sy

R语言与数据分析之七:时间序列简单指数平滑

上篇我们对时间序列数列有了整体的认识并将时间序列进行了分解,今天和小伙伴们分享常用预测算法中相对最简单的:简单指数平滑法.简单指数平滑适用于可用相加模型描述,并且处于恒定水平和没有季节变动的时间序列地短期预测. 简单指数平滑法提供了一种方法估计当前时间点上的水平.为了更加准确的估计当前时间的水平,我们使用alpha参数来控制平滑,alpha的取值在0-1之间.当alpha越接近0,临近预测的观测值在预测中的权重就越小. 我们采用伦敦1813年到1912年全部的每年每英尺降雨量来做分析对象,首先读

用R语言对一个信用卡数据实现logit,GBM,knn,xgboost

Prepare the data 数据来自UCIhttp://archive.ics.uci.edu/ml/machine-learning-databases/credit-screening,一个信a用卡的数据,具体各项变量名以及变量名代表的含义不明(应该是出于保护隐私的目的),本文会用logit,GBM,knn,xgboost来对数据进行分类预测,对比准确率 预计的准确率应该是: xgboost > GBM > logit > knn Download the data datas

R语言与数据分析之六:时间序列简单介绍

今年在某服装企业蹲点了4个多月,之间很长一段时间在探索其现货和期货预测,时间序列也是做销售预测的首选,今天和小伙伴分享下时间序列的基本性质和如何用R来挖据时间序列的相关属性. 首先读入一个时间序列:从1946年1月到1959年12月的纽约每月出生人口数量(由牛顿最初收集)数据集可以从此链接下载(http://robjhyndman.com/tsdldata/data/nybirths.dat).我们将数据读入R,并且存储到一个时间序列对象中,输入以下代码: births<- scan("h

C语言实现一个hello/hi的简单聊天程序并跟踪分析到系统调用

socket编程介绍 Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,可以用它们来开发TCP/IP网络上的应用程序. Socket接口设计者最先是将接口放在Unix操作系统里面的.如果了解Unix系统的输入和输出的话,就很容易了解Socket了.网络的 Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符.Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立.数据传输等操作都是通

运用js脚本语言switch实现一个求一个日期是一年中的第几天,考虑润年

运用js脚本语言实现一个求一个日期是一年中的第几天,考虑润年 我们需要在网页中弹出框输入年月日,代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <!-- 通过switch结构实现计算一个日期是一年中的第几天,考虑润年 --> <script t

SQL Server 2016将内置R语言?

(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:随着大数据成为一个BuzzWord,和大数据相关的技术也变得越来越火热,其中就包括R语言.而据说SQL Server 2016将会内置R语言支持? R语言作为一个存在很久的语言,在大数据热炒之后也被大家翻出来炒冷饭.微软为了其大数据战略,也不失时机的收购了R语言的开发商Revolution Analytics.这次收购带来的一个结果就是SQL Server 2016将会把R语言内置,也就是说可

简单线性回归问题的优化(SGD)R语言

本编博客继续分享简单的机器学习的R语言实现. 今天是关于简单的线性回归方程问题的优化问题 常用方法,我们会考虑随机梯度递降,好处是,我们不需要遍历数据集中的所有元素,这样可以大幅度的减少运算量. 具体的算法参考下面: 首先我们先定义我们需要的参数的Notation 上述算法中,为了避免过拟合,我们采用了L2的正则化,在更新步骤中,我们会发现,这个正则项目,对参数更新的影响 下面是代码部分: ## Load Library library(ggplot2) library(reshape2) li

R语言学习笔记:日期处理

1.取出当前日期 Sys.Date() [1] "2014-10-29" date()  #注意:这种方法返回的是字符串类型 [1] "Wed Oct 29 20:36:07 2014" 2.在R中日期实际是double类型,是从1970年1月1日以来的天数 typeof(Sys.Date()) [1] "double" 3.转换为日期 用as.Date()可以将一个字符串转换为日期值,默认格式是yyyy-mm-dd. as.Date("