gpt4 book ai didi

c++ - 具有单位 vector 约束的非线性优化

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:24:48 26 4
gpt4 key购买 nike

我有一个 3x3 矩阵 E,我正在尝试解决这个优化问题:

|| E * t || = minimum

其中 t 是我正在寻找的解决方案,它必须是单位 vector (表示为 3x1 矩阵)。 || x||表示 x 的欧氏距离。

是否有库可以帮助我解决这个问题?我在各种库中找到了几个求解函数,但我似乎找不到一个可以让我施加额外约束的函数,即 t 必须是单位 vector 。那么我可以在没有图书馆的情况下以编程方式解决这个问题吗?

最佳答案

在我看来,这像是一个特征向量类型的问题——您的最小值 应该是E 的特征值中绝对值最小的一个。

做一个singular value decomposition (SVD) 矩阵 E(这个操作应该作为任何好的线性代数库的一部分可用)。这将为您提供 E 的因式分解:

E =  U diag V*

其中 diag 是具有非负对角线值的对角矩阵,UV 是正交矩阵。

找到diag的最小对角线元素; V* 的相应行(或 V 的列)是您对 t 的解决方案。

t 的这个值将是一个单位 vector ,因为 V 是标准正交的,并且生成的 vector E t 将是最小的,因为 UV 保留 vector 长度。

关于c++ - 具有单位 vector 约束的非线性优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12713381/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com