How to keep my complex root answers un-simplified?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
I've created a formula to calculate complex roots in editor and have the following:
a=input('Enter the value for a: ');
b=input('Enter the value for b: ');
c=input('Enter the value for c: ');
if b^2 > 4*a*c
root_1=(-b+sqrt(b^2-4*a*c))/2*a;
root_2=(-b-sqrt(b^2-4*a*c))/2*a;
fprintf('\n')
disp('Roots are real and distinct:')
fprintf(1,'Root1= %0.0f \n',root_1);
fprintf(1,'Root2= %0.0f \n',root_2);
elseif b^2 == 4*a*c
root_1=-b/(2*a);
root_2=-b/(2*a);
fprintf('\n')
disp('Roots are repeated:')
fprintf(1,'Root1=Root2= %0.0f \n',root_1);
elseif b^2 < 4*a*c
root_1=(-b/2*a)+(sqrt(4*a*c-b^2)/2*a);
root_2=(-b/2*a)-(sqrt(4*a*c-b^2)/2*a);
fprintf('\n')
disp('Roots are complex:')
fprintf(1,'Root1= %0.0f \n',root_1);
fprintf(1,'Root2= %0.0f \n',root_2);
end
So far everything works fine but I don't want the last "elseif" command to simplify the imaginary equation.
For instance if my (a,b,c) are (1,8,25), respectfully, the answer that I would like to have is:
Root1= -4+3i
Root2= -4-3i
How do I keep it this way or at least have the "i"?
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 28 Jun. 2012
fprintf(1,'Root1= %0.0f%+0.0fi\n', real(root_1), imag(root_1));
9 Kommentare
Tom
am 28 Jun. 2012
It might be worth checking it with a known solution (e.g. http://www.mathgoodies.com/calculators/quadratic_equations.html)- try for example a=3,b=4,c=1
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Performance and Memory finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!