预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共17页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

东北大学秦皇岛分校 数值计算课程设计报告 数值积分及Matlab实现 学院数学与统计学院专业信息与计算科学学号5133117姓名楚文玉指导教师张建波姜玉山成绩教师评语: 指导教师签字: 2015年07月14日 1绪论 在科研计算中,经常会碰到一些很难用公式定理直接求出精确解的积分问题,对于这类问题,我们一般转化为数值积分问题,用计算机来实现求解问题. 1.1课题的背景 对于定积分在求某函数的定积分时,在一定条件下,虽然有牛顿-莱布里茨公式可以计算定积分的值,但在很多情况下的原函数不易求出或非常复杂.被积函数的原函数很难用初等函数表达出来,例如等;有的函数的原函数存在,但其表达式太复杂,计算量太大,有的甚至无法有解析表达式.因此能够借助牛顿-莱布尼兹公式计算定积分的情形是不多的.另外,许多实际问题中的被积函数往往是列表函数或其他形式的非连续函数,对这类函数的定积分,也不能用不定积分方法求解,只能设法求其近似值.因此,探讨近似计算的数值积分方法是有明显的实际意义的,即有必要研究定积分的数值计算方法,以解决定积分的近似计算.而数值积分就是解决此类问题的一种有效的方法,它的特点是利用被积函数在一些节点上的信息求出定积分的近似值.微积分的发明是人类科学史上一项伟大的成就,在科学技术中,积分是经常遇到的一个重要计算环节数值积分是数学上重要的课题之一,是数值分析中重要的内容之一.随着计算机的出现,近几十年来,对于数值积分问题的研究已经成为一个很活跃的研究领域.现在,数值积分在计算机图形学,积分方程,工程计算,金融数学等应用科学领域都有着相当重要的应用,所以研究数值积分问题有着很重要的意义.国内外众多学者在数值积分应用领域也提出了许多新方法.在很多实际应用中,只能知道积分函数在某些特定点的取值,比如天气测量中的气温、湿度、气压等,医学测量中的血压、浓度等等.通过这个课题的研究,我们将会更好地掌握运用数值积分算法求出特殊积分函数的定积分的一些基本方法、理论基础;并且通过Matlab软件编程的实现,应用于实际生活中. 1.2课题的主要内容框架 1.2.1数值积分各求积公式简介 简介牛顿-柯特斯求积公式及其辛普森求积公式,龙贝格求积公式,高斯求积公式的基本理论基础和方法. 1.2.2求积公式的代码实现 通过理解各种数值积分求积公式的原理方法,通过Matlab软件编程,实现以上求积公式. 1.2.3应用举例 通过简单举例,自建一个相对简单和复杂的函数,用上面编写的Matlab源程序来解决实际问题,体会数值积分和Matlab的优势. 2牛顿-柯特斯公式及Matlab实现 2.1牛顿-柯特斯公式的基本原理方法 设将积分区间[a,b]划分为n等分,步长为,选取等距节点构造出的差值型求积公式 ,(2.1) 称为牛顿-柯特斯公式,式中称为柯特斯系数.根据 ,(2.2) 引进变量代换,则有 (2.3) 当n=2时,此时柯特斯系数为,,,相应的求积公式就是辛普森求积公式: (2.4) 2.2牛顿-柯特斯公式的Matlab实现 function[C,g]=NCotes(a,b,n,m) %a,b分别为积分的上下限; %n是子区间的个数; %m是被调用第几个被积函数; %当n=1时计算梯形公式;当n=2时计算辛普森公式,以此类推; I=n; h=(b-a)/i; z=0; forj=0:i x(j+1)=a+j*h; s=1; ifj==0 s=s; else fork=1:j s=s*k; end end r=1; ifi-j==0 r=r; else fork=1:(I-j) r=r*k; end end ifmod((I-j),2)==1 q=-(I*s*r); else q=i*s*r; end y=1; fork=0:i ifk~=j y=y*(sym('t')-k); end end l=int(y,0,i); C(j+1)=l/q; z=z+C(j+1)*f1(m,x(j+1)); end g=(b-a)*z 3复合求积公式及Matlab实现 3.1复合梯形公式的基本原理 将区间[a,b]划分成n等分,分点,,在每个子区间[]()上采用梯形公式得: (3.1) 记 (3.2) 称式(3.2)为复合梯形公式. 3.2复合梯形公式的Matlab实现 functions=trapr1(f,a,b,n) %f表示被积函数; %a,b表示积分上下限; %n是子区间的个数; h=(b-a)/n; s=0; fork=1:(n-1) x=a+h*k; s=s+feval('f',x); end formatlong s=h*(feval('f',a)+feval('f',b))/2+h*s; 3.3复合辛普森求积公式的基本原理 将区间[a