求解二次规划问题Se​DuMi与quadp​rog结果不同。

小弟想估计发射源的位置以及速度,当下式最小时,phi2为发射源位置以及速度的平方,即(x^2;y^2;z^2;x_dot^2;y_dot^2;z_dot^2),只需开方即可求出发射源的坐标以及速度。
min (h2-G2*phi2)'*W2*(h2-G2*phi2)
subject to: D*phi2>a
其中h2,G2,W2,我已经求出来了,h2是一个8*1的向量,G2为8*6的矩阵,W2是8*8的正定矩阵,phi2是一个6*1的向量,D=[-1,0,0,0,0,0;0,-1,0,0,0,0;0,0,-1,0,0,0], a=[0,0,0]'。这是一个二次规划问题,我用CVX工具箱中的SeDuMi工具箱以及MATLAB自带的quadprog求解上述问题,得到的结果有一些不同,结果如下:
用SeDuMi求解 用quadprog求解
13935.3373803416 13935.1590703587
105316.492112397 105315.467467274
0.102776380748186 0
-6028.99364019712 -6028.94828191892
-7110.13647564898 -7110.12797986381
-12352.1676364780 -12352.1748525614
虽然大部分结果基本相同,但是quadprog求解时第3个元素出现0,而我后面需要求1/phi2(3),这会出现无穷大,请问为什么会出现这个问题,应该如何解决?小弟初学优化,还请多多指教~

 Akzeptierte Antwort

netevo
netevo am 18 Nov. 2022

0 Stimmen

1. 虽然我不理解phi2是什么,但是总之这个函数需要对求解结果x的每个分量进行一些运算,在运算前加入判断就可以。
2. 我不理解为何lz要对比SeDuMi与quadprog的结果。我想实际上只能用一种方法求解,而不论哪种,1中所述都不能忽略。

Weitere Antworten (0)

Kategorien

Tags

Gefragt:

am 18 Nov. 2022

Beantwortet:

am 18 Nov. 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!