MATLAB数值微分与数值积分
1数值微分
1.1原理:用f(x)在点x0处的差商作为其导数的近似值
1.1.1 导数
1.1.2 差分
(h>0)
一阶向前差分:
一阶向后差分:
一阶中心差分:
1.1.3 差商
(h>0)
一阶向前差商:
一阶向后差商:
一阶中心差商:
1.2 MATLAB数值微分函数
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时,按行计算差分。
注意:diff函数计算的是向量元素间的差分,故差分向量元素的个数比原向量少了一个。同样,差分矩阵比原矩阵少了一行或一列。
eg:
设f(x)=sin(x),求其在[0,2Π]上的f'(x)的近似值,并与理论值f'(x)=cos(x)进行比较。
x=0:0.001:2*pi;
y=sin(x);
f1=diff(y)./diff(x); %计算f'(x)近似值
f2=cos(x(1:end-1));
plot(x(1:end-1),f1,x(1:end-1),f2);
d=norm(f1-f2) %用范数计算误差大小
运行结果如下:
d =
0.028024955303530