フィルターのクリア

how many number of values when added becomes equal to B(Known value)

2 ビュー (過去 30 日間)
kalpana
kalpana 2014 年 7 月 28 日
コメント済み: kalpana 2014 年 7 月 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

採用された回答

Roger Stafford
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
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).
kalpana
kalpana 2014 年 7 月 30 日
Thank you for your answer sir.

サインインしてコメントする。

その他の回答 (1 件)

ES
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.
  1 件のコメント
kalpana
kalpana 2014 年 7 月 28 日
Thank you for answering. Your suggestion is useful.
Can we have some explicit formula for this if a_i's random numbers.--kalpana

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMathematics についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by