- 1.2 数值微分的实现
有两种方式计算任意函数f(x)在给定点x的数值导数:
① 用多项式或样条函数g(x)对f(x)进行逼近(插值或拟合),然后用逼近函数g(x)在点x处的导数作为f(x)在点x处的导数;
② 用f(x)在点x处的某种差商作为其导数。
在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,按行计算差分。
例: 设x由[0,2π]间均匀分布的6个点组成,求sinx的1~3阶差分。
例:用不同的方法求下列函数f(x)的数值导数,并在同一个坐标系中做出f '(x)的图像。