#-------------------------------------------------------------------------------
# Hauptachsentransformation
# Ziel: Berechnung der Hauptrichtungen und Hauptspannungen
# Rechengang: a) Berechnung von Eigenvektoren und Eigenwerten
#             b) Konstruktion der Transformationsmatrix
#             c) Berechnung des Spannungstensors 
#                im Koordinatensystem der Eigenvektoren
#-------------------------------------------------------------------------------
#
# Das ist der Spannungstensor:
S <- matrix(
            c(2.0, 3.0 , 6.0,
              3.0, 4.0 , 7.0,
              6.0, 7.0 , 2.0),nrow=3,byrow=T)
cat("\nSpannungstensor S:\n\n")
print(S)
#
# Berechnung von Eigenwerten und Eigenvektoren
#
evls <- eigen(S)
a1 <- S%*%evls$vectors[,1]
a2 <- evls$values[1]*evls$vectors[,1]
cat("\n\nKontrolle ob Eigenvektoren tatsächlich welche sind:\n\n")
cat("\n Eigenvektor aus eigen(S):\n\n")
print(as.vector(a1))
cat("\nEigenvektor aus eigenval*eigenvector:\n\n")
print(a2)
cat("\nEigenwerte: ",evls$values,"\n\n")
ev1 <- as.vector(evls$vectors[,1])
ev2 <- as.vector(evls$vectors[,2])
ev3 <- as.vector(evls$vectors[,3])
cat("Eigenvektor 1: ",ev1,"\n")
cat("Eigenvektor 2: ",ev2,"\n")
cat("Eigenvektor 3: ",ev3,"\n")
#
# Transformation des Spannungsvektors
#
TM <- evls$vectors
Sdiag <- solve(TM) %*% S %*% TM
cat("\nDiagonalisierte Matrix: \n\n")
print(round(Sdiag,4))
cat("\n1. Hauptspannung: ",round(Sdiag[1,1],4),"\n")
cat("2. Hauptspannung: ",round(Sdiag[2,2],4),"\n")
cat("3. Hauptspannung: ",round(Sdiag[3,3],4),"\n")

