function v = risquadreq(a,b,c) %risquadreq - risolutore equazioni quadratiche (grado<=2) % Chiama funzioni locali per i tre casi distinti if a~=0 v=risolvi2(a,b,c) elseif b~=0 v=risolvi1(b,c) else v=risolvi0(c) end end % Caso grado 2 function v=risolvi2(a,b,c) delta=b^2-4*a*c; v=(-b+[sqrt(delta) -sqrt(delta)])/(2*a); end % Caso grado 1 function v=risolvi1(b,c) v=-c/b; end % Caso grado 0 function v=risolvi0(c) if c==0 v=Inf; else v=[]; end % Alternativa con le celle %sol={[] , Inf}; %v=sol{1+(c==0)}; % Alternativa con un array %sol=[NaN , Inf]; %v=sol(1+(c==0)); end