我是新手,想用matlab进行一些能量最小化的工作。能量函数以3通道图像为输入。对于每个通道,有一个能量项如下:
E = x'Ax + ||Bx||^2 + w*||x-c||^2,
其中x、c是长度为N的向量,A是大小为N*N的矩阵。A是稀疏的、半正定的,并且每行有25个非零元素,给出了对x的所有元素的约束条件。B的大小为M*N。B也是稀疏的,并且每行有2个非零元素。N大约为850,000,M大约为1,000,000。虽然B给出的约束条件多于N,但是x的某些元素与||Bx||^2项无关。项||x-c||^的权重w相当小,比如1e-3。
我已经在matlab文档中搜索过了。看起来我应该使用lsqnonlin解决这个问题。在matlab中是否有专门设计的函数或选项来进行二次形式的最小化?
对于那些熟悉计算机视觉文献的人,我实际上正在尝试实现“从照片集合中获得连贯内在图像”的算法。作者说他们使用matlab反斜杠运算符来最小化能量,但我不知道反斜杠运算符如何用于二次形式问题。
E = x'Ax + ||Bx||^2 + w*||x-c||^2,
其中x、c是长度为N的向量,A是大小为N*N的矩阵。A是稀疏的、半正定的,并且每行有25个非零元素,给出了对x的所有元素的约束条件。B的大小为M*N。B也是稀疏的,并且每行有2个非零元素。N大约为850,000,M大约为1,000,000。虽然B给出的约束条件多于N,但是x的某些元素与||Bx||^2项无关。项||x-c||^的权重w相当小,比如1e-3。
我已经在matlab文档中搜索过了。看起来我应该使用lsqnonlin解决这个问题。在matlab中是否有专门设计的函数或选项来进行二次形式的最小化?
对于那些熟悉计算机视觉文献的人,我实际上正在尝试实现“从照片集合中获得连贯内在图像”的算法。作者说他们使用matlab反斜杠运算符来最小化能量,但我不知道反斜杠运算符如何用于二次形式问题。
A
分解为A = C'*C
吗? - ShaiCx=0
的反斜杠解是最小二乘法,即最小化||Cx||^2||
。 - Shai