How to tell Solve function to only display real roots?
3 views (last 30 days)
Show older comments
lindsey Cameron
on 27 Nov 2014
Commented: lindsey Cameron
on 27 Nov 2014
Hi guys,
Anyone know how I can restrict the Solve function in the current code to solve for only real values?
clear clc
syms x g
g=1.3099*10^15:0.05*10^15:2.6*10^15;
for i = 1:length(g) % Assigns i for each value within in g
f=(((1.1096*10^17-(5.201*10^16)*(6.667*(x - 255)/x)^(1/3))/(g(1,i))) + 255-x);
soln=solve(f,x);
end
0 Comments
Accepted Answer
Henrik
on 27 Nov 2014
I don't know if this is what you want, but you could do something like
real_soln=soln(imag(soln)==0);
or if there are floating point errors,
real_soln=soln(abs(imag(soln))<1e-9); %put appropriate tolerance here
More Answers (0)
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!