MATLAB学习笔记:求数值微分

数值微分是用离散方法近似计算函数的导数值或偏导数值。

向前差商公式:






向后差商公式:





中心差商公式:





二阶导数的中心差商公式:







例1:利用数值微分求y=4*x^2+3*sin(x)在x=1处的近似导数。

先利用导函数求出其一阶和二阶导数值:

dy_1=diff(4*x^2+3*sin(x))
dy_1 =
 
8*x + 3*cos(x)
x=1;
dy_1=9.620906917604419
dy_2=diff(4*x^2+3*sin(x),2)
dy_2 =
 
8 - 3*sin(x)
x=1;
dy_2=5.475587045576311
一阶和二阶中心差商公式求导:

x=1;
h=[0.1 0.01 0.001 0.0001];
x1=x+h;
x2=x-h;
y=4*x^2+3*sin(x);
y1=4*x1.^2+3*sin(x1);
y2=4*x2.^2+3*sin(x2);
ysw_1=(y1-y2)./(2*h)
ysw_2=(y1+y2-2.*y)./(h.^2)
ysw_1 =

   9.618206756509284   9.620879902624191   9.620906647452632   9.620906914897809


ysw_2 =

   5.477690021937852   5.475608082274874   5.475587256498216   5.475587094849743
例2:计算出生人口年增长率。

MATLAB学习笔记:求数值微分_第1张图片






px=[650 781 914 1005 1471 1861 1468 2479 2801 2114 1839 2043 2621 1693 1379 1617 1574 1655];
for k=2:17
    zzl(k)=(px(k+1)-px(k-1))/10;
end
zzl
plot(zzl)
zzl =

  Columns 1 through 10

         0   26.4000   22.4000   55.7000   85.6000   -0.3000   61.8000  133.3000  -36.5000  -96.2000

  Columns 11 through 17

   -7.1000   78.2000  -35.0000 -124.2000   -7.6000   19.5000    3.8000
MATLAB学习笔记:求数值微分_第2张图片



你可能感兴趣的:(MATLAB学习笔记:求数值微分)