如何用Matlab求二阶导数

2025-09-28 16:28:46

Matlab以其强大的数值计算能力,在导数的计算方面,其功能也是非常强大的,在科学研究中,我们常常需要求一些复杂函数的一阶、二阶或更高阶的导数。这些函数或未知数的项数比较高,或是带根号之类的。如果用笔算的话,不仅麻烦,浪费时间,还容易出错。下面我们就来看一下,如何用matlab计算一阶和二阶导数。

如何用Matlab求二阶导数

工具/原料

Matlab2012b

一、用matlab计算一阶导数

函数:diff(y,x)

其中:y为函数,x为未知数。

例如求y=(1+x^(-1/3))/(1+x^2)的导数,在matlab中的代码如下:

>> y=(1+x^(-1/3))/(1+x^2) 

>> diff(y,x) 

ans = 

- 1/(3*x^(4/3)*(x^2 + 1)) - (2*x*(1/x^(1/3) + 1))/(x^2 + 1)^2

其中:黑色加粗斜体为计算结果。

如何用Matlab求二阶导数

二、用matlab计算二阶导数

函数:diff(y,x,2)

其中:y为函数,x为未知数。

例如求y=(1+x^(-1/3))/(1+x^2)的导数,在matlab中的代码如下:

>> y=(1+x^(-1/3))/(1+x^2); 

diff(y,x,2)

ans = 

4/(3*x^(1/3)*(x^2 + 1)^2) - (2*(1/x^(1/3) + 1))/(x^2 + 1)^2 + 4/(9*x^(7/3)*(x^2 + 1)) + (8*x^2*(1/x^(1/3) + 1))/(x^2 + 1)^3

其中:黑色加粗斜体为计算结果。

显示出matlab的便捷和快速来了吧。

如何用Matlab求二阶导数

再来看一个我在学习数字信号处理过程中遇到的一个求二次导数的例子。比较复杂,分母包含w的二次项,分子含有虚数单位j。式子在这里我用mathtype打出来了,截个图给大家看一下。PS:想学习了解mathtype的同学,可以参考一下我的另一篇百度经验:如何用Mathtype将数学符号公式插入Word文档中。

如何用Matlab求二阶导数

在matlab中求解的代码:

>> syms w;

F(w)=8*exp(-j*5*w)/(16+w^2);

diff(F(w),w,2) 

ans = 

- (200*exp(-w*5*i))/(w^2 + 16) - (16*exp(-w*5*i))/(w^2 + 16)^2 + (64*w^2*exp(-w*5*i))/(w^2 + 16)^3 + (w*exp(-w*5*i)*160*i)/(w^2 + 16)^2 

>> pretty(ans) 

      2 

  64 w  exp(-5 w i)   16 exp(-5 w i)   200 exp(-5 w i)   160 w exp(-5 w i) i 

  ----------------- - -------------- - --------------- + ------------------- 

       2      3           2      2          2                  2      2 

     (w  + 16)          (w  + 16)          w  + 16           (w  + 16)

pretty(ans)为对结果进行美化,写成我们常用的形式。

如何用Matlab求二阶导数

注意事项

很简单。记住要调用的函数:一阶diff(y,x),二阶diff(y,x,2). 

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