need help Writing a function that returns roots of a quadratic
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
This is my plan on how to write it (don't have software at my disposal currently). I am learning matlab so understand there may be quite a few problems.
Function [x]=myquad(a,b,c)
x=[r1 r2];
d=sqrt((b.^2)-4.*a.*c)
if a==0 & b>0
r1=-c/b;
elseif a==0 & b==0
r1=0;
elseif a~=0 & d==0
r1=-b./(2.*a);r2=r1;
elseif a~=0 & d>0
r1=(-b+d)./2a; r2=(-b+d)./2.*a;
elseif a~=0 & d<0
r1=(-b+d.*i)/2a; r2=(-b-d.*i)./2.*a;
end
end
I need to follow this algorithm for an assignment.
THANKS!
0 comentarios
Respuesta aceptada
Walter Roberson
el 17 de Feb. de 2013
Editada: Walter Roberson
el 17 de Feb. de 2013
Your first two cases do not appear to set r2 to anything.
your a=0 b=0 case is wrong
Your "di" should probably be "d*i"
6 comentarios
Más respuestas (2)
Azzi Abdelmalek
el 17 de Feb. de 2013
There are some mistakes
if a==0 %instead of if a=0
elseif % instead of ifelse
1 comentario
Walter Roberson
el 17 de Feb. de 2013
Multiple assignment is not permitted. r1=r2=VALUE is not allowed. Use r1=VALUE; r2=r1
Image Analyst
el 18 de Feb. de 2013
Why do you need all those "if"s at all? Why not just do
function [r1 r2]=myquad(a,b,c)
d = sqrt((b^2)-4*a*c); % Can be complex with no problem.
r1=(-b-d)/(2*a);
r2=(-b+d)/(2*a);
MATLAB handles complex numbers and infinite numbers with no problem, so you don't need special if statements to do it manually.
2 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!