一、数值微积分
1、数值微分
数值差分与差商
微积分中,任意函数f(x)在x0点的导数是通过极限定义的
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,按行计算差分。
样例一: 设f(x)=sin x , 在[0,2π]范围内随机采样,计算f’(x)的近似值
>> x=[0,sort(2*pi*rand(1,5000)),2*pi];
>> y=sin(x);
>> f1=diff(y)./diff(x);
>> f2=cos(x(1:end-1));
>> d=norm(f1-f2)
d=0.0456
2. 数值积分
在高等数学中,计算定积分依靠微积分基本定理,只要找到被积函数f(x)
的原函数大F(x),则可用牛顿—莱布尼兹(Newton-Leibniz)公式:
基于自适应辛普森方法
[I,n]=quad(filename,a,b,tol,trace)
基于自适应Gauss-Lobatto方法
[I,n]=quadl(filename,a,b,tol,trace)
其中,filename是被积函数名;a和b分别是定积分的下限和上限,积分限[a,b] 必须是有限的,不能为无穷大(Inf);tol用来控制积分精度,默认时取 tol=10-6;trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展 现,默认时取trace