本章涉及知识点
1、求解定积分存在的问题
2、研究案例之f(x)=sin(x)/x的定积分和广义积分
3、纯数学推导计算f(x)=sin(x)/x的广义积分
4、复化矩形算法
5、复化梯形算法
6、复化抛物线算法
7、三种定积分复化近似算法的编程实现
8、加入蒙特卡洛算法和高斯求积算法
9、不同近似算法计算f(x)=sin(x)/x的定积分结果比较
一、求解定积分存在的问题
由微积分我们知道,如果函数f(x)的原函数为F(x),则函数f(x)在闭区间[a,b]的定积分可以由牛顿-莱布尼兹公式计算出来
牛顿-莱布尼兹公式上式也称之为微积分的基本公式,它表明了:一个连续函数在区间[a,b]上的定积分等于它的任意一个原函数在区间[a,b]上的增量
但是实际问题中常常会遇到如下一些情况:
(1)、f(x)的表达式非常复杂,导致推导原函数F(x)变得更加困难
(2)、f(x)的原函数F(x)根本不能用初等函数来表示或者F(x)根本推导不出来
(3)、无法知道f(x)的精确表达式,只能以实验的方法观测出其若干个点对应的值
对于上述的情况,要计算f(x)的定积分就无法使用牛顿-莱布尼兹公式计算,例如f(x)=sin(x)/x就属于上述第二种情况,这时候我们就需要从定积分的定义原理出发,通过数值算法来计算其近似值
二、研究案例之f(x)=sin(x)/x的定积分和广义积分
来研究以下案例
目标函数f(x)需要计算f(x)的定积分或者广义积分
案例积分在数学物理的研究方法中,这个函数已经多次出现过,求解这个积分的算法也非常巧妙,而每次解法的思路,总是精妙又差别很大,可以说是涵盖了物理方法中很大一部分内容,比如复变函数、傅里叶变换以及拉普拉斯变换等的数学知识,这真是一个有趣的积分
显然,f(x)有精确的表达式,可是它的原函数F(x)的推导却非常困难,因为F(x)无法用初等函数来表示,下面我们首先用纯数学方法来推导f(x)的广义积分
三、纯数学推导计算f(x)=sin(x)/x的广义积分
原广义积分可以写为
案例积分计算一边的积分即可,为此我们模拟拉普拉斯变换的算法思想,构造出一个函数F(b),并顺利引入指数函数e来替换拉普拉斯变化里的虚数
构造新函数F(b)显然,当b=0时
F(0)即为原广义积分故我们只需要推导出F(b)的表达式即可,下面对F(b)求一阶导数(注意因变量是b,不是x)
F(b)的导数表达式-1下面我们需要推导上式积分,这里需要使用一次分部积分算法
一次分部积分算法我们对结果再使用一次分部积分算法
二次分部积分算法通过两次分部积分算法,我们得出
二次部分积分结果-1合并左右相同的积分项,可以解出
二次部分积分结果-2带入F(b)的导数表达式
F(b)的导数表达式-2至此我们推导出了F(b)的导数表达式,为了推导F(b)的表达式,我们对其导数进行一次不定积分计算
对导数进行不定积分显然上式被积函数的原函数可以表示为反正切初等函数,即
F(b)的表达式至此,我们推导出了构造函数F(b)的表达式
又因为:
F(b)的极限则可以计算出常数C
F(b)的常数C由之前的分析
F(0)即为原广义积分带入F(0)即可计算出f(x)的广义积分
f(x)的广义积分可以看到,纯数学的解法思路需要构造新函数,求导,两次分部积分算法和求不定积分的原函数来表示求解的定积分,而我们的计算机是不会自己推理这一系列数学推导的
四、复化矩形算法
从纯数学推导f(x)的定积分的算法中,显然不适合计算机,为此我们需要从定积分的原理出发
因为f(x)在区间[a,b]上连续可导,我们将区间[a,b]进行n等分,得到一系列的分点序列
区间分点序列而每一个小区间的长度为
区间长度而对于任意确定的正整数n,有
定积分的近似计算记
f(x)的函数值则定积分的近似计算可以表示为
复化矩形算法上式就是复化矩形的算法,其几何意义为:用窄条矩形的面积作为窄条曲边梯形的面积的近似值,而整体上运用了台阶形的面积来作为曲边梯形面积的近似值
五、复化梯形算法
同理,复化梯形算法的几何意义为:将曲线f(x)上的一小段弧度用直线代替,也就是以直代取的思想,将窄条曲边梯形用窄条梯形近似替代
复化梯形形算法六、复化抛物线算法
同理,复化抛物线算法的几何意义为:将曲线f(x)上的两个小弧度用过这三个点的抛物线y=px^2+qx+r来代替
由Lagrange抛物线插值算法,我们用n=3的多项式来逼近任意一段抛物线
Lagrange二次插值则f(x)的定积分可以推导为
复化抛物线算法至此,我们从定积分的原理出发,得到了3种近似计算定积分的算法,而计算机非常适合计算这些近似算法
七、三种定积分复化近似算法的编程实现
我们将上述近似算法代码化
复化矩形算法 复化梯形算法 复化抛物线算法八、加入蒙特卡洛算法
为了案例演示结果的比较,下面我们也加入蒙特卡洛算法来模拟计算定积分
蒙特卡洛算法九、不同近似算法计算f(x)=sin(x)/x的定积分结果比较
我们演示在[0,pi]区间内,不同算法计算f(x)=sin(x)/x的定积分结果为
不同算法计算f(x)=sin(x)/x的定积分结果可以看到复化梯形和抛物线算法计算结果的精度非常高
案例代码见:定积分的算法
网友评论