MATLAB笔记-数值积分
解决问题:
- 被积函数复杂,原函数很难求出;或被积函数不可积分,与之对应的原函数不存在。
- 只能得到被积函数的一系列值,无法求出被积函数的具体表达式。
解决方法:
- 将被积函数转化为一系列简单函数的和再求积。根据积分“和的积分等于积分的和”规则,若函数 (f(x) = sum_{substack{i}} f_i(x)),则(int f(x) \, mathrm{d}x= sum_{substack{i}} int f_i(x) \, mathrm{d}x)。其中(f_i(x))是一系列简单函数,被积函数(f(x))是他们的线性组合。
- 使用积分的几何意义求解,即将求积分转化为求面积。
一、多项式近似求定积分(Newton-Cotes求积)
用Lagrange插值法对被积函数进行插值,然后对其求积,即可得到原函数。
设被积函数为(f(x)),积分区间为([a,b]),已知函数n个等间隔数据点(ig(x_0,f(x_0)ig),ig(x_1,f(x_1)ig),dotsb,ig(x_{n-1},f(x_{n-1})ig)),则根据Lagrange插值法,有:
[f(x) approx sum_{k=0}^n l_k(x)f(x_k)
]
可以得到求积公式:
[egin{aligned}
int_a^b f(x) ; mathrm{d} x
&approx int_a^b sum_{k=0}^n l_k(x)f(x_k) ; mathrm{d} x \
&= sum_{k=0}^n Big[ f(x_k) int_a^b l_k(x); mathrm{d} x Big]
end{aligned}
]
设(x_t = a+th),则有:
[egin{aligned}
int_a^b l_k(x) ; mathrm{d} x
&= int_a^b Big[ prod_{substack{j=0 \ j
eq k}}^n frac{x-x_j}{x_k-k_j} Big] ; mathrm{d} x\
&= int_a^b Big[ prod_{substack{j=0 \ j
eq k}}^n frac{x-a-jh}{h(k-j)} Big] ; mathrm{d} x\
&= h int_0^n Big[ prod_{substack{j=0 \ j
eq k}}^n frac{th-jh}{h(k-j)} Big] ; mathrm{d} t\
&= h prod_{substack{j=0 \ j
eq k}}^n frac{1}{k-j} int_0^n prod_{substack{j=0 \ j
eq k}}^n (t-j) ; mathrm{d} t\
&= h frac{(-1)^{n-k}}{k!(n-k)!} int_0^n prod_{substack{j=0 \ j
eq k}}^n (t-j) ; mathrm{d} t\
&= (b-a) frac{(-1)^{n-k}}{k!(n-k)!n} int_0^n prod_{substack{j=0 \ j
eq k}}^n (t-j) ; mathrm{d} t\
end{aligned}
]
这样(l_k(x))就化为了一个与被积函数无关的式子,只要确定被积函数的积分区间与数据点数,就可以确定各(l_k(x))的值。
如果将(b-a)分离出来,令:
[egin{aligned}
C_k^{(n)}
&= frac{1}{b-a}int l_k(x) ; mathrm{d} x\
&= frac{(-1)^{n-k}}{k!(n-k)!n} int_0^n prod_{substack{j=0 \ j
eq k}}^n (t-j) ; mathrm{d} t\
end{aligned}
]
那么求积公式可以写成更简洁的形式:
[int_a^b f(x) ; mathrm{d} x
approx sum_{k=0}^n (b-a)C_k^{(n)}f(x_k)
]
其中的(C_k^{(n)})称为Cotes系数,只与(n)有关,可以事先求出,用时查表。式中其他各参数由积分区间、被积函数的各已知值确定。
使用这种求积方法,对于开头需要解决的问题一,可以选取合适的步长,计算所需各点函数值后求定积分;对于问题二,则可以选择步长后先通过插值求出所需各点的函数值再求定积分。由于这种方法中的(l_k(x))是由Lagrange插值法直接得到的,这种方法也继承了拉氏插值在阶数过高时计算结果剧烈抖动的缺点,在这里表现为高阶Cotes系数呈锯齿状,靠近中间会有正负交替。所以更适合分段低次插值。
另外从(C_k^{(n)})的表达式中,可以看出计算过程的时间复杂度和空间复杂度都很高,并且出现了除以阶乘的情况,因此在阶数过高时,这种算法的速度与准确性都大打折扣。