MATLAB创建m文件后提示to run this file,you can either change the matlab current directory or add...function [s,phis,k,G,E]=golds(phi,a,b,delta,epsilon)%功能:0.618法精确线搜索%输入:phi是目标函数,a,b 是搜索区间的两个端点%

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 22:39:33
MATLAB创建m文件后提示to run this file,you can either change the matlab current directory or add...function [s,phis,k,G,E]=golds(phi,a,b,delta,epsilon)%功能:0.618法精确线搜索%输入:phi是目标函数,a,b 是搜索区间的两个端点%

MATLAB创建m文件后提示to run this file,you can either change the matlab current directory or add...function [s,phis,k,G,E]=golds(phi,a,b,delta,epsilon)%功能:0.618法精确线搜索%输入:phi是目标函数,a,b 是搜索区间的两个端点%
MATLAB创建m文件后提示to run this file,you can either change the matlab current directory or add...
function [s,phis,k,G,E]=golds(phi,a,b,delta,epsilon)
%功能:0.618法精确线搜索
%输入:phi是目标函数,a,b 是搜索区间的两个端点
% delta,epsilon分别是自变量和函数值的容许误差
%输出:s,phis分别是近似极小点和极小值,G是nx4矩阵,
% 其第k行分别是a,p,q,b的第k次迭代值[ak,pk,qk,bk],
% E=[ds,dphi],分别是s和phis的误差限.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
t=(sqrt(5)-1)/2; h=b-a; phia=feval(phi,a); phib=feval(phi,b);
p=a+(1-t)*h; q=a+t*h; phip=feval(phi,p); phiq=feval(phi,q);
k=1; G(k,:)=[a,p,q,b];
while(abs(phib-phia)>epsilon)||(h>delta)
if(phip

MATLAB创建m文件后提示to run this file,you can either change the matlab current directory or add...function [s,phis,k,G,E]=golds(phi,a,b,delta,epsilon)%功能:0.618法精确线搜索%输入:phi是目标函数,a,b 是搜索区间的两个端点%
没事的,因为这个函数是你自己定义的,所以所有的参数都会提示未定义.但是当你调用这个函数时不会出现问题的.