##Ecuaciones en diferencia segundo orden
##Lab 2
##Miguel Antonio García
#librerias
library(matlib)
library(MASS)
#Ecuacion
eqn_2o<-function(A1, A2, y0, y1, x){
if(A1^2-4*A2<0){
print("Imaginarias")
#Resolviendo el sistema de ecuaciones
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(y0,y1)
B=cbind(b1)
C=ginv(A)%*%B
yx = (r^x)*(C[1]*cos(t*x)+C[2]*sin(t*x))
}
#Condicionantes
else if(A1^2-4*A2 == 0){
print("Reales iguales")
#Resolviendo le eq cuadrática
m1 <-(-A1+sqrt(A1^2-4*A2))/2
m2 <-(-A1-sqrt(A1^2-4*A2))/2
#Resolviendo el sistema de ecuaciones
a1<-c(1,m1)
a2<-c(1,m2*x)
A<-cbind(a1,a2)
b1<-c(y0,y1)
B=cbind(b1)
C=ginv(A)%*%B
yx = C[1]*m1^x+C[2]*x*m2^x
}
else if (A1^2-4*A2 > 0){
print("Reales diferentes")
#Resolviendo le eq cuadrática
m1 <-(-A1+sqrt(A1^2-4*A2))/2
m2 <-(-A1-sqrt(A1^2-4*A2))/2
#Resolviendo el sistema de ecuaciones
a1<-c(1,m1)
a2<-c(1,m2)
A<-cbind(a1,a2)
b1<-c(y0,y1)
B=cbind(b1)
C=ginv(A)%*%B
yx = C[1]*m1^x+C[2]*m2^x
}
}
y_x<-eqn_2o(2,4,100,30,15)
## [1] "Imaginarias"
y_x
## [1] -3276800
serie <- list()
for (i in 1:15) {
serie <- c(serie,eqn_2o(8,5,100,30,i))
}
## [1] "Reales diferentes"
## [1] "Reales diferentes"
## [1] "Reales diferentes"
## [1] "Reales diferentes"
## [1] "Reales diferentes"
## [1] "Reales diferentes"
## [1] "Reales diferentes"
## [1] "Reales diferentes"
## [1] "Reales diferentes"
## [1] "Reales diferentes"
## [1] "Reales diferentes"
## [1] "Reales diferentes"
## [1] "Reales diferentes"
## [1] "Reales diferentes"
## [1] "Reales diferentes"
plot(1:15,serie, type="l")

serie
## [[1]]
## [1] 30
##
## [[2]]
## [1] -740
##
## [[3]]
## [1] 5770
##
## [[4]]
## [1] -42460
##
## [[5]]
## [1] 310830
##
## [[6]]
## [1] -2274340
##
## [[7]]
## [1] 16640570
##
## [[8]]
## [1] -121752860
##
## [[9]]
## [1] 890820030
##
## [[10]]
## [1] -6517795940
##
## [[11]]
## [1] 47688267370
##
## [[12]]
## [1] -348917159260
##
## [[13]]
## [1] 2.552896e+12
##
## [[14]]
## [1] -1.867858e+13
##
## [[15]]
## [1] 1.366642e+14
serie <- list()
for (i in 1:15) {
serie <- c(serie,eqn_2o(2,4,100,30,i))
}
## [1] "Imaginarias"
## [1] "Imaginarias"
## [1] "Imaginarias"
## [1] "Imaginarias"
## [1] "Imaginarias"
## [1] "Imaginarias"
## [1] "Imaginarias"
## [1] "Imaginarias"
## [1] "Imaginarias"
## [1] "Imaginarias"
## [1] "Imaginarias"
## [1] "Imaginarias"
## [1] "Imaginarias"
## [1] "Imaginarias"
## [1] "Imaginarias"
plot(1:15,serie, type="l")

serie
## [[1]]
## [1] 30
##
## [[2]]
## [1] -340
##
## [[3]]
## [1] -800
##
## [[4]]
## [1] -240
##
## [[5]]
## [1] 2720
##
## [[6]]
## [1] 6400
##
## [[7]]
## [1] 1920
##
## [[8]]
## [1] -21760
##
## [[9]]
## [1] -51200
##
## [[10]]
## [1] -15360
##
## [[11]]
## [1] 174080
##
## [[12]]
## [1] 409600
##
## [[13]]
## [1] 122880
##
## [[14]]
## [1] -1392640
##
## [[15]]
## [1] -3276800
serie <- list()
for (i in 1:15) {
serie <- c(serie,eqn_2o(4,4,100,30,i))
}
## [1] "Reales iguales"
## [1] "Reales iguales"
## [1] "Reales iguales"
## [1] "Reales iguales"
## [1] "Reales iguales"
## [1] "Reales iguales"
## [1] "Reales iguales"
## [1] "Reales iguales"
## [1] "Reales iguales"
## [1] "Reales iguales"
## [1] "Reales iguales"
## [1] "Reales iguales"
## [1] "Reales iguales"
## [1] "Reales iguales"
## [1] "Reales iguales"
plot(1:15,serie, type="l")

serie
## [[1]]
## [1] -16
##
## [[2]]
## [1] -60
##
## [[3]]
## [1] 120
##
## [[4]]
## [1] -240
##
## [[5]]
## [1] 480
##
## [[6]]
## [1] -960
##
## [[7]]
## [1] 1920
##
## [[8]]
## [1] -3840
##
## [[9]]
## [1] 7680
##
## [[10]]
## [1] -15360
##
## [[11]]
## [1] 30720
##
## [[12]]
## [1] -61440
##
## [[13]]
## [1] 122880
##
## [[14]]
## [1] -245760
##
## [[15]]
## [1] 491520