1.数值微分与数值积分
数值微分
MATLAB提供了求向前差分的函数diff,其调用格式有三种:
- dx=diff(x):计算向量x的一阶向前差分,dx(i)=x(i+1)-x(i),i=1,2,…,n-1。
- dx=diff(x,n):计算向量x的n阶向前差分。例如,diff(x,2)=diff(diff(x))
- dx= diff(A, n, dim):计算矩阵A的n阶差分,dim=1时(默认状态),按列计算差分;dim=2,按行计算差分。
数值积分
- 基于自适应辛普森方法
[l, n]=quad(filename, a, b, tol, trace) - 基于自适应 Causs-Lobatto方法
[I, n]=quadI(filename, a, b, tol, trace)
其中, filename是被积函数名;a和b分别是定积分的下限和上限,积分限[a,b]必须是有限的,不能为无穷大(lnf);tol用来控制积分精度,默认时取tol=10-6; trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,默认时取trace=0;返回参数I即定积分的值,n为被积函数的调用次数。
- 基于全局自适应积分方法
I=integral(filename, a, b)
其中,I是计算得到的积分; filename是被积函数;a和b分别是定积分的下限和上限,积分限可以为无穷大。
- 基于自适应高斯-克朗罗德方法
[I,err]=quadgk(filename, a, b)
其中,err返回近似误差范围,其他参数的含义和用法与quad函数相同。积分上下限可以是无穷大(-Inn或Inf),也可以是复数。如果积分上下限是复数,则 quadgk函数在复平面上求积分。
- 基于梯形面积法则求积分
trapz(x,y),y是x的函数。
多重积分
求二重积分的数值解: