我一直在解决线性方程组以获得x。
是这样的;
A* ([4;0] + X*([4; 3] - [4;0])) = B
给定A = [-1 0; 0 -1; 1 1]
和B = [0; 0; 5]
。
我期望的解是一个最大的X可能是1/3的解。换句话说,X是一个满足条件的标量。
如果你有符号工具箱,你可以这样做:
A = [-1 0; 0 -1; 1 1];
B = [0;0;5];
syms X positive;
test = A*([4;0] + X*([4; 3] - [4;0]))-B;
solve(test<0,X);
这将给你一个范围(0,1/3),其中test<0
为真。或者在这种情况下,你可以直接解test(3)==0
来得到确切的答案。
否则,您可以编写一个函数来评估是否满足您的条件:
F = @(X)all(A*([4;0]+X*([4;3]-[4;0]))<B)
然后编写一些代码,手动计算不同X的F(X),直到您得到X的最大值的某个阈值