资源描述:
《附录4 scilab中求函数的极值点》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在scilab中求函数的极值点在scilab中求连续函数的极值点可以用fminsearch函数函数格式:x=fminsearch(costf,x0)x=fminsearch(costf,x0,options)[x,fval,exitflag,output]=fminsearch(costf,x0,options)函数说明:(1)costf为求极小值点的连续函数(2)x0为极小值点的猜测值,x0可以是标量、向量或矩阵(3)options为函数控制参数,可以通过optimset函数设置options相关参数,options=optimset(funname)//获取funna
2、me函数的options参数值索引表options=optimset(key,value)options=optimset(key1,value1,key2,value2,...)//设置key参数及其值,未设置的为默认值options=optimset(oldoptions,key,value)//复制一个已存在的选项,修改特定参数项ParameterValueDescriptionDisplay'off'
3、'iter'
4、'final'
5、'notify''off'表示不显示输出;'iter'显示每次迭代的结果;'final'只显示最终结果;'notify'只在函数不收敛
6、的时候显示结果.MaxFunEvalspositiveinteger函数允许估值的最大值.MaxIterpositiveinteger迭代次数的最大值.TolFunpositivescalar函数迭代值的终止误差.TolXpositivescalar结束迭代的X值误差.3如修改函数fminsearch的计算结果误差options=optimset('fminsearch');options.TolX=0.001;(4)返回值exitflag来表示fminsearch退出的条件:1--函数找到结果x0--函数最大功能评价次数达到,或者是迭代次数达到-1--算法由外部函数结束
7、(5)返回值output包含最优化函数的信息:output.algorithm使用的优化算法output.funcCount函式计算次数output.iterations迭代次数output.message退出信息注:要求函数f(x)的极大值点,只需求函数-f(x)的极小值点例1求函数y=x^3-2*x+3的极值-->options=optimset('fminsearch')//获取fminsearch函数的参数值索引表options=Display:"notify"FunValCheck:[0x0constant]MaxFunEvals:"200*numberofva
8、riables"MaxIter:"200*numberofvariables"OutputFcn:[0x0constant]PlotFcns:[0x0constant]TolFun:0.0001TolX:0.0001-->deff('y=g(x)','y=x^3-2*x+3')-->x=fminsearch(g,0)//在默认参数值下求得的极值情况x=0.81650393-->options.MaxIter=10//在fminsearch函数的参数值索引表(前已获取)中修改函数的计算迭代次数//参数options值也可如下直接修改-->options=optimset("
9、MaxIter",10)options=Display:"notify"FunValCheck:[0x0constant]MaxFunEvals:"200*numberofvariables"MaxIter:10OutputFcn:[0x0constant]PlotFcns:[0x0constant]TolFun:0.0001TolX:0.0001-->deff('y=g(x)','y=x^3-2*x+3');-->x=fminsearch(g,0,options)fminsearch:Exiting:Maximumnumberofiterationshasbeenexc
10、eeded-increaseMaxIteroption.Currentfunctionvalue:1.911815x=0.8025例2求二元函数z=(x-1)^2+2*y^2+3的极值-->deff('z=f(x)','z=(x(1)-1)^2+2*x(2)^2+3')-->-->[x,fval,exitflag,output]=fminsearch(f,[0,1])output=algorithm:"Nelder-Meadsimplexdirectsearch"funcCount:147iterations:78messag