《精通MATLAB最优化计算》一书中Funval函数应用

来源:百度知道 编辑:UC知道 时间:2024/06/18 00:13:40
在《精通MATLAB最优化计算》一书中,很多m文件中都用到了Funval函数,可是这个函数没有定义,怎么办?这次函数的源程序我有,可是不知道怎么用?
我有这个函数的源程序,但是在调用这个函数的其余函数的m文件时如何使用啊?

此书funval函数的作用即求函数值,可将funval直接改写为subs,不影响结果。subs的用法你会吧?~

%%我用这个函数调试成功了
function fv = Funval(f,varvec,varval)
var = symvar(f);
varc = symvar(varvec);
s1 = length(var);
s2 = length(varc);
m =floor((s1-1)/3+1);
varv = zeros(1,m);
if s1 ~= s2
for i=0: ((s1-1)/3)
k = strfind(varc,var(3*i+1));
index = (k-1)/3;
varv(i+1) = varval(index+1);
end
fv = subs(f,var,varv);
else
fv = subs(f,varvec,transpose(varval));
end
end

function fv = Funval(f,varvec,varval)
var = findsym(f);
varc = findsym(varvec);
s1 = length(var);
s2 = length(varc);
m =floor((s1-1)/3+1);
varv = zeros(1,m);

if s1 ~= s2
for i=0: ((s1-1)/3)
k = findstr(varc,var(3*i+1));
index = (k-1)/3;
varv(i+1) = varval(index+1);
end
fv = subs(f,var,varv);
else
fv = subs(f,varvec,varval);
end