繁体   English   中英

Matlab @fminunc目标函数优化

[英]Matlab @fminunc objective function optimization

我目前正在Matlab中进行简单的函数优化,希望您对以下错误提供很少的帮助/解释:

%quadramin.m
function z=quadramin(param,data);
z=data.*(param(1).^2 - param(2).^3)+3;

%quadramin_lik.m
function quadlik = quadramin_lik(param,data);
%pseudo/ad-hoc log-likelihood function
quadlik = quadramin(param,data)- 10;

%script.m
data=trnd(5,6,1);
param0=[2,3];
[param_eq,exitflag,output,grad,hessian] = ... 
fminunc(@(param) quadramin_lik(param,data),param0)

执行%script.m之后的输出: 使用fminunc时出错(第333行)用户提供的目标函数必须返回标量值。

ps:看起来很矛盾,因为用户定义的函数quadramin && quadramin_lik会返回值。

谢谢

您的两个函数均返回值向量,而fminunc要求函数返回标量/单个值。 错误非常明显。 函数fminunc试图找到最小化成本函数的最佳解决方案,因此您需要提供的是成本函数。

因此,也许在返回结果之前尝试对每个函数的结果求和....但是这样做并不能保证全局最小值,因为fminunc假定您的成本函数是凸的。 但是,在计算对数似然率时,从您的评论中判断,然后求和就是您应该采取的所有措施!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM