
摘要
本文首先列举了一些常用的数值求积方法,一是插值型求积公式,以公式为代表,并分析了复合型的公式;另一个是求积公式,并给出几个常用的求积公式。其次,本文对数值微分方法进行分析,主要是差分型数值微分和插值型数值微分,都给出了几种常用的微分方法。然后,本文比较了数值积分与微分的关系,发现数值积分与微分都与插值或拟合密不可分。
本文在每个方法时都分析了误差余项,并且在最后都给出了MATLAB的调用程序。
关键词:插值型积分差分数值微分 插值型数值微分 MATLAB
一、常用的积分方法
计算积分时,根据公式,
但如果碰到以下几种情况:
1)被积函数以一组数据形式表示;
2)被积函数过于特殊或者原函数无法用初等函数表示
3)原函数十分复杂难以计算
这些现象中,公式很难发挥作用,只能建立积分的近似计算方法,数值积分是常用的近似计算的方法。
一.1 插值型积分公式
积分中的一个常用方法是利用插值多项式来构造数值求积公式,具体的步骤如下:
在积分区间上上取一组节点:。已知的函数值,作的次插值多项式,则
其中,为次插值基函数,则得
公式写成一般形式:
其中,
显然,当被积函数为次数小于等于的多项式时,其相应的插值型求积公式为准确公式,即:
一.1.1 求积公式的代数精度
定义:求积公式对于任何次数不大于的代数多项式均精确成立,而对于不精确成立,则称求积公式具有次代数精度。
定理:含有个节点的插值型求积公式的代数精度至少为。
一.2 公式
一.2.1 公式
将积分区间等分,并取分点为求积公式,这样构造出来的插值型求积公式就是公式。
其中,
且系数满足重要的关系式:
时,求积公式为梯形公式(两点公式):
梯形公式具有1阶代数精度,余项为:
=2时,求积公式为公式(三点公式):
公式具有3阶代数精度,余项为:
=4时,求积公式为公式(五点公式):
其中,
公式具有5次代数精度,余项为:
一.2.2 复合公式
当积分区间过大时,直接使用公式所得的积分的近似值很难得到保证,因此在实际应用中为了既能够提高结果的精度,又使得算法简便且容易在计算机上实现,往往采用复合求积的方法。
所谓复合求积,就是先将积分区间分成几个小区间,并从每个小区间上用低阶公式计算积分的近似值,然后对这些近似值求和,从而得到所求积分的近似值,由此得到一些具有更大实用价值的数值求积公式,统称为复合求积公式。
将区间等分,记分点为,其中,称为步长,然后在每个小区间内利用梯形公式,即可导出复合梯形公式:
若将所得积分近似值记为,并注意到,则复合梯形公式为:
其余项为:
类似可得复合公式:
其中,.其余项为:
一.2.3 公式在MATLAB中的实现
1)复合梯形数值积分:
调用形式:Z=trapz(X,Y)
其中,X,Y分别代表数目相同的向量或者数值,Y与X的关系可以是函数形态或者离散形态;Z代表返回的积分值。
2)自适应公式
基本调用格式:q=quad(fun,a,b,tol,trace,p1,p2)
其中:fun代表被积函数;a,b为积分的上下限;
q为积分结果;tol为默认误差限,默认了1.e-6;
trace表示取0表示不用图形显示积分过程,非0表示用图形显示积分过程;
p1,p2为直接传递给函数fun的参数
3)自适应Lobatto法数值积分:quadl()
Quadl是高阶的自适应数值积分法函数,比quad函数更有效,精度更高,使用方法与quad完全相同。
一.3 求积公式
1、精度较高公式
(1)多项式。以点为零点的n次多项式:
上式称为多项式
(2)求积公式。以多项式的n个实根为节点的插值求积公式为求积公式。
考虑在上求积公式的构造
1)一个节点
2)两个节点
二次正交多项式
所以两点的求积公式为:
对于一般区间的积分,可以用将区间转化为,即
然后用相应的求积公式计算。
(3)一般形式的求积公式为:
其中是一个权重函数,为系数,为横坐标上的节点。
因为,所以,一个n点的求积公式具有如下形式:
其中,是函数在节点处的值,节点是正交多项式的根。
给出x和A的表格:
| n | 正交多项式 | ||
| 1 | 0 | 2 | |
| 2 | 1 | ||
| 3 | , | ||
| 4 |
MATLAB没有提供的有关计算函数,此处给出一部分的编程代码:
function q=gaussL(f,a,b,x,A)
N=length(x);
T=zeros(1,N);
T=(a+b)/2+((b-a)/2)*x;
q=((b-a)/2)*sum(A.*feval(‘f’.T));
其中,f为被积函数;x和A的值可有上表查到。
二、数值微分
数值微分的建立常用的三种思路:
1、直接从微分的定义出发,通过近似的处理(泰勒展开),得到数值微分的近似公式;
2、利用插值的基本思想,采用插值近似公式,对插值公式的近似求导得到原数值微分的近似公式
3、根据已知数据,利用最小二乘拟合的方法,得到近似的函数,然后对此近似函数求微分就可以得到数值微分的近似公式。
二.1 差分法近似微分
1、计算公式
在微积分中,一阶微分的计算可以在相邻点和间函数取得极限求得。
所以给出下列差分近似式子:
一阶向前差分:
一阶向后差分:
精度较高的一阶中心差分:
2、在MATLAB中的实现
调用形式:Y=diff(X,n)
其中:X表示求导变量,可以是向量或者矩阵。如是矩阵形式则按照各列做差分;n表示n阶差分,即差分n次;
用diff函数进行离散数据的近似求导与向前差分近似,但误差较大。可以将数据利用插值或者拟合得到多项式,然后对近似多项式进行微分。
二.2 插值型近似微分
1、方法概述
插值公式,使得
其中,
,
利用插值公式近似替代原函数,再对插值公式求导,可得插值型求导公式为:
余项为:
特别的,n=1时,可得一阶微分两点公式为:
n=2时,
下面给出一个常用的五点公式:
2、三次样条插值函数求微分的MATLAB函数
由于三次样条插值的导数近似被插值函数导数的效果很好,此处给出三次样条插值函数的MATLAB调用步骤:
Step1:对离散数据用csapi函数(或者spline函数),得到其三次样条插值函数
调用形式 pp=csapi(x,y)
其中,x,y分别为离散数据对的自变量和因变量;pp为得到的三次样条插值函数
Step2:用fnder函数求三次样条插值函数的导数
调用形式 fprime=fnder(f,dorder)
其中,f为三次样条插值函数,dorder为三次样条插值函数的求导阶数;
fprime为得到的三次样条插值函数的导数值
Step3:用fnval函数求导函数在未知点处的导数值
调用形式 v=fnval(fprime,x)
其中,fprime为三次样条插值函数导函数;x为未知点处自变量值;v为未知点处的导数值。
三、数值积分与微分的比较
1、数值解法
微积分是高等数学的重要内容,在实际工程中有许多重要的应用。微积分的数值解法,是不同于高等数学中的解析方法,适合求解没有或者很那求出微分或者积分解析表达式的实际问题的计算。
2、数值积分与微分与插值和拟合的关系
数值微分与数值积分依赖插值和拟合,二者之间密不可分。比如在进行数值微分时,针对离散的数据点,常常利用插值和拟合来减少数据误差。数值积分的基本思路也来自于插值法。比如当所积函数的形式比较复杂或是通过表格形式给出,则可以通过构造插值多项式来代替原函数,简化问题。
插值型求积公式是以构造插值函数代替原函数进行积分:
插值型微分公式是利用插值函数代替原函数进行求导:
3、精度比较
插值积分的余项为:
插值微分的精度为:
可见二者的精度形式完全一样。因为都是根据插值基函数演变而来,都是基于泰勒展开式展开的。
四、参考文献
[1]杜廷松,覃太贵,《数值分析及实验》 科学出版社 2012.10
[2]数值微分与数值积分http://www.docin.com/p-620586060.html 2015.12.7
