实验三 函数的最值与导数
【实验目的】
(1)加深对导数的认识
(2)学会求导数最值的方法并能运用到实际问题中去
§2 实验内容与练习
2.1 最值问题与求解
练习3
>> [x,y]=fminsearch(@(x)(x^5-3*x^2+2)*exp(x)+x,0.5)
x =
1.0441
y =
0.9600
练习4
>> [x,y]=fminbnd(@(x)(1-x)*x^(2/3),-1,0)
x =
-0.9999
y =
-0.9999 + 1.7319i
例1
>> [x,y]=fminbnd(@(x)(2500*x+2061/x),0,2)
x =
0.9080
y =
4.5398e+03
2.3 导数的计算
1.求导命令diff
diff(f(x),x)
diff(f(x),x,n)
练习11
(1)
>> syms x
>> diff(atan(sqrt(6*x-1)),x)
ans =
1/(2*x*(6*x - 1)^(1/2))
(2)
>> syms x a
>> diff(log(x+sqrt(x^2+a^2)),x)
ans =
(x/(a^2 + x^2)^(1/2) + 1)/(x + (a^2 + x^2)^(1/2))
(3)
>> syms x
>> diff(x*asin(sqrt(x)))
ans =
asin(x^(1/2)) + x^(1/2)/(2*(1 - x)^(1/2))
(4)
>> syms x
>> diff(x^tan(x))
ans =
x^(tan(x) - 1)*tan(x) + x^tan(x)*log(x)*(tan(x)^2 + 1)
(5)
>> syms t a
subs(diff(log(1+a^(-2*t)),t),t,0)
ans =
-log(a)
练习12
>> syms x
>> diff(1/(1-x^2),6)
ans =
720/(x^2 - 1)^4 - (17280*x^2)/(x^2 - 1)^5 + (57600*x^4)/(x^2 - 1)^6 - (46080*x^6)/(x^2 - 1)^7
>> subs(diff(1/(1-x^2),10),x,0)
ans =
3628800
2.隐函数与由参数确定的函数的导数
例3
>> syms x y
>> f=sym(x*y-exp(x)+exp(y));
>> -diff(f,x)/diff(f,y)
ans =
-(y - exp(x))/(x + exp(y))
例4
>> syms R t;
x=R*(t-sin(t));y=R*(1-cos(t));
diff(y,t)/diff(x,t)
ans =
-sin(t)/(cos(t) - 1)
练习13
syms x y z
f=sym(atan(y/x)-log(x^2+y^2));
-diff(f,x)/diff(f,y)
ans =
((2*x)/(x^2 + y^2) + y/(x^2*(y^2/x^2 + 1)))/(1/(x*(y^2/x^2 + 1)) - (2*y)/(x^2 + y^2))
>> -diff(ans,x)/diff(ans,y)
ans =
((2/(x^2 + y^2) - (4*x^2)/(x^2 + y^2)^2 - (2*y)/(x^3*(y^2/x^2 + 1)) + (2*y^3)/(x^5*(y^2/x^2 + 1)^2))/(1/(x*(y^2/x^2 + 1)) - (2*y)/(x^2 + y^2)) - (((2*x)/(x^2 + y^2) + y/(x^2*(y^2/x^2 + 1)))*((4*x*y)/(x^2 + y^2)^2 - 1/(x^2*(y^2/x^2 + 1)) + (2*y^2)/(x^4*(y^2/x^2 + 1)^2)))/(1/(x*(y^2/x^2 + 1)) - (2*y)/(x^2 + y^2))^2)/(((4*x*y)/(x^2 + y^2)^2 - 1/(x^2*(y^2/x^2 + 1)) + (2*y^2)/(x^4*(y^2/x^2 + 1)^2))/(1/(x*(y^2/x^2 + 1)) - (2*y)/(x^2 + y^2)) - (((2*x)/(x^2 + y^2) + y/(x^2*(y^2/x^2 + 1)))*(2/(x^2 + y^2) - (4*y^2)/(x^2 + y^2)^2 + (2*y)/(x^3*(y^2/x^2 + 1)^2)))/(1/(x*(y^2/x^2 + 1)) - (2*y)/(x^2 + y^2))^2)
练习14
(1)
>> syms x y t
x=(t-1)/(t+1);y=t^2/(t+1);
diff(y,t)/diff(x,t)
ans =
((2*t)/(t + 1) - t^2/(t + 1)^2)/(1/(t + 1) - (t - 1)/(t + 1)^2)
(2)
>> syms x y t
x=(cos(t))^3;y=(sin(t))^3;
diff(y,t)/diff(x,t)
ans =
-sin(t)/cos(t)
2.4 极值的计算
1.直接利用MATLAB语句计算
fminbnd(f,a,b)
fminsearch(f(x),x0)
练习16
>> fminsearch(@(x)abs(x*x-3*x-2),0)
ans =
-0.5616
>> fminsearch(@(x)-abs(x*x-3*x-2),0)
ans =
1.5000
练习17
>> fminsearch(@(x)-(x^2*cos(x)+log(abs(x))),1)
ans =
1.2699
2.利用导数计算
例5
f=inline('3*x^4-4*x^3-6*x^2+12*x');
pmin=fminbnd(f,-3,5);
g=inline('-3*x^4-4*x^3-6*x^2+12*x');
pmax=fminbnd(g,-3,5);
fprintf('%g,%g,%g,%g\n',pmin,f(pmin),pmax,f(pmax))
-1,-11,4.99996,1284.95
练习18
f=inline('x*exp(-x^2)');
pmin=fminbnd(f,-3,5);
g=inline('-x*exp(-x^2)');
pmax=fminbnd(g,-3,5);
fprintf('%g,%g,%g,%g\n',pmin,f(pmin),pmax,f(pmax))
4.99994,6.94774e-11,0.7071,0.428882
练习19
f=inline('abs(x)*exp(-abs(x-1))');
pmin=fminbnd(f,-3,5);
g=inline('-abs(x)*exp(-abs(x-1))');
pmax=fminbnd(g,-3,5);
fprintf('%g,%g,%g,%g\n',pmin,f(pmin),pmax,f(pmax))
-6.36389e-06,2.34113e-06,1.00003,1