clc, clear, close all % University of Puerto Rico at Mayaguez % INGE 3016 (Matlab) % luis.montejo@upr.edu % Last update: 08/12/2016 disp(' '); disp('============================================================'); disp('====== calcula las raices de una ecuacion cuadratica =======') disp('================= ax^2 + bx + c = 0 ===================='); disp('============================================================'); disp(' '); % pedir los coeficientes al usuario: a = input('entre un valor para el coeficiente a : '); b = input('entre un valor para el coeficiente b : '); c = input('entre un valor para el coeficiente c : '); disp(' '); % chequear que los valores entrados sean numeros reales: aim = imag(a); bim = imag(b); cim = imag(b); if aim==0 && bim==0 && cim==0 % calcular las raices segun sea el caso: det = b^2-4*a*c; if a==0 && b==0 disp('no es una ecuacion') return % termina el programa elseif a==0 x1 = -c/b; x2 = x1; disp(['es una ecuacion lineal con solucion x = ',num2str(x1)]); elseif det==0 x1 = -b/(2*a); x2 = x1; disp(['dos raices reales iguales x1 = x2 = ',num2str(x1)]); elseif det>0 x1 = (-b+sqrt(det))/(2*a); x2 = (-b-sqrt(det))/(2*a); disp(['dos raices reales distintas x1 = ',num2str(x1),' y x2 = ',num2str(x2)]); elseif det<0 x1 = (-b+sqrt(det))/(2*a); x2 = (-b-sqrt(det))/(2*a); disp(['dos raices complejas conjugas x1 = ',num2str(x1),' y x2 = ',num2str(x2)]); end % chequear los resultados : chx1 = a*(x1)^2 + b*x1 + c; chx2 = a*(x2)^2 + b*x2 + c; disp(' '); disp('============================================================'); disp('chequeo de las raices :') disp(['f(x1) ----> ',num2str(chx1)]); disp(['f(x1) ----> ',num2str(chx1)]); disp('============================================================'); else disp(' '); disp('============================================================'); disp(' === los coeficientes deben ser reales ===') disp('============================================================'); end