How to keep my complex root answers un-simplified?

3 次查看(过去 30 天)
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"?

采纳的回答

Walter Roberson
Walter Roberson 2012-6-28
fprintf(1,'Root1= %0.0f%+0.0fi\n', real(root_1), imag(root_1));
  9 个评论
Aaron
Aaron 2012-6-28
编辑:Aaron 2012-6-28
Sonovagun!! I should have caught that. Thank you.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by