怎么样用MATLAB求函数的微分
3个回答
展开全部
使用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
符号运算
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
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
(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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-09
展开全部
楼上的兄弟已经说的挺好了,这里给出一个典型的例子,希望有所帮助,呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询