How to write the codes for this?
1 回表示 (過去 30 日間)
古いコメントを表示
MD. Rokibujjaman sovon
2020 年 10 月 23 日
コメント済み: MD Rokibujjaman Sabuj
2020 年 10 月 23 日
i am trying to get the value for b.
where
t = [89;132;202;263;321;362;421;473;575;663]
n=10;
syms b
[b] = solve((1/b) + sum(log(t))/10 - 1.*sum(t.^b).*log(t)/(sum(t.^b))==0)
i tried this code to find 'b' but i am not getting the value of 'b'. How can i get the value for 'b'?
0 件のコメント
採用された回答
Ameer Hamza
2020 年 10 月 23 日
If you want to find value of 'b' for each value of 't' then try this
tv = [89;132;202;263;321;362;421;473;575;663];
syms b t
b_sol = solve((1/b) + sum(log(t))/10 - 1/(sum(t.^b)/10).*sum(t.^b).*log(t)==0, b);
b_vals = subs(b_sol, t, tv)
5 件のコメント
Ameer Hamza
2020 年 10 月 23 日
You were also dividing the term in the denominator by 10. Try the following code
t = [89;132;202;263;321;362;421;473;575;663]
n=10;
syms b
b_sol = solve((1/b) + sum(log(t))/10 - 1/(sum(t.^b)).*sum((t.^b).*log(t))==0)
Result
b_sol =
2.0923855034345368572888674897445
その他の回答 (1 件)
Walter Roberson
2020 年 10 月 23 日
Your t is a vector.
[b] = solve((1/b) + sum(log(t))/10 - 1/(sum(t.^b)/10).*sum(t.^b).*log(t)==0)
You have log(t) there at the end, in a context that is not inside a sum() like the rest of the places you use t. Therefore you are generating a vector of equations, and you are asking solve() to find a single t that solves all of the equations simultaneously.
You need to re-check your last term. For example there is a numeric solution for
vpasolve((1/b) + sum(log(t))/10 - 1/(sum(t.^b)/10).*sum(t.^b.*log(t))==0, 0.02)
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Specialized Power Systems についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!