# how to solve quadratic equation?

747 views (last 30 days)
bsd on 8 Nov 2011
Answered: Temidayo Daniel on 18 Oct 2022
Hai,
BSD

Walter Roberson on 8 Nov 2011
roots(). Or if you have the symbolic toolbox, solve()
bsd on 9 Nov 2011
why is that == 0 used?
BSD
Walter Roberson on 9 Nov 2011
You can tell whether a number has a complex part or not by testing to see if the imaginary part is 0. imag(x) gives you the imaginary part of x, so imag(x)==0 tests whether the imaginary part is 0. TheRoots(imag(TheRoots)==0) thus selects only the roots which are real-valued with no imaginary component.
Of course for a quadratic function over real coefficients, either _neither_ root is complex or _both_ roots are complex...

Reina Young on 27 May 2020
This code works for real and imaginary roots.
% A(x^2)+B(x)+C=0
d = input(begin_prompt)
if d == 1
prompt = 'Ax^2+Bx+C=0...A=';
A = input(prompt)
prompt2 = 'Ax^2+Bx+C=0...B=';
B = input(prompt2)
prompt3 = 'Ax^2+Bx+C=0...C=';
C = input(prompt3)
else
disp( 'Error in Start Prompt Input, Please Pick Yes (1) or this code will not work');
end

Emre Komur on 10 Apr 2021
Edited: Emre Komur on 10 Apr 2021
Solution Method-1
1- You can create function as below
a = input('please enter a value :');
b = input('please enter b value :');
c = input('please enter a value :');
delta = (b.^2)-(4*a*c);
if(delta < 0)
disp("Delta < 0 The equation does not have a real root");
elseif (delta == 0)
disp('The equation has only one real roots');
disp(-b./(2*a));
else
disp('The equation has two real roots');
disp((-b+sqrt(delta))./(2*a));
disp((-b-sqrt(delta))./(2*a));
end
end
2- You should call the function as below

Rick Rosson on 8 Nov 2011
x = zeros(2,1);
d = sqrt(b^2 - 4*a*c);
x(1) = ( -b + d ) / (2*a);
x(2) = ( -b - d ) / (2*a);
HTH.
Rick
Rick Rosson on 9 Nov 2011
If a = 0, then it is not (strictly speaking) a quadratic equation. It's a linear equation, and the solution in that case is trivial to compute.
Walter Roberson on 9 Nov 2011
Yes, but it is not an uncommon problem for people to calculate or randomly generate the coefficients and forget to double-check that the system is still of the same order.

Temidayo Daniel on 18 Oct 2022
a = input ('Enter the value of the coefficient of x square ');
b = input ('Enter the value of the coefficient of x ');
c = input ('Enter the third value ');
t = sqrt ((b^2) - (4*a*c));
u = (-b+t)/(2*a);
v = (-b-t)/(2*a);
x1 = u
x2 = v