Páginas

Archivo

 

lunes, 8 de febrero de 2016

Libro

Les dejo el primer capítulo del libro LINEAR ALGEBRA THROUGH ITS APPLICATIONS de TJ Fletcher para que le den lectura, disfrútenlo.

Link

miércoles, 17 de febrero de 2016

Material de Ayudantía

Les comparto algunos documentos para reforzar lo aprendido en las sesiones anteriores.

04/02/2016
En este documento estudiamos las principales características de un espacio vectorial y analizamos algunos ejemplos:  Bases y dimensión de un espacio vectorial

09/02/2016
En este capítulo revisamos algunos espacios vectoriales poco convencionales, como el de las series aritméticas, cuadrados mágicos, bases de polinomios, interpolación y extrapolación, etc: Capítulo primero

11/02/2016
Aquí les presento un artículo en http://mathworld.wolfram.com/ sobre la Interpolación polinómica de Lagrange enfatizada en clase por el profesor: Lagrange Interpolating Polynomial

16/02/2016
En este documento se desarrolla a grosso modo la teoría de las series de Fourier enfatizando las relaciones con el álgebra lineal: Series de Fourier

18/02/2014
En este documento se estudia a los polinomios de Chebyshev como bases de espacios vectoriales de funciones. Polinomios de Chebyshev

lunes, 22 de febrero de 2016

Capítulo 5, Notas de Álgebra Lineal

Les comparto las notas en las que estarán basadas las próximas clases.

Descarga

jueves, 25 de febrero de 2016

TAREA 2



DESCARGA

viernes, 26 de febrero de 2016

Libros

Exercises in Computational Mathematics with MATLAB
DESCARGA

Linear Algebra in Twenty Five Lectures
DESCARGA 

Linear Algebra Done Right
DESCARGA

Sobre la Tarea 3

Reducción de una forma cuadrática a una forma canónica.

La tarea 3 consistió en reducir la forma cuadrática:

Q(x,y,z)=x^2+2y^2+5z^2-4xy-6xz-20yz

a una suma de cuadrados.

Aquí el método de completar cuadrados.

Solución 1

Aquí el método matricial.

jueves, 3 de marzo de 2016

Sobre la Tarea 4

Aquí podrán revisar sobre la factorización LU y factorización de Cholesky:

Enlace 1 Factorización LU

Enlace 2 Factorización de Cholesky  



La tarea:

Básicamente deben probar que si A>0 es no singular y A=A^t ( simétrica), entonces:

A=LL^t

Y verificar para una matriz  de 3x3 que se dio en clase.

sábado, 12 de marzo de 2016

Tarea


Les paso la tarea para este fin de semana:




Calcular la fac. de Cholesky de 
A =
       4              8              2              6             10       
       8             20             12             14             26       
       2             12             21             15             19       
       6             14             15             30             30       
      10             26             19             30             55     

viernes, 18 de marzo de 2016

Tarea Examen

Aquí la tarea.

DESCARGA

martes, 29 de marzo de 2016

Algoritmo de Gram-Schmidt

"El método de Gram-Schmit es un algoritmo para obtener, a partir de una base, otra que genere el mismo espacio y además sea ortogonal."

Les dejo los códigos en MatLab que vimos en clase, ustedes pueden mejorarlos..

Algoritmo de Gram-Schmidt

  • Factorización S=QR, con R una matriz triangular con 1's en la diagonal, y Q una matriz con columnas ortogonales.

S=rand(5)
Q=zeros(5)
for i=1:5
Q(:,i)=S(:,i);
j=1;
while j<i
Q(:,i) = Q(:,i) - (dot(Q(:,j),S(:,i))/dot(Q(:,j),Q(:,j)))*Q(:,j);
j=j+1;
end
Q
end
Q'*Q

  • Factorización S=QR, con R una matriz triangular y Q una matriz con columnas ortonormales.
