﻿功能:采用理查森外推算法求函数在指定点处的一阶微分值

格式:
[y,error]=DiffFirstOrder(f,x,h,Error0,m)
[y,error]=DiffFirstOrder(f,x,h,Error0)
[y,error]=DiffFirstOrder(f,x,h)
[y,error]=DiffFirstOrder(f,x)

f:为符号变量存储或自定义函数,注意f当中的变量只能是名称为"x"的变量
x:为数值或者矩阵变量,表示求解此指定点的值
h:步长,默认0.001
Error0:跳出控制的误差,默认1E-12
m:外推深度,默认为4(注意,深度从0开始)

y:为返回的一阶微分值
error:表示返回的相对误差

说明:本函数主要针对求导困难时求其微分值的问题

参考:现代应用数学手册.计算与数值分析卷[M].清华大学出版社,2007:240-253

例子:

f = "sin(x)";
x=1:10;
[y,er]=DiffFirstOrder(f,x)//依次执行上面的命令,然后再执行本求微分命令可以得到如下结果
y =
[ 0.54030230586817   -0.41614683654722   -0.98999249660076   -0.65364362086354    0.28366218546294    0.96017028664983    0.75390225434283   -0.14550003380866   -0.91113026188634   -0.83907152907808 ]
er =
[ 1.3877787807E-13    1.1102230246E-13    4.7417625381E-13    1.2956302697E-13    3.9784842087E-13    8.0957462955E-13    7.1243011490E-13    6.4781513486E-14    5.5044857560E-13    5.3657078780E-13 ]

 