Primero se establece la función y la solución general para cada caso, para las raíces reales diferentes, raíces reales iguales y para las raíces complejas y conjugadas.
library(MASS)
eqn_2o<-function(A1, A2, y_0, y_1, x){
if(A1^2-4*A2<0){
print("Imaginarias")
a = -A1/2
b = sqrt(abs(A1^2-4*A2))/2
r = sqrt(a^2+b^2)
t = atan(b/a)
a1<-c(cos(0),r*cos(t))
a2<-c(sin(0),r*sin(t))
A<-cbind(a1,a2)
b1<-c(y_0,y_1)
B=cbind(b1)
C=ginv(A)%*%B
y_x = (r^x)*(C[1]*cos(t*x)+C[2]*sin(t*x))
}
else if(A1^2-4*A2 == 0){
print("Reales iguales")
m1 <-(-A1+sqrt(A1^2-4*A2))/2
m2 <-(-A1-sqrt(A1^2-4*A2))/2
a1<-c(1,m1)
a2<-c(1,m2*x)
A<-cbind(a1,a2)
b1<-c(y_0,y_1)
B=cbind(b1)
C=ginv(A)%*%B
y_x = C[1]*m1^x+C[2]*x*m2^x
}
else if (A1^2-4*A2 > 0){
print("Reales diferentes")
m1 <-(-A1+sqrt(A1^2-4*A2))/2
m2 <-(-A1-sqrt(A1^2-4*A2))/2
a1<-c(1,m1)
a2<-c(1,m2)
A<-cbind(a1,a2)
b1<-c(y_0,y_1)
B=cbind(b1)
C=ginv(A)%*%B
y_x = C[1]*m1^x+C[2]*m2^x
}
}
Evaluamos los primeros valores y comprobamos que es ub caso de raíces reales y diferentes.
y_x<-eqn_2o(8,5,100,30,15)
## [1] "Reales diferentes"
y_x
## [1] 1.366642e+14
Evaluamos el conjunto de datos dos y se obtiene la respuesta que es un caso de raíces reales e iguales.
y_x<-eqn_2o(4,4,100,30,15)
## [1] "Reales iguales"
y_x
## [1] 491520
Evaluamos el ultimo conjunto de datos y se concluye que es un caso de raíces complejas y conjugadas, conocidas como “imaginarias”.
y_x<-eqn_2o(2,4,100,30,15)
## [1] "Imaginarias"
y_x
## [1] -3276800