matlab|求导数/最值

本博文源于matlab求导数求极值求最值,涉及内容极限命令求导/diff求导/一元函数一阶导数,多阶导数,求参数导数/函数极值和最值/不给定区间求最值

用极限命令求导

例子:求函数3sinx+4x^2在x=0处的导数

>>  syms t;
limit((3*sin(t)+4*t^2)/t,0)
 
ans =
 
3
 
 
>> 

求一元函数的导数

diff(函数)

求3sinx+4x^2的导数

>> syms x;
diff(3*sin(x)+4*x^2) 
 
ans =
 
3*cos(x)+8*x
 
 
>> 

求y=ln(x+cosx)的导数

>> syms x;
diff(log(x+cos(x)))
 
ans =
 
(1-sin(x))/(x+cos(x))
 
 

求一组一元函数导数

例子:求向量的导数

matlab|求导数/最值_第1张图片

>> syms x;
diff([sin(x)+1,cos(x)+x,4*x^4])

 
ans =
 
[   cos(x), 1-sin(x),   16*x^3]
 
 

求一元函数的高阶导数

大家千万不要diff嵌套,直接后面追加参数

例子:求3sinx+4x^8的7阶导数

>> syms x;
diff(3*sin(x)+4*x^8,7)

 
ans =
 
-3*cos(x)+161280*x
 
 
>> 

参数方程形式的函数求导

例子:求参数导数

matlab|求导数/最值_第2张图片

 
>> syms t
dx_dt=diff(t^2-log(2+sin(t)));
dy_dt=diff(t^3-3*sin(log(t)));
dy_dx=dy_dt/dx_dt
 
dy_dx =
 
(3*t^2-3*cos(log(t))/t)/(2*t-cos(t)/(2+sin(t)))
 
 
>> 

求函数的极值和最值

[x,f]=fminbnd('f(x)',a,b)

即计算f(x)在区间[a,b]内的最小值点x和最小值f

例子:计算x^2-3*x+1在[-10,10]的最值

>>  [x,f]=fminbnd('x^2-3*x+1',-10,10)

x =

    1.5000


f =

   -1.2500

>> 

在不给定区间,求函数在某一点附近的局部最小值和最小值点

[x,f]=fminsearch('f(x)',a)

例子求y=sin2x+1在3点附近最小值

>>  [x,f]=fminsearch('sin(2*x)+1',3)

x =

    2.3562


f =

  8.9290e-011

你可能感兴趣的:(数学建模)