how can I solve this problem
조회 수: 2 (최근 30일)
이전 댓글 표시
v=0.001;
L=0.084;
D=0.042;
R=0.02;
C=0.001;
sm= v*N*L*R*L^2/(4*W*C^2);
sm=(1-p^2)^2/p*((16*p^2+pi^2*(1-p^2))^0.5;
p=?
댓글 수: 0
채택된 답변
Star Strider
2022년 7월 31일
편집: Star Strider
2022년 7월 31일
I have no idea what you want, especially with two expressions for ‘sm’ and several variables undefined, so taking a wild guess —
syms N W p
sympref('AbbreviateOutput',false);
v=0.001;
L=0.084;
D=0.042;
R=0.02;
C=0.001;
sm1 = v*N*L*R*L^2/(4*W*C^2);
sm = (1-p^2)^2/p*(16*p^2+pi^2*(1-p^2))^0.5 == sm1;
ps = solve(sm, p, 'ReturnConditions',1)
p = ps.p
condx = ps.conditions
To get a numerical result, supply values for the currently undefined variables, then one of these:
p = vpa(ps.p)
p = double(ps.p)
depending on the desired result.
EDIT — Corrected typographical error. .
댓글 수: 6
추가 답변 (1개)
Matt J
2022년 7월 31일
편집: Matt J
2022년 7월 31일
Are N and W known variables? Your code does not provide them, but if they are known, you can reorganize as a polynomial and use roots,
v=0.001;
L=0.084;
D=0.042;
R=0.02;
C=0.001;
N=1;W=1; %fake
sm= v*N*L*R*L^2/(4*W*C^2);
syms p
pol=sym2poly( sm^2*p^2*(16*p^2+pi^2*(1-p^2)) - (1-p^2)^4 )
p=roots(pol) %the solutions
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Number Theory에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!