10 views (last 30 days)
Answered: Walter Roberson on 5 Oct 2022
I am solving the function but the values are not correct. Is there any problem with the coding?
%% Calculation_of_speed_ratio
A = 16000; % N
B = 125.66; % mm^2
for cycles = 10:10
t=cycles*0.1
syms f
fn = (0.044*A/B)*2.5*pi/3*((6.75*f/sqrt(45.5+f^2))+(32*f/sqrt(64+f^2))+(9.25*f/sqrt(85.5+f^2))) == 1216.7*sin(62.838*t);
x= vpasolve(fn,f)
plot(t,x,"o")
hold on
end
I have tried to set an interval but it is not giving solution e.g. [5,180]. It is returning an empty solution.
Thank you for the help in advance.
Regards

Walter Roberson on 5 Oct 2022
We would not know if the code is correct as you did not show us the equations. We would, for example, not know whether the sin() term is meant to be dealing with degrees instead of radians.
If you
G=lhs(fn)-rhs(fn)
fplot(G, [0.01 180])
Then you will see that the equation is continuous monotonic and so has only one solution, which is around 0.08. it is therefore not a matter of vpasolve missing a root: vpasolve is giving back the only positive root.

Santosh Fatale on 4 Oct 2022
I tried out the code shared by you and it looks like you need to declare variable f as Symbolic variable. You can do it in the same line where you are declairing variable "n_b".
I missed the declaration while copying the code. I have declared the variable as I have edited the code in the question now.
Regards

### Categories

Find more on Equation Solving in Help Center and File Exchange

R2022a

### Community Treasure Hunt

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

Start Hunting!