Borrar filtros
Borrar filtros

how to solve quadratic equation?

538 visualizaciones (últimos 30 días)
bsd
bsd el 8 de Nov. de 2011
Respondida: Temidayo Daniel el 18 de Oct. de 2022
Hai,
How could I solve a quadratic equation in matlab? Looking for your reply.
BSD

Respuesta aceptada

Walter Roberson
Walter Roberson el 8 de Nov. de 2011
roots(). Or if you have the symbolic toolbox, solve()
  4 comentarios
bsd
bsd el 9 de Nov. de 2011
why is that == 0 used?
BSD
Walter Roberson
Walter Roberson el 9 de Nov. de 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...

Iniciar sesión para comentar.

Más respuestas (4)

Reina Young
Reina Young el 27 de Mayo de 2020
This code works for real and imaginary roots.
%%QUADRATIC FORMULA%%
% A(x^2)+B(x)+C=0
begin_prompt = 'Quadratic Formaula (Yes/No)(1/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)
Answer1= ((-B)+((B^2-4*A*C))^0.5)/(2*A)
Answer2= ((-B)-((B^2-4*A*C))^0.5)/(2*A)
disp(Answer1)
disp(Answer2)
else
disp( 'Error in Start Prompt Input, Please Pick Yes (1) or this code will not work');
end

Emre Komur
Emre Komur el 10 de Abr. de 2021
Editada: Emre Komur el 10 de Abr. de 2021
Solution Method-1
1- You can create function as below
function quadraticEquation
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
quadraticEquation

Rick Rosson
Rick Rosson el 8 de Nov. de 2011
Please try:
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
  4 comentarios
Rick Rosson
Rick Rosson el 9 de Nov. de 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
Walter Roberson el 9 de Nov. de 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.

Iniciar sesión para comentar.


Temidayo Daniel
Temidayo Daniel el 18 de Oct. de 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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by