Está en la página 1de 2

Program metodo_de_cardan

Real::a, b, c, p, q, d, x1, x2, x3, t, m, n


Real::v, l, k, j

Write(*,*)"Introduzca la funcion a evaluar"


Write(*,*)"x^3 + ax^2 + bx + c = 0"
Write(*,*)"Escriba las constantes"
Write(*,*)"Constante a"
Read(*,*)a
Write(*,*)"Constante b"
Read(*,*)b
Write(*,*)"Constante c"
Read(*,*)c

p= b- (a**2)/3
q= c - a*b/3 + 2*(a**3)/27
d= (q**2)/4 + (P**3)/27
v=-(q/2)*sqrt(27/abs(p**3))
t=acos(v)
t=t*180/3.141592654

If (d==0) then
x1= 2*(-q/2)**(1/2) - a/3
x2=(-q/2)**(1/3) - a/3
x3=x2

Write(*,*)"Los valores de las raices son:"


Write(*,*)"x1=", x1
Write(*,*)"x2=", x2
Write(*,*)"x3=", x3

Else if (d>0) then


n=((-q/2) + sqrt(d))**(1/3)
m=((-q/2) - sqrt(d))**(1/3)

x1=(n + m) - a/3

Write(*,*)"Los valores de las raices son:"


Write(*,*)"x1=", x1
Write(*,*)"x2= RAIZ IMAGINARIA. MATH ERROR"
Write(*,*)"x3= RAIZ IMAGINARIA. MATH ERROR"

Else if (d<0) then


l= (t + 3.141592654)/3
l=l*3.141592654/180
k=(t - 3.141592654)/3
k=k*3.141592654/180
j=t/3
j=j*3.141592654/180

x1=2*sqrt(abs(p)/3)*cos(j) - a/3
x2= -2*sqrt(abs(p)/3)*cos(l) - a/3
x3= -2*sqrt(abs(p)/3)*cos(k) - a/3

Write(*,*)"Los valores de las raices son:"


Write(*,*)"x1=", x1
Write(*,*)"x2=", x2
Write(*,*)"x3=", x3
End if

Pause

End program

También podría gustarte