Práctica 4 INTRODUCCION Este capítulo describe las herramientas que posee Mathematica para los espacios vectoriales: ecuaciones paramétricas e implícitas de un subespacio vectorial, matrices cambio de base y metodo de ortogonalización de Gram-Schmidt. BASES, ECUACIONES IMPLÍCITAS Y PARAMÉTRICAS Veamos ahora como lo aprendido en la práctica 2 nos puede ayudar para comprobar si un determinado conjunto de vectores en un espacio euclídeo es una base. Supongamos que tenemos los subconjuntos In[1]:= Out[1]= Out[2]= b = 881, -1, -1<, 8-1, 1, -1<, 8-1, -1, 1<< b£ = 881, 0, 0<, 82, 1, 0<, 8-1, -1, 0<< 881, -1, -1<, 8-1, 1, -1<, 8-1, -1, 1<< 881, 0, 0<, 82, 1, 0<, 8-1, -1, 0<< Para comprobar si son base del espacio euclídeo tridimensional basta ver si son linealmente independientes. Para ello debemos calcular el rango de la matriz formada por dichos vectores. Pordemos calcular dicho rango bien con el comando In[3]:= Out[3]= In[4]:= Out[4]= RowReduce@bD 881, 0, 0<, 80, 1, 0<, 80, 0, 1<< RowReduce@b 'D 881, 0, 0<, 80, 1, 0<, 80, 0, 0<< O bien con In[5]:= Out[5]= In[6]:= Out[6]= Det@bD -4 Det@b 'D 0 De ambas maneras observamos que el primer subconjunto de vectores es una base mientras que el segundo no. Sea ahora S el subespacio del espacio euclídeo tridimensional generado por los vectores: In[7]:= Out[7]= c = 881, 0, -1<, 84, 3, 2<, 83, 3, 3<< 881, 0, -1<, 84, 3, 2<, 83, 3, 3<< Obtengamos en primer lugar una base de S comprobando cuántos vectores linealmente independientes hay en el sistema generador anterior. Como antes calculamos el rango de la matriz formada por los mismos: 2 Pract4.nb In[8]:= Out[8]= RowReduce@cD 881, 0, -1<, 80, 1, 2<, 80, 0, 0<< Por tanto sólo hay dos vectores linealmente independientes y una base del subespacio está formada por: In[9]:= Out[9]= v = 8%P1T, %P2T< 881, 0, -1<, 80, 1, 2<< Claramente unas ecuaciones paramétricas de S son: In[10]:= Out[10]= LogicalExpand@88x, y, z<< ã 88lambda, alpha<<. vD x ã lambda && y ã alpha && z ã 2 alpha - lambda Si queremos calcular las ecuaciones implícitas de este subespacio vectorial podemos In[11]:= Out[11]= Eliminate@%, 8lambda, alpha<D 2y-zãx MATRICES Y CAMBIO DE BASE Veamos ahora un procedimiento usando sólo propiedades elementales de las matrices que nos permite encontrar la matriz de cambio de base entre dos bases de un espacio vectorial. Lo veremos mediante un ejemplo. Sean B y B' dos bases del espacio vectorial real usual de dimensión 3 dadas por In[12]:= Out[12]= Out[13]= B = 881, -1, -1<, 8-1, 1, -1<, 8-1, -1, 1<< B£ = 881, 0, 0<, 82, 1, 0<, 80, 1, -1<< 881, -1, -1<, 8-1, 1, -1<, 8-1, -1, 1<< 881, 0, 0<, 82, 1, 0<, 80, 1, -1<< Podemos calcular la matriz de cambio de base de B a B' mediante la siguiente expresión: In[14]:= Out[14]= Inverse@Transpose@B£ DD.Transpose@BD 885, -1, -1<, 8-2, 0, 0<, 81, 1, -1<< Veamos como actua esta matriz de cambio de base sobre un vector. Consideremos el vector cuyas coordenadas en la base canónica son {2,1,3}. Podemos calcular las coordenadas de este vector en la base B mediante: In[15]:= Out[15]= Inverse@[email protected], 1, 3< :-2, - 5 2 ,- 3 2 > De forma análoga, las coordenadas de este vector en la base B' se pueden obtener por: In[16]:= Out[16]= Inverse@Transpose@B£ DD.82, 1, 3< 8-6, 4, -3< Podemos comprobar que nuestro cálcula de la matriz de cambio de base es correcta calculando: Pract4.nb In[17]:= Out[17]= 3 %%%.%% - % 80, 0, 0< DIAGONALIZACION DE MATRICES: VALORES Y VECTORES PROPIOS. Mathematica está dotado de comandos para el cálculo de valores y vectores propios de matrices cuadradas, tanto en forma simbólica como numérica. Los comandos que se utilizan para ello son "Eigenvalues[matriz]" (para calcular los valores propios) y "Eigenvectors[matriz]" (para calcular los vectores propios). Veamos algunos ejemplos: In[18]:= Out[18]= In[19]:= M = 88A, C, 0<, 81, 0, -1<, 80, C, A<< 88A, C, 0<, 81, 0, -1<, 80, C, A<< MatrixForm@%D Out[19]//MatrixForm= A C 0 1 0 -1 0 C A In[20]:= Out[20]= In[21]:= Out[21]= Eigenvalues@MD 80, A, A< Eigenvectors@MD ::1, - A C , 1>, 81, 0, 1<, 80, 0, 0<> De lo anterior se deduce que M no es diagonalizable. Consideremos ahora la matriz: In[22]:= Out[22]= L = ::::- 1 4 ,- 1 4 5 4 ,- ,- 1 4 5 4 , ,- 1 4 1 4 >, :- 1 , 5 4 4 ,- >, :1 4 ,- 1 4 5 4 , ,- 1 4 1 4 >, :- ,1 4 ,- 1 4 1 4 , ,- 1 4 1 4 >, :, Out[23]= vp = Eigenvalues@LD 8-2, -1, 1, 1< Y sus vectores propios vendrán dados por In[24]:= Out[24]= mp = Eigenvectors@LD 88-1, -1, -1, 1<, 81, 1, -1, 1<, 80, 0, 1, 1<, 8-1, 1, 0, 0<< Claramente es diagonalizable y su matriz diagonal es In[25]:= Out[25]= md = DiagonalMatrix@vpD 88-2, 0, 0, 0<, 80, -1, 0, 0<, 80, 0, 1, 0<, 80, 0, 0, 1<< Podemos comprobar lo anterior mediante el cálculo siguiente 4 ,- 1 4 ,- 1 4 , 1 1 5 1 >, : , , , - >> 4 4 4 4 4 5 Calculemos sus valores propios mediante el comando In[23]:= 1 1 1 5 >, : , , , 4 4 4 4 5 > 4 Pract4.nb In[26]:= Out[26]= L - [email protected]@Transpose@mpDD 880, 0, 0, 0<, 80, 0, 0, 0<, 80, 0, 0, 0<, 80, 0, 0, 0<< Señalemos que también podemos dar un cálculo aproximado de los valores propios y vectores propios de una matriz combinando los comandos anteriores con el comando "N[]". Como ejemplo In[27]:= Out[27]= In[28]:= Out[28]= In[29]:= Out[29]= ma = 882, 1<, 83, 2<< 882, 1<, 83, 2<< Eigenvalues@N@ma, 3DD 83.73, 0.268< Eigenvectors@N@ma, 3DD 880.500, 0.866<, 8-0.500, 0.866<< ORTONORMALIZACION DE GRAM-SCHMIDT. El Mathematica tiene implementado el algoritmo de ortonormalización de Gram- Schmidt en el comando "GramSchmidt[{v1,v2,...,vn}]". Esta función se encuentra definida en uno de los paquetes externos y por tanto vamos a cargalo antes de continuar. In[30]:= << "LinearAlgebra`Orthogonalization`"; General::obspkg : LinearAlgebra`Orthogonalization` is now obsolete. The legacy version being loaded may conflict with current Mathematica functionality. See the Compatibility Guide for updating information. à Vamos ahora a ortonormalizar la siguiente base: In[31]:= Out[31]= In[32]:= Out[32]= Base = 881, 0, -1<, 82, 0, 1<, 8-1, 1, 0<< 881, 0, -1<, 82, 0, 1<, 8-1, 1, 0<< GramSchmidt@BaseD :: 1 2 , 0, - 1 2 >, : 1 2 , 0, 1 2 >, 80, 1, 0<>