Ho do i convert this number to an integer?

I'm using this code to solve an equation.
syms b
w=1150;di=32.59;do=23.44;
sol=solve((w-(2.*90.*sind(b))).^2==(w-(90.*sind(b+di))-(90.*sind(b-do))).^2+((90.*cosd(b-do))-(90.*cosd(b+di))).^2,b);
vpa(sol)
I'm solving for b and im supposed to get around 28.1606 but im getting
ans =
144.93095960237559740993061817135 + 177.92191183196224178797359740301i
Why am i not gettin gthe answer? Do i have to onvert it?

 Risposta accettata

Try vpasolve:
w=1150;di=32.59;do=23.44;
sol=vpasolve((w-(2.*90.*sind(b))).^2==(w-(90.*sind(b+di))-(90.*sind(b-do))).^2+((90.*cosd(b-do))-(90.*cosd(b+di))).^2,b)
vpasolve solves the equation numerically.

11 Commenti

Thank you!
If suppose i needed to give various vaues of w, How could i give it? Like in a matrix form
Simple for loop should help. Consider the following example:
w=[1150;1250;1350];di=32.59;do=23.44;
for i=1:numel(w)
sol(i)=vpasolve((w(i)-(2.*90.*sind(b))).^2==(w(i)-(90.*sind(b+di))-(90.*sind(b-do))).^2+((90.*cosd(b-do))-(90.*cosd(b+di))).^2,b);
end
oh ok! Thank you so much!!
im getting this error:
Undefined function or variable 'b'.
Error in trial (line 9)
sol(i)=vpasolve((w(i)-(2.*90.*sind(b))).^2==(w(i)-(90.*sind(b+di))-(90.*sind(b-do))).^2+((90.*cosd(b-do))-(90.*cosd(b+di))).^2,b);
I forgot to define b:
syms b
w=[1150;1250;1350];di=32.59;do=23.44;
for i=1:numel(w)
sol(i)=vpasolve((w(i)-(2.*90.*sind(b))).^2==(w(i)-(90.*sind(b+di))-(90.*sind(b-do))).^2+((90.*cosd(b-do))-(90.*cosd(b+di))).^2,b);
end
The error isn't appearing anymore. But i am not getting any output.
Type
sol
at the command line and you will see the results.
Thanks a ton birdman!!!
Is there any mistake in this:
syms b
l=1550;R=[2500;2600;2700;2800];w=1150;
for i=1:numel(R)
di(i)=atand(l./(R(i)-(w/2)));do(i)=atand(l./(R(i)+(w/2)));
sol=vpasolve((w-(2.*90.*sind(b))).^2==(w-(90.*sind(b+di(i)))-(90.*sind(b-do(i)))).^2+((90.*cosd(b-do(i)))-(90.*cosd(b+di(i)))).^2,b);
end
sol
i should be getting 4 answers but im getting only 1...which i dont is right or wrong.
what corrections should i make?
Replace the line
sol=vpasolve((w-(2.*90.*sind(b))).^2==(w-(90.*sind(b+di(i)))-(90.*sind(b-do(i)))).^2+((90.*cosd(b-do(i)))-(90.*cosd(b+di(i)))).^2,b);
with
sol(i)=vpasolve((w-(2.*90.*sind(b))).^2==(w-(90.*sind(b+di(i)))-(90.*sind(b-do(i)))).^2+((90.*cosd(b-do(i)))-(90.*cosd(b+di(i)))).^2,b);
Awesome!! Thank you tons again!

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by