How to determine if my equation is equal to, less that or more then 0?
4 ビュー (過去 30 日間)
古いコメントを表示
Hi,
Im trying to solve 2nd order ODE's and determine if the solution is critically damped, over damped or under damped.
I rearranged the formula and inputted the equation to solve the quadratic equation (which works) however i cannot get the IF statement to tell me when if D=0, D<0 or D>0. Is this running into problems with the complex numbers?
Please could someone point me in the correct direction with the IF statements?
A section of the script can be seen below:
a = 1
b = 1
c = 1
D = sqrt((b^2/(4*a^2))-(c/a));
if D>0
disp('Over Damped')
elseif D<0
disp('Under Damped')
else D==0
disp('Critically Damped')
end
2 件のコメント
Jos (10584)
2019 年 10 月 14 日
Did you debug your code, by for instance, displaying D before the if statement (remove the semicolon)?
採用された回答
J Chen
2019 年 10 月 14 日
- The result of sqrt((b^2/(4*a^2))-(c/a)) is a complex number. You can't compare it with 0 (a real number)
- The formula for damping ratio is probably wrong. Should it be b/(2*sqrt(a*c)?
2 件のコメント
J Chen
2019 年 10 月 14 日
The damping ratio is defined as r = b/(2*sqrt(a*c)) = b^2/(4*a*c). It is under damped if r<1 and critically damped if r=1, etc. Your error came from other programming error. It's not related to the formula.
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!