美文网首页
「advanced R」10.5数值积分

「advanced R」10.5数值积分

作者: 一路向前_莫问前程_前程似锦 | 来源:发表于2020-05-14 10:08 被阅读0次
数值积分的思想很简单:通过用简单的成分金斯曲线来寻找曲线下面积。两个最简单的做法便是中点法则和梯形法则,中点法则利用的是矩阵近似曲线,梯形法则利用的是梯形近似。每个法则都要以要积分的函数f和积分范围(ab)为参数进行积分。例如,尝试对sinx(0pi)积分。

  1. 中点法则:
midpoint <- function(f,a,b){
  
  h=f((a+b)/2)
  s=h*(b-a)
  return(s)
  
}


midpoint(sin,0,2*pi)
trapzoid(sin,0,2*pi)


2.梯形法则

trapzoid <- function(f,a,b){
  
  h=b-a
  s=(f(a)+f(b))/2*h
  return(s)
  
}


为了使答案更加准确,我们可以将整个积分区间划分为多个小区间,然后对每个小区间进行积分,这称为组合积分,使用下面两个新函数来实现它

# 区间划分 --------------------------------------------------------------------

midpoint_com <- function(f,a,b,n=10){
  points = seq(a,b,length.out = n+1)
  h = (b-a)/n
  sum=0
  for (i in seq_len(n)) {
    area=f((points[i]+points[i+1])/2)*h
    sum=sum+area
  }
  
  return(sum)
  
}


trapezoid_com <- function(f,a,b,n=10){
  points=seq(a,b,length.out = n+1)
  h=(b-a)/n
  sum=0
  for (i in seq_len(n)) {
    area=(f(points[i])+f(points[i+1]))*h/2
    sum=area+sum
  }
  return(sum)
}

trapezoid(sin,0,pi,100) 
midpoint_com(sin,0,pi,100)
midpoint(sin,0,pi,100)

composite <- function(f,a,b,n=10,rule){
  points=seq(a,b,length.out = n+1)
  h=(b-a)/n
  sum=0
  for (i in seq_len(n)) {
    area=rule(f,points[i],points[i+1])
    sum=area+sum
  }
  return(sum)
}
}

composite(sin,0,pi,n=10,rule =midpoint )

composite(sin,0,pi,n=10,rule =trapzoid )


相关文章

  • 「advanced R」10.5数值积分

    数值积分的思想很简单:通过用简单的成分金斯曲线来寻找曲线下面积。两个最简单的做法便是中点法则和梯形法则,中点法则利...

  • 数值分析day03数值积分与数值微分

    1.什么是数值积分? 2.为什么计算不直接采用数值积分基本公式? 3.采用哪些公式来求数值积分? 4.数值积分公式...

  • 第三章.数值分析

    数值积分概述 研究对象:的数值计算方法,定积分是和的极限,数值积分就是将定积分的计算用和式近似,可表为其中为求积系...

  • 数值积分

    数值积分法是求定积分的近似值的数值方法。即用被积函数的有限个抽样值的离散或加权平均近似值代替定积分的值,是一种递推...

  • 基于R的高级统计(入门介绍)

    用R实现生物统计学相关的数值运算、算法优化问题,basic的一些思想方法。参考书是Advanced Statist...

  • Advanced R

    基础知识 其优点 有大量统计建模,机器学习,可视化的相关包,快速实现你的想法 很前沿,因为统计学和机器学习的研究人...

  • 《Advanced R 》R练习题

    来自R大神著作《Advanced R 》练习题,来一起检验一下R语言知识吧!?本文参考资料:《Advanced R...

  • 数值分析:数值积分与数值微分

    1 数值积分概述 1.1 引言   对于许多实际问题的求解往往需要计算积分。在高等数学中计算积分采用的是著名的牛顿...

  • R数据分析参考

    数据分析 R for Data Science Advanced R. — Hadley Wickham Tidy...

  • R数据分析参考

    数据分析 R for Data Science Advanced R. — Hadley Wickham Tidy...

网友评论

      本文标题:「advanced R」10.5数值积分

      本文链接:https://www.haomeiwen.com/subject/longnhtx.html