Matlab 求和函数的Argmin-最小搜索的优化

Matlab 求和函数的Argmin-最小搜索的优化,matlab,optimization,Matlab,Optimization,我试图在Matlab中编写以下优化问题: g=argmin∑k=1,2,3((vk-c1)-g·(Dk-c2))² c1和c2是常数。vk和Dk是向量。g必须是正的 我意识到MATLAB有一个内置函数,应该能够执行这项任务,但是我不知道如何在函数中包含所有的求和k。为什么要费心搜索?最小化函数是未知g中的一个简单的二次多项式函数,当其导数为零时,即 ∑k=1,2,3[-2*((vk-c1)-g*(Dk-c2))*(Dk-c2)]=0 这将产生: gm=∑k=1,2,3[(vk-c1)*(Dk-c

我试图在Matlab中编写以下优化问题:

g=argmin∑k=1,2,3((vk-c1)-g·(Dk-c2))²

c1和c2是常数。vk和Dk是向量。g必须是正的


我意识到MATLAB有一个内置函数,应该能够执行这项任务,但是我不知道如何在函数中包含所有的求和
k

为什么要费心搜索?最小化函数是未知
g
中的一个简单的二次多项式函数,当其导数为零时,即

∑k=1,2,3[-2*((vk-c1)-g*(Dk-c2))*(Dk-c2)]=0

这将产生:

gm=∑k=1,2,3[(vk-c1)*(Dk-c2)]/∑k=1,2,3(Dk-c2)^2

如果gm为负值,则选择第一个可用的非负值,即零:

g=最大值(0,克)

砰!救援的基础数学!…:-)

MATLAB代码将是:

%// some test data
v  = [1,2,3];
D  = [4,5,6];
c1 = 0.3;
c2 = 0.7;

%// minimizer
g = max(0, sum((v(:)-c1).*(D(:)-c2)) / sum((D(:)-c2).^2));

为什么要费心搜索?最小化函数是未知
g
中的一个简单的二次多项式函数,当其导数为零时,即

∑k=1,2,3[-2*((vk-c1)-g*(Dk-c2))*(Dk-c2)]=0

这将产生:

gm=∑k=1,2,3[(vk-c1)*(Dk-c2)]/∑k=1,2,3(Dk-c2)^2

如果gm为负值,则选择第一个可用的非负值,即零:

g=最大值(0,克)

砰!救援的基础数学!…:-)

MATLAB代码将是:

%// some test data
v  = [1,2,3];
D  = [4,5,6];
c1 = 0.3;
c2 = 0.7;

%// minimizer
g = max(0, sum((v(:)-c1).*(D(:)-c2)) / sum((D(:)-c2).^2));

在这种情况下使用基础数学是个好主意:)效果很好,非常感谢!在这种情况下使用基础数学是个好主意:)效果很好,非常感谢!