Resolución de triángulos
Sea un triángulo de lados a, b y c y de ángulos α, β y γ. En un triángulo de cumplen las siguientes relaciones:
- Desigualdades entre las longitudes de los lados
- Suma de los ángulos interiores del triángulo
a+b<c
a+c<b
b+c<a
α+β+γ=180
Dados los datos (ángulos y/o lados). Las fórmulas que nos permiten calcular los lados y/o ángulos desconocidos son:
- Fórmulas de los cosenos
- Fórmulas de los senos
Para calcular los ángulos es preferible utilizar las primeras fórmulas en vez de las segundas, ya que el seno de un ángulo es igual al seno de su suplementario. sin(α)=sin(180-α). Por ejemplo, el seno de 30° y el seno de 150° tienen el mismo valor. El coseno evita este problema ya que determina sin ambigüedades el ángulo entre 0 y 180
Existen cuatro posibles casos, según los datos que se proporcionen, como se muestran en la figura y que se van a explicar en esta página
- Se proporcionan los tres lados a, b y c.
- Se proporcionan los lados b y c y el ángulo comprendido α
- Se proporciona un lado c y los dos ángulos adyacentes α y β
- Se proporcionan dos lados b y c y el ángulo no incluido β
- Si (c/b)·sinβ>1 no existe tal triángulo, ya que sinγ>1.
- Si (c/b)·sinβ=1, entonces γ=90°, el triángulo es rectángulo
- Si (c/b)·sinβ<1, existen dos alternativas
- Si b<c el ángulo γ puede ser agudo u obtuso
- Si b≥c entonces β>γ, el ángulo γ solamente puede ser agudo. No puede haber dos obtusos
Se calcula los ángulos α, β y γ
Se calcula el lado a y los ángulos β y γ
Se calcula el ángulo γ, y los lados a y b
Se calcula el lado a y los ángulos α y γ
No existe un triángulo cuyo ángulo β≥90° y a la vez b≤c
El ángulo γ se calcula mediante la fórmula
Examinamos los posibles valores del miembro de la derecha
Una vez obtenido el ángulo γ, se calcula α y a
tipo=input('Tipo (1,2,3,4): '); switch tipo case 1 disp('Tres lados') a=input('lado a: '); b=input('lado b: '); c=input('lado c: '); disp('------------------------------------') if((a+b)>c && (a+c)>b && (b+c)>a) alpha=acosd((b^2+c^2-a^2)/(2*b*c)); beta=acosd((a^2+c^2-b^2)/(2*a*c)); gamma=180-alpha-beta; disp(['ángulo alfa: ',num2str(alpha),' beta: ', num2str(beta), ' gamma: ',num2str(gamma)]) grafico_triangulo(a,b,c,alpha,beta,gamma) else disp('No hay solución') end case 2 disp('Dos lados y el ángulo comprendido') alpha=input('ángulo alfa: '); b=input('lado b: '); c=input('lado c: '); disp('------------------------------------') a=sqrt(b^2+c^2-2*b*c*cosd(alpha)); beta=acosd((a^2+c^2-b^2)/(2*a*c)); gamma=180-alpha-beta; disp(['ángulo gamma: ',num2str(gamma),' beta: ',num2str(beta)]) disp(['lado a: ',num2str(a)]) grafico_triangulo(a,b,c,alpha,beta,gamma) case 3 disp('Un lado y dos ángulos adyacentes') alpha=input('ángulo alfa: '); beta=input('ángulo beta: '); c=input('lado c: '); disp('------------------------------------') gamma=180-alpha-beta; disp(['ángulo gamma: ',num2str(gamma)]) b=c*sind(beta)/sind(gamma); a=c*sind(alpha)/sind(gamma); disp(['lado a: ',num2str(a),' b: ',num2str(b)]) grafico_triangulo(a,b,c,alpha,beta,gamma) case 4 disp('Dos lados y el ángulo no comprendido') b=input('lado b: '); c=input('lado c: '); beta=input('ángulo beta:'); disp('------------------------------------') if beta>=90 && b<=c disp('No hay solución') else res=c*sind(beta)/b; if(res>1) disp('No hay solución') else gamma=asind(res); alpha=180-gamma-beta; disp(['ángulo alfa: ',num2str(alpha),' gamma: ', num2str(gamma)]) a=b*sind(alpha)/sind(beta); disp(['lado a: ',num2str(a)]) if b>=c grafico_triangulo(a,b,c,alpha,beta,gamma) else subplot(2,1,1) grafico_triangulo(a,b,c,alpha,beta,gamma) gamma=180-gamma; alpha=180-gamma-beta; disp(['ángulo alfa: ',num2str(alpha),' gamma: ' ,num2str(gamma)]) a=b*sind(alpha)/sind(beta); disp(['lado a: ',num2str(a)]) subplot(2,1,2) grafico_triangulo(a,b,c,alpha,beta,gamma) end end end otherwise disp('Este caso no existe') end
function grafico_triangulo(a,b,c,alpha,beta,gamma) plot([0,b*cosd(alpha),c,0],[0,b*sind(alpha),0,0],'-r') axis equal axis off text(c/2,0, num2str(c,'%2.2f'), 'VerticalAlignment','top', 'HorizontalAlignment','center') text(b*cosd(alpha)/2,b*sind(alpha)/2,num2str(b,'%2.2f'), 'HorizontalAlignment','right', 'VerticalAlignment','middle') text(c-a*cosd(beta)/2,a*sind(beta)/2,num2str(a,'%2.2f'), 'HorizontalAlignment','left','VerticalAlignment','bottom') text(0,0,num2str(alpha,'%3.1f'),'HorizontalAlignment','right', 'VerticalAlignment','middle') text(b*cosd(alpha),b*sind(alpha),num2str(gamma,'%3.1f'), 'HorizontalAlignment','center', 'VerticalAlignment','bottom') text(c,0,num2str(beta,'%3.1f'),'HorizontalAlignment','left', 'VerticalAlignment','middle') end
Ejemplos
- Se proporcionan los tres lados a, b y c.
- Se proporcionan los lados b y c y el ángulo comprendido α
- Se proporciona un lado c y los dos ángulos adyacentes α y β
- Se proporcionan dos lados b y c y el ángulo no comprendido β
Tipo (1,2,3,4): 1 Tres lados lado a: 8 lado b: 6 lado c: 7 ------------------------------------ ángulo alfa: 75.5225 beta: 46.5675 gamma: 57.91
Tipo (1,2,3,4): 2 Dos lados y el ángulo comprendido ángulo alfa: 49 lado b: 5 lado c: 7 ------------------------------------ ángulo gamma: 85.5883 beta: 45.4117 lado a: 5.2987
Tipo (1,2,3,4): 3 Un lado y dos ángulos adyacentes ángulo alfa: 76 ángulo beta: 34 lado c: 9 ------------------------------------ ángulo gamma: 70 lado a: 9.2931 b: 5.3557
Tipo (1,2,3,4): 4 Dos lados y el ángulo no comprendido lado b: 8 lado c: 13 ángulo beta:31 ------------------------------------ ángulo alfa: 92.1819 gamma: 56.8181 lado a: 15.5216 ángulo alfa: 25.8181 gamma: 123.1819 lado a: 6.7648
Tipo (1,2,3,4): 4 Dos lados y el ángulo no comprendido lado b: 10 lado c: 4 ángulo beta:120 ------------------------------------ ángulo alfa: 39.7321 gamma: 20.2679 lado a: 7.3808
Tipo (1,2,3,4): 4 Dos lados y el ángulo no comprendido lado b: 3 lado c: 5 ángulo beta:120 ------------------------------------ No hay solución
Tipo (1,2,3,4): 4 Dos lados y el ángulo no comprendido lado b: 2 lado c: 8 ángulo beta:30 ------------------------------------ No hay solución