对于f(x),在x0处的导数就是
f(x0+dx)/dx只要取足够小的dx,并且在程序中升伏取相应的数据类型与精吵渗携度,就可以得到f(x)在x0处的导数。
例如要计算f(x)=lnx在x=5处的导数,选dx=0.01,则f'(x)=(ln5.01-ln5)/0.01。用程序来实现,难度在于恰当地选择dx与计算精度。
求导数有两种,一种是表达式求导,一种是数值求导。1.
表达式求导:需要对表达式进行词法分析,然后用常见的求导公式进行演算,求得导函数。在这方面,数学软件matrix,maple做得非常好。如果自己用C进行编程,不建议。
2.
数值求导:利用导数的定义,用差分计算,当自变量趋于0时,前后两次差分收敛到需要精度,计算散州结束。这种方法可以求得某一点的导数。
例如:
求一阶导数,原函数
y
=
f(x),
程序中是float
f(float
x){
...}
dx=0.01 //虚贺设 dx 初值
do{
dd1=(f(x0) - f(x0+dx))/dx //计算导数dd1
dx = 0.5 * dx // 减小步长
dd2=(f(x0) - f(x0+dx))/dx //差掘派计算导数dd2
}while (fabs(dd1-dd2) >= 1e-06) //判断新旧导数值之差是否满足精度,满足则得结果,不满足则返回
*** 作方法如下:
第一步首先看一下matlab常用的求导,求偏导函数。
第二步在我们的电脑上打开matlab,在命令败嫌数行窗口中输入syms x,f(x)=sin(x)+x^2 ,diff(f(x)对f(x)函数进行求导。
第三步按回车键,可以看见求导的结果是2*x+cos(x)。
第四步在命令行窗口中输入diff(f(x),3),按回车键求f(x)函数的3阶导数:
第五步也可以求偏导,输入diff(f(x),x)求对偏导数。
优势特点者物
1、高效的数值计算及察首符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
2、具有完备的图形处理功能,实现计算结果和编程的可视化;
3、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
4、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)