Ax=b question
조회 수: 2 (최근 30일)
이전 댓글 표시
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?
댓글 수: 0
채택된 답변
Matt J
2019년 4월 22일
편집: Matt J
2019년 4월 22일
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)
댓글 수: 0
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Operating on Diagonal Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!