how many number of values when added becomes equal to B(Known value)
조회 수: 1 (최근 30일)
이전 댓글 표시
I have to find the X value for which \sum_(i=1)^X (i * a_i ) >= B
or ( 1*a_1 + 2*a_2 + --- + X*a_x >= B ) where a_i & B are known.
For finding the X value; is there any explicit formula? If anyone knows, please answer.
Thank you very much, kalpana
댓글 수: 0
채택된 답변
Roger Stafford
2014년 7월 28일
Assume 'a' is a row vector.
x = 1:size(a,2);
X = x(cumsum(x.*a)>=B);
댓글 수: 5
Roger Stafford
2014년 7월 28일
I've already told you. The first X that satisfies your inequality is the first element in my X. It is of course X(1).
추가 답변 (1개)
ES
2014년 7월 28일
Immediate Response would be, you can run a loop and sum it up and check if the sum is greater than or equal to B at every iteration and break out of loop when it is satisfied.
A more measured approach will be, to use summation by parts. For example if length of a_i is 100, you could first check if summation(a_i*X) for X=1:50. If B is smaller, then you can run the summation for X=1:75. If B is greater, then you can run for X=1:25 and proceed so on.. But for this to work, a_i should be monotonically increasing.
Analysis of a_i (if it is a series or so) could also be useful.
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!