Ax=b question

1 view (last 30 days)
Vince Smith
Vince Smith on 22 Apr 2019
Edited: Matt J on 22 Apr 2019
Consider the matrix equation, Ax=b. Suppose I want to manipulate one of the values of b by increasing it in multiples of 100 until the maximum value within the x matrix exceeds 50000. What sort of code would I write to determine the size of the manipulated b value and which value of x exceeds 50000?

Accepted Answer

Matt J
Matt J on 22 Apr 2019
Edited: Matt J on 22 Apr 2019
You could use intlinprog. Assuming WNLOG that the manipulated b value is b(1),
N=numel(b);
f=[-1,zeros(1,N)].';
Aeq=[+100*f(1:N),A];
beq=[0;b(2:N)];
lb=[0;inf(N,1)];
ub=[inf;50000*ones(N,1)];
solution = intlinprog(f,1,[],[],Aeq,beq,lb,ub);
b_manipulated=100*solution(1)+100;
x=A\[b_manipulated;b(2:N)];
find(x>50000)

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by