怎么样用MATLAB求函数的微分

如题所述

使用diff命令

符号运算

diff函数用以演算一函数的微分项,相关的函数语法有下列4个:   
diff(f) 传回f对预设独立变数的一次微分值   
diff(f,'t') 传回f对独立变数t的一次微分值   
diff(f,n) 传回f对预设独立变数的n次微分值   
diff(f,'t',n) 传回f对独立变数t的n次微分值 
也即matlab求导命令diff调用格式:
diff(函数) , 求的一阶导数
diff(函数, n) , 求的n阶导数(n是具体整数);
diff(函数,变量名), 求对的偏导数
diff(函数, 变量名,n) ,求对的n阶偏导数;

  数值微分函数也是用diff,因此这个函数是靠输入的引数决定是以数值或是符号微分,如果引数为向量则执行数值微分,如果引数为符号表示式则执行符号微分。 如果输入一个长度为n的一维向量,则该函数将会返回长度为n-1的向量,向量的值是原向量相邻元素的差,于是可以计算一阶导数的有限差分近似。  
先定义下列三个方程式,接著再演算其微分项:

>>S1 = '6*x^3-4*x^2+b*x-5'; 
>>S2 = 'sin(a)'; 
>>S3 = '(1 - t^3)/(1 + t^4)'; 
>>diff(S1) 
ans=18*x^2-8*x+b 
>>diff(S1,2) 
ans= 36*x-8 
>>diff(S1,'b') 
ans= x 
>>diff(S2) 
ans= cos(a) 
>>diff(S3) 
ans=-3*t^2/(1+t^4)-4*(1-t^3)/(1+t^4)^2*t^3 

>>simplify(diff(S3)) 
ans= t^2*(-3+t^4-4*t)/(1+t^4)^2
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-09
MATLAB 提供的函数diff( )可用来求解符号对象的微分,其调用的格式为
(1) diff(S,'v'):对符号对象S 中指定的符号变量v 求其1 阶导数。
(2) diff(S):对符号对象S 中的默认的独立变量求其1 阶导数。
(3) diff(S,n):对符号对象S 中的默认的独立变量求其n 阶导数。
(4) diff(S,'v',n):对符号对象S 中指定的符号变量v 求其n 阶导数。
下面举例说明用法:
>> syms x n
>> y=sin(x)^n*cos(n*x);
>> Xd=diff(y)
Xd =
sin(x)^n*n*cos(x)/sin(x)*cos(n*x)-sin(x)^n*sin(n*x)*n
>> Nd=diff(y, n)
Nd =
sin(x)^n*log(sin(x))*cos(n*x)-sin(x)^n*sin(n*x)*x
第2个回答  2013-04-09
楼上的兄弟已经说的挺好了,这里给出一个典型的例子,希望有所帮助,呵呵
相似回答