怎么求函数的极小值 matlab里

Fun_Dist =
@(rv)2.*exp((3148845754526937.*rv)./17592186044416)+2.*exp((1550533805295011.*rv)./35184372088832)+2.*exp((482079086066413.*rv)./8796093022208)
求出这个函数后,rv是未知的,也就是一元函数。为了方便后面还有很长没有写上 ,怎么求其极小值? 请写上程序 在线等 谢啦!!!!

1、首先在电脑中启动MATLAB,新建脚本(Ctrl+N),在脚本编辑区输入如下代码。

2、其中f=@(x)是通过匿名函数的方法定义函数,inline( )是通过内联函数的方法定义函数。

3、然后保存和运行上述脚本,如下图所示。

4、在命令行窗口返回如下结果。

5、保存和运行上述脚本也会得到以下图像,可以看到函数f(x)=sin(x)+x*cos(x)的曲线,以及它在区间[0, 5]上的极大值与极小值,如下图所示就完成了。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-26
有三种方法:
导数为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(-0.1*x)-0.5*sin(x)*(x+0.1));
[xn0,fval,exitflag,output]=fminbnd(yx,x1,x2)追问

output 怎么设置呢? 一般设为几?

追答

output是输出量,表示优化算法和迭代次数
>>
>> x1=-10;x2=10;
yx=@(x)(sin(x)^2*exp(-0.1*x)-0.5*sin(x)*(x+0.1));
[xn0,fval,exitflag,output]=fminbnd(yx,x1,x2)
xn0 =
2.5148

fval =
-0.4993

exitflag =
1

output =
iterations: 13
funcCount: 14
algorithm: 'golden section search, parabolic interpolation'
message: [1x112 char]

追问

我可以加你为好友么 ?论文急需 谢谢啦 小女子不胜感激!! 我号码私信发你 好么

追答

嗯,可以,百度私聊还是什么

追问

我发给你私信了 你看下

本回答被提问者采纳
第2个回答  2013-08-15
fminsearch
相似回答