用MATLAB已知,求先画图观察,然后求函数f(x)=x^3-x^2-x-b3的极值

用MATLAB已知,求先画图观察,然后求函数f(x)=x^3-x^2-x-b3的极值,第1张

用MATLAB求函数f(x)=x^3-x^2-x-b/3的极值,可以先用图形来判断,是否有最大(小)值存在。求解过程如下:

>> x=-10:10;b=6;
>> f=x^3-x^2-x-b/3;
>> plot(x,f)   %绘图

>> func=@(x)x^3-x^2-x-6/3;
>> [x,g]=fminsearch(func,0)  %极小值
>> func=@(x)-(x^3-x^2-x-6/3);
>> [x,g]=fminsearch(func,0)  %极大值

极小值:x =    10000;g =    -3

极大值:x =   -03333;g =    18148

有三种方法:导数为0求极值、优化算法(运用函数)、绘图观察有2个函数:[x,feal,exitflag,output]=fminbnd(fun,x1,x2,options)[x,feal,exitflag,output]=fminsearch(fun,x0,options)%若exitflag给出数大于0,则成功找到极值点,x,fval分别是极值点和对应的目标函数极值运用函数的例子:在-10《x《10区间,求函数最小值x1=-10;x2=10;yx=@(x)(sin(x)^2)exp(-01x)-05sin(x)(x+01));[xn0,fval,exitflag,output]=fminbnd(yx,x1,x2)

解:先对方程求偏导数,即首先将X2看作常数,将X1看作自变量求导数得:
Y'(X1)=693569-225646X1(1)
然后将X1看作常数,将X2看作自变量求导数得:
Y'(X2)=155-2017X2(2)
当Y'(X1)=0时,代入(1)解得:X1=13522;
当Y'(X1)=0时,代入(2)解得:X2=45588
显然两个自变量的数值都在规定范围内,且Y'(X1)的值随X1增大而减小,Y'(X2)的值X2增大而减小,故原方程有最大值。将两值代入原方程得最大值:
Ymax=-3856444+9378440+706614-4689230+353305
=1892685

>> f=@(x)(x^3+cos(x)+xlog(x))/exp(x);
>> [x,fval]=fminbnd(f,0,1)
x =
05223
fval =
03974
>> f=@(x)(2x(1)^3+4x(1)x(2)^3-10x(1)x(2)+x(2)^2);
>> [x,fval]=fminsearch(f,[0 0])
x =
10016 08335
fval =
-33241


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12847200.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存