我想最小化这个功能:
function [GCV2]=GCV(y,x,k)
[n, p]=size(x);
A=(x'*x+k*eye(p));
A=A\x';
A=x*A;
I_mat=eye(n);
num2=(I_mat-A);
num2=num2*y;
num2=norm(num2);
num2=num2^2;
num2=num2/n;
%(norm((I_mat-A)*y)^2)/n;
den2=(I_mat-A);
den2=trace(den2);
den2=den2/n;
den2=den2^2;
GCV2=num2/den2;
end
和值分别是 13×4)x
和y
13×1 数组,这些值已经在 Matlab 工作区中定义。我想优化该k
值,以使函数值GCV
最小化。
被优化的参数和输出都是标量的,所以fminsearch
应该是合适的。
但我不能让它运行?
我尝试了几种方法,最新的是:
k_min = fminsearch(@GCV,(x;y;0));
??? k_min = fminsearch(@GCV,(x;y;0));
|
Error: Unbalanced or unexpected parenthesis or bracket.
我究竟做错了什么?