How to write the codes for this?
조회 수: 1 (최근 30일)
이전 댓글 표시
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!