jiewenji 发表于 2024-10-26 14:08:35

欠定方程组的约束解的存在性是否有相关明确结论

先通过一个例子说明所谓明确结论的含义。例:超定方程组要么有唯一解,要么没有解。没有解的时候可以通过最小二乘法求最佳近似解。这是结论!



我的问题:

假设有欠定方程组
0.7196, 0.0694, 0.5264, 0.1107      x1         0
                                                               =
1.8332, 0.3779, 1.4690, 0.4547      x2         0

                                                      x3

                                                      x4

要求x1是正整数,x2是负整数,x3是整数,x4是整数

请问这样的解 其存在性是否有“明确”结论?比如可以证明这样的解肯定存在,或者肯定不存在。如果可以证明解不存在,那么欠定方程组求近似解的方法可否通过几何的方式讲明白?(例如超定方程组的近似解其实就是等号右边向量在方程组列空间的投影!)





static/image/hrline/line2.png


因为我对欠定方程组的近似解的几何原理不太了解。所以下面这段用matlab求近似解的代码原理 理解起来也有困难。不知道这段代码如何修改可以得到满足红色字体要求的解?我问了gpt,给出的修改代码求出的解如果满足红色字体要求,带入矩阵得出的0向量精度比较差。如果得出的0向量精确度比较高,那么解就不可能都是整数。

C = [0.7196, 0.0694, 0.5264, 0.1107;
   1.8332, 0.3779, 1.4690, 0.4547];
d = ;

% 等式约束
Aeq = [];
beq = [];

% 不等式约束,求解要求第一个未知数大于零,第二个未知数小于零,第三个未知数小于零,第四个未知数大于零
A = [-1 0 0 0;% x1 > 0->-x1 < 0
      0 1 0 0;% x2 < 0->   x2 < 0
      0 0 1 0;% x3 < 0->   x3 < 0
      0 0 0 -1]; % x4 > 0->-x4 < 0
b = ;

% 优化选项
options = optimoptions('lsqlin', 'MaxIterations', 1000, 'OptimalityTolerance', 1e-10, 'StepTolerance', 1e-10);

% 调用 lsqlin 函数
n = lsqlin(C, d, A, b, Aeq, beq, [], [], [], options);

ShuXueZhenMiHu 发表于 2024-10-31 10:45:20

本帖最后由 ShuXueZhenMiHu 于 2024-10-31 10:46 编辑

下图左侧为增广矩阵,右侧为特解和两个解基

下图为,根据解基,计算满足你条件的解。

求解程序使用了大数运算库

jiewenji 发表于 2024-11-1 13:07:59

ShuXueZhenMiHu 发表于 2024-10-31 10:45
下图左侧为增广矩阵,右侧为特解和两个解基

下图为,根据解基,计算满足你条件的解。


谢谢你的回复。
用matlab也可以得到类似结果。但是用这种种方法求得符合条件的整数解“数值”太大。四个整数已经互质了。

我看到这个结果以后才意识到还应该要进一步增加显示。就是:

要求x1是正整数,x2是负整数,x3是整数,x4是整数
同时四个解要小于100.

如果要得到满足约束条件的解是否要用到“优化”的知识?
页: [1]
查看完整版本: 欠定方程组的约束解的存在性是否有相关明确结论