(Simple) How to solve basic equation

조회 수: 7 (최근 30일)
A
A 2014년 11월 25일
답변: Amutha S 2020년 12월 16일
Wondering if someone can help me find the error in this simple code. I'm trying to solve for N in terms of b and bt.
sym b bt N
k = 1/24;
l = (b + 0.5)/(6 + 12*b);
m = (b^2 + b/2)/(2 + 4*b);
q = ( (-k+l+m) + bt*(-4*k+3*l+2*m) )/ (1 + 2*bt);
eqn = -1/336 - l/24 + (6/5)*l^2 + 3*m/10 + 2*m*l + (2/3)*m^2 - q/6 - bt*q/6 + (3*l*q + 2*m*q)*(1+bt) == 1/N;
s = solve(eqn, N)

채택된 답변

Star Strider
Star Strider 2014년 11월 25일
In R2014b, you have to replace ‘sym’ with ‘syms’. Otherwise, all you need to do is to add collect and simplify calls to get a simplified result:
s = solve(eqn, N)
s = simplify(collect(s),'steps',10)
produces:
s =
10080/((1260*bt + 1680)*b^2 + (420*bt + 1596)*b + 35*bt + 54)
  댓글 수: 2
A
A 2014년 11월 26일
This is exactly what I needed, thank you very much! Appreciate the simplify function also.
Star Strider
Star Strider 2014년 11월 26일
My pleasure!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Amutha S
Amutha S 2020년 12월 16일
sym b bt N
k = 1/24;
l = (b + 0.5)/(6 + 12*b);
m = (b^2 + b/2)/(2 + 4*b);
q = ( (-k+l+m) + bt*(-4*k+3*l+2*m) )/ (1 + 2*bt);
eqn = -1/336 - l/24 + (6/5)*l^2 + 3*m/10 + 2*m*l + (2/3)*m^2 - q/6 - bt*q/6 + (3*l*q + 2*m*q)*(1+bt) == 1/N;
s = solve(eqn, N)

카테고리

Help CenterFile Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by