S=10*rand(5)
Q=zeros(5)
for i=1:5
Q(:,i)=S(:,i);
j=1;
while j<i
Q(:,i) = Q(:,i) - (dot(Q(:,j),S(:,i)))*Q(:,j);
j=j+1;
end
Q(:,i)=Q(:,i)/sqrt(dot(Q(:,i),Q(:,i)));
Q
end
Q'*Q


    Algoritmo de Gram-Schmidt modificado
    • Factorización S=QR, con R una matriz triangular con 1's en la diagonal, y Q una matriz con columnas ortogonales.
    S=10*rand(5)
    Saux=S
    Q=zeros(5)
    for i=1:5
    Q(:,i)=Saux(:,i);
    j=1;
    for j=i+1:5
    Saux(:,j)=Saux(:,j)-(dot(Q(:,i),Saux(:,j))/dot(Q(:,i),Q(:,i)))*Q(:,i);
    j=j+1;
    end
    Q'*S
    end
    Q'*Q

    Ejercicio, hacer un programa con el Algoritmo de Gram-Schmidt Modificado que calcule a Q una matriz con columnas ortonormales.

    jueves, 31 de marzo de 2016

    Población Mexicana

    Acá un poco de ayuda con la tarea.


    • Código en Mathematica de aproximación mínimos cuadrados, solución de (A^t)(A)x=(A^t)Y 


    X = {1825, 1838, 1846, 1858, 1862, 1872, 1900, 1910, 1920, 1929, 1940,
        1950, 1960, 1970, 1980, 1990, 2000, 2010};

    Y = {6.8, 7.8, 7.5, 8.3, 8.8, 9, 13.6, 15.2, 14.3, 15.6, 19.6, 25.7, 
       34.5, 48.2, 66.8, 81.2, 97.5, 112};

    g = ListPlot[Table[{X[[n]], Y[[n]]}, {n, 18}], 
      PlotRange -> {{1800, 2020}, {0, 120}}]


    (*Esta función nos devuelve un polinomio de grado "n" que aproxima el \
    conjunto de puntos (X,Y), el argumento de la función es "n"  *)
    FA[n_] := {A = ConstantArray[0, 18];
       
       (*Esta parte hace el llenado de la matriz A*)
       For[i = 1, i <= 18, i++,
        ra = {};
        For[j = n, j >= 0, j = j - 1,
         ra = Append[ra, X[[i]]^j];
         ];
        A[[i]] = ra;
        ];
       
       (*Aquí resolvemos el sistema A^t.A.z=A^t.Y *)
       z = Inverse[Transpose[A].A].Transpose[A].Y;
       
       
       (*Aquí hacemos un vector (1, x, x^2, ... , x^n) *)
       xx = {};
       For[j = n, j >= 0, j = j - 1,
        xx = Append[xx, x^j];];
       
       (*Y Aquí mostramos el polinomio de grado "n" que aproxima mi \
    conjunto de puntos *)
       
       Print[z.xx]
       };



    (*Probamos la función*)

    FA[1];
    FA[2];
    FA[3];
    FA[4];
    FA[5];
    FA[6];
    FA[7];


    -897.664+0.484675 x
    20442.3 -21.7979 x+0.00581142 x^2
    -249228.+400.164 x-0.21416 x^2+0.0000382045 x^3
    -1.28905*10^6+2572.15 x-1.91487 x^2+0.000629848 x^3-7.71548*10^-8 x^4
    1.97799*10^8-517173. x+540.673 x^2-0.282504 x^3+0.0000737738 x^4-7.70289*10^-9 x^5
    -3.21198*10^9+1.01601*10^7 x-13387.3 x^2+9.40497 x^3-0.00371552 x^4+7.82621*10^-7 x^5-6.86659*10^-11 x^6
    -9.71727*10^10+3.53646*10^8 x-551420. x^2+477.519 x^3-0.248037 x^4+0.0000772785 x^5-1.33719*10^-8 x^6+9.91321*10^-13 x^7


    (*Graficaremos y meteremos las gráficas en una lista*)
    n = {0, 0, 0, 0, 0, 0, 0, 0};

    n[[1]] = Show[g, 
       Plot[-897.6641928173526` + 0.48467463746274153` x, {x, 1825, 2010},
         PlotRange -> {{1800, 2020}, {0, 120}}]];
    n[[2]] = Show[g, 
       Plot[20442.306836608994` - 21.7978533051658` x + 
         0.005811415549253077` x^2, {x, 1825, 2010}, 
        PlotRange -> {{1800, 2020}, {0, 120}}]];
    n[[3]] = Show[g, 
       Plot[-249227.85493191678` + 400.1640275525721` x - 
         0.21416016560400963` x^2 + 0.00003820447959753087` x^3, {x, 1825,
          2010}, PlotRange -> {{1800, 2020}, {0, 120}}]];
    n[[4]] = Show[g, 
       Plot[-1.2890492831082772`*^6 + 2572.1543947656755` x - 
         1.9148674978535265` x^2 + 0.0006298478528085887` x^3 - 
         7.715480571538225`*^-8 x^4, {x, 1825, 2010}, 

        PlotRange -> {{1800, 2020}, {0, 120}}]];
    n[[5]] = Show[g, 
       Plot[1.9779879718994665`*^8 - 517173.4933725643` x + 
         540.6725095707277` x^2 - 0.2825037098744445` x^3 + 
         0.00007377377897575303` x^4 - 7.702891738786264`*^-9 x^5, {x, 
         1825, 2010}, PlotRange -> {{1800, 2020}, {0, 120}}]];
    n[[6]] = Show[g, 
       Plot[-3.2119776534339714`*^9 + 1.0160131070137084`*^7 x - 
         13387.256664146946` x^2 + 9.404974137884125` x^3 - 
         0.0037155180326244076` x^4 + 7.82620533443967`*^-7 x^5 - 
         6.86659278498812`*^-11 x^6, {x, 1825, 2010}, 
        PlotRange -> {{1800, 2020}, {0, 120}}]];
    n[[7]] = Show[g, 
       Plot[-9.717272647643164`*^10 + 3.5364560518599033`*^8 x - 
         551420.0646114675` x^2 + 477.51926634178744` x^3 - 
         0.24803695269323622` x^4 + 0.00007727845513013374` x^5 - 
         1.3371887640880992`*^-8 x^6 + 9.913213426395303`*^-13 x^7, {x, 

         1825, 2010}, PlotRange -> {{1800, 2020}, {0, 120}}]];


    (*Hacemos una visualización animada para ver el comportamiento cualitativo de las aproximaciones*)

    ListAnimate[n, 1]


    • Factorización A=QR, con Q ortonormal

    (*Matriz de 5x5 aleatoria*)

    A = {{3.9926, 2.9198, 1.0622, 9.5163, 4.2284}, {5.2688, 4.3165, 
        3.7241, 9.2033, 5.4787}, {4.1680, 0.1549, 1.9812, 0.5268, 
        9.4274}, {6.5686, 9.8406, 4.8969, 7.3786, 4.1774}, {6.2797, 

        1.6717, 3.3949, 2.6912, 9.8305}};

    (*Código*)
    Sauxt = Transpose[A];
    Qt = ConstantArray[0, {5, 5}];
    For[i = 1, i <= 5, i++,
     Qt = ReplacePart[Qt, Sauxt[[i]] /Sqrt[Sauxt[[i]].Sauxt[[i]]], i];
     For[j = i + 1, j <= 5, j++,
      Sauxt = 
       ReplacePart[Sauxt, 
        Sauxt[[j]] - (Qt[[i]].Sauxt[[j]]/(Qt[[i]].Qt[[i]]))*Qt[[i]], j]
      ]

     ]


    (*Pruebas*)
    Qt // MatrixForm

    (*Esto debe ser la identidad*)
    Qt.Transpose[Qt] // MatrixForm


    (*Esto debe ser R*)
    Qt.A // MatrixForm




    • Código en MatLab del llenado de A para n=3 
    X = [1825 1838 1846 1858 1862 1872 1900 1910 1920 1929 1940 1950 1960 1970 1980 1990 2000 2010];
    Y = [6.8 7.8 7.5 8.3 8.8 9 13.6 15.2 14.3 15.6 19.6 25.7 34.5 48.2 66.8 81.2 97.5 112];
    plot(X,Y,':dk')
    >> 
     A=zeros([18,4]);
    for i=1:18

    ra = zeros([1,4]);

    for j=0:3
    ra(4-j)=X(i)^j;
    j=j+1;    
    end

        A(i,:) = ra;
    i=i+1;

    end

    • Código de la función FA en MatLab con argumento "n", Ojo es diferente la forma en la que definen funciones. menú New / function y guardan con nombre FA.m
    • Si quieren modificarlo y que haga lo mismo que la función en Mathematica (devuelva el polinomio), deben introducir aquí también al vector Y.
    function [ A ] = FA( n )
    %UNTITLED Summary of this function goes here
    %   Detailed explanation goes here
    X = [1825 1838 1846 1858 1862 1872 1900 1910 1920 1929 1940 1950 1960 1970 1980 1990 2000 2010];
    A=zeros([18,n+1]);
    for i=1:18



    ra = zeros([1,n+1]);


    for j=0:n
    ra(n+1-j)=X(i)^j;
    j=j+1;    
    end


        A(i,:) = ra;
    i=i+1;
    end


    end


    • Una forma de utilizar esta función sería por ejemplo

    (inv(FA(5)'*FA(5))*FA(5)'*Y')
    que devuelve el vector

    1.0e+06 *

        0.0000
       -0.0000
        0.0000
       -0.0000
        0.0048

       -2.1455
    con la advertencia :Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND =  2.882565e-47. 

    Por lo que el profesor ha pedido usar la factorización QR, se puede usar de dos modos haciendo a A=QR:

    por lo que se debería resolver Rx=A^t*Y, sin embargo esto no da buenas aproximaciones (confirmado).

    el otro modo es usarlo en Â=QR, donde Â=A^t*A, 
    entonces

    (A^t)(A)x=(A^t)Y

    QR*x=b, luego R*x=Q^t*b, que parece fácil de resolver. 



    Con estos códigos debe ser suficiente para que se den una idea. 

    Saludos





    lunes, 11 de abril de 2016

    Mínimos cuadrados chidos

    X = {1825, 1838, 1846, 1858, 1862, 1872, 1900, 1910, 1920, 1929, 1940,
        1950, 1960, 1970, 1980, 1990, 2000, 2010};
    Y = {6.8, 7.8, 7.5, 8.3, 8.8, 9, 13.6, 15.2, 14.3, 15.6, 19.6, 25.7,
       34.5, 48.2, 66.8, 81.2, 97.5, 112};
    g = ListPlot[Table[{X[[n]], Y[[n]]}, {n, 18}],
      PlotRange -> {{1800, 2020}, {0, 120}}]



    n = 8;

    P[u_, v_] := {a = u; b = v; uu[t_] = a; vv[t_] = b;
       sum = 0;
       For[k = 1, k <= 18, k++,
        sum = sum + uu[X[[k]]]*vv[X[[k]]];
        ];
       sum
       }[[1]]

    Q = Array[0 &, n + 1];
    For[i = 1, i <= n + 1, i++,
     Q[[i]] = t^(i - 1);
     For[j = i - 1, j > 0, j = j - 1,
      Q[[i]] =
        Q[[i]] - P[t^(i - 1), Q[[j]] ] *   Q[[j]] /P[Q[[j]], Q[[j]] ] ;
      ]
     ]


    G[v_] := { b = v; vv[t_] = b;
        sum = 0;
        For[k = 1, k <= 18, k++,
         sum = sum + Y[[k]]*vv[X[[k]]];
         ];
        sum
        }[[1]];

    Pol = 0;
    For[j = 1, j <= n + 1, j++,
      Pol = Pol + G[Q[[j]]]*Q[[j]]/P[Q[[j]], Q[[j]]];
      ];
    Simplify[Pol];
    Pol;





    Show[g, Plot[Pol, {t, 1825, 2010},
      PlotRange -> {{1800, 2020}, {0, 120}}]]

    miércoles, 11 de mayo de 2016

    Determinante y Eigenvalores

    Aquí están las notas de los temas de determinate y eigenvalores. Vistos la semana pasada.

    Descarga

    sábado, 21 de mayo de 2016

    TAREA EXAMEN 2 ACTUALIZADO

    Para concluir con el curso dejaremos esta tarea examen que deberá entregarse el día 03 de Junio, y que consiste de dos partes, se ponen a su alcance en el siguiente link de descarga:

    PARTE 1

    PARTE 2


    lunes, 6 de junio de 2016

    CALIFICACIONES FINALES

    Podrán consultar aquí su calificación final

    CALIFICACIONES

    cualquier duda o aclaración en los correos:


    las tareas finales serán entregadas mañana martes a la hora de clase