DATOS - EJERCICIO NUMEROS REALES

-- INICIO

SetDirectory[NotebookDirectory[]]

00a - GRADOS DE LIBERTAD

n=1000;

00b - DATOS: MATRIZ DE RIGIDEZ - REPRESENTADA MEDIANTE VECTOR S

S<< "S";

CALCULO DEL SEMIANCHO DE BANDA

MeanBand=N[p[[n+1]]/n]

00c- DATOS: VECTOR DE FUERZAS NODALES CONSISTENTES

f<< "f";

Dimensions[f]

01a- RECONSTRUCCION DE LA SKYMATRIZ ORIGINAL A PARTIR DEL VECTOR S

Ko=X[S];

(*Ko//MatrixForm*)

01b - METODO DIRECTO DE OBTENCION DE  DESPLAZAMIENTOS SOLUCION

1 - METODO DIRECTO

- A COMPROBAR MEDIANTE EL PROCEDIMIENTO DE FACTORIZACION (1a FASE) Y SOLUCION (2a FASE)

CALCULO TIEMPO DE CALCULO CON COMANDOS DE MATHEMATICA

Solution=Timing[X.f];

?Timing

TiempoMetodoDirecto=Solution[[1]]

VECTOR DESPLAZAMIENTOS SOLUCION

us=Solution[[2]];

(*%//MatrixForm*)

02a- 1a FASE - FACTORIZACION DE LA SKYMATRIZ ORIGINAL A PARTIR DEL VECTOR S

2 - FACTORIZACION AUTOMATICA

CALCULO DEL TIEMPO - CON COMANDO A UTILIZAR

Factorizacion=Timing[X[S,10.^(-12)]];

TiempoFactorizacion=Factorizacion[[1]]

MATRIZ FACTORIZADA - DE LA QUE PODEMOS OBTENER LAS MATRICES A UTILIZAR

Sf=Factorizacion[[2,1]];

RECONSTRUCCION DE LA SKYMATRIZ FACTORIZADA A PARTIR DEL VECTOR Sf

X[Sf];

(*%//MatrixForm*)

DESPLAZAMIENTOS SOLUCION - OBTENIDOS DIRECTAMENTE A PARTIR DE LA FACTORIZACION DE LA SKYMATRIZ ORIGINAL

CALCULO DEL TIEMPO - CON COMANDO A UTILIZAR

SolucionFactorizacion=Timing[X[Sf,f]];

TiempoSolucionFactorizacion=SolucionFactorizacion[[1]]

VECTOR DESPLAZAMIENTOS SOLUCION

uf=X[Sf,f];

(*SymmSkyMatrixRowLengths[S]*)

02b- MATRICES QUE CONSTITUYEN LA FACTORIZACION DE LA SKYMATRIZ ORIGINAL

3 - FACTORIZACION PASO A PASO

MATRIZ D

MATRIZ D INVERSA - D1

D1=X[Sf];

(*%//MatrixForm*)

MATRIZ Df

Df=Inverse[D1];

(*%//MatrixForm*)

MATRIZ U

U=X[Sf];

(*%//MatrixForm*)

MATRIZ L

L=X[U];

(*%//MatrixForm*)

COMPROBACION DE LA FACTORIZACION DE LA SKYMATRIZ ORIGINAL

Kc=X;

(*%//MatrixForm*)

COMANDOS DIRECTOS DE OBTENCION DE LA SKYMATRIZ ORIGINAL A PARTIR DE LA SKYMATRIZ FACTORIZADA

So=X[Sf];

X[So];

(*%//MatrixForm*)

02c - OBTENCION DE  DESPLAZAMIENTOS SOLUCION

02c- 2a FASE - 1a PARTE - SOLUCION INTERMEDIA

CALCULO DEL TIEMPO - CON COMANDO A UTILIZAR

SolucionIntermedia=Timing[X.f];

TiempoSolucionIntermedia=SolucionIntermedia[[1]]

SOLUCION INTERMEDIA

Xi=SolucionIntermedia[[2]];

02c- 2a FASE - 2a PARTE - SOLUCION POSTERIOR

CALCULO DEL TIEMPO - CON COMANDO A UTILIZAR

SolucionPosterior=Timing[X.Xi];

TiempoSolucionPosterior=SolucionPosterior[[1]]

SOLUCION POSTERIOR

uf=SolucionPosterior[[2]];

02c- COMPROBACION - SOLUCIONES

First[X[S,uf]]

First[f]

Last[X[S,uf]]

Last[f]

Ok

04- RESUMEN TIEMPOS Y ESPACIO ALMACENAMIENTO - SOLUCIONES

04a- METODO DIRECTO

(*TiempoMetodoDirecto*)

Tiempo de Calculo

TiempoMetodoDirecto

Espacio de Almacenamiento utilizado

ByteCount/@{S,f,Ko,f,us}

Sum[%[[i]],{i,Dimensions[%][[1]]}]

04b- METODO FACTORIZACION - PASO A PASO

(*TiempoFactorizacion+TiempoSolucionIntermedia+TiempoSolucionPosterior*)

Tiempo de Calculo

TiempoFactorizacion+TiempoSolucionIntermedia+TiempoSolucionPosterior

Espacio de Almacenamiento utilizado

ByteCount/@{S,f,L,Df,Xi,uf}

Sum[%[[i]],{i,Dimensions[%][[1]]}]

04b- METODO FACTORIZACION - AUTOMATICA

(*TiempoFactorizacion+TiempoSolucionFactorizacion*)

Tiempo de Calculo

TiempoFactorizacion+TiempoSolucionFactorizacion

Espacio de Almacenamiento utilizado

ByteCount/@{S,f,Sf,uf}

Sum[%[[i]],{i,Dimensions[%][[1]]}]