ó
âWZc           @   s›   d  d l  Td „  Z d „  Z d d „ Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z	 d „  Z
 d d „ Z d „  Z d „  Z d „  Z d „  Z d S(   iÿÿÿÿ(   t   *c         C   s=   d GHx, t  t |  ƒ ƒ D] } d Gt |  | ƒ q Wd GHd  S(   Nt   [s      t   ](   t   ranget   lent   Vector_Print(   t   At   i(    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrix_Print   s
    c         C   sn   g  } xa t  t |  ƒ ƒ D]M } | j g  ƒ x7 t  t |  | ƒ ƒ D] } | | j |  | | ƒ qC Wq W| S(   N(   R   R   t   append(   R   t   BR   t   j(    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrix_Copy   s    !i    c         C   sk   | d k r |  } n  g  } xI t  |  ƒ D]; } | j g  ƒ x% t  | ƒ D] } | | j d ƒ qH Wq( W| S(   Ni    g        (   R   R	   (   t   mt   nt   OR   R   (    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrix_Zero   s     	c         C   s5   t  |  ƒ } x" t |  ƒ D] } d | | | <q W| S(   Ng      ð?(   R   R   (   R   t   IR   (    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrix_Identity   s    c         C   sv   g  } xi t  t |  ƒ ƒ D]U } | j g  ƒ d } x9 t  t |  ƒ ƒ D]% } | | j | ƒ | |  | 9} qE Wq W| S(   Ng      ð?(   R   R   R	   (   t   vt   VR   t   factR   (    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrix_Vandermonte&   s    c         C   sÔ   t  |  ƒ t  | ƒ k r' d GHt ƒ  n  g  } x  t t  |  ƒ ƒ D]Œ } | j g  ƒ t  |  | ƒ t  | | ƒ k r‚ d GHt ƒ  n  xG t t  |  | ƒ ƒ D]/ } | | j d |  | | | | | ƒ q™ Wq@ W| S(   Ns4   Matrices_Add: Matrices does not have same no of rowss7   Matrices_Add: Matrices does not have same no of columnsg      ð?(   R   t   exitR   R	   (   R   R
   t   CR   R   (    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrices_Add4   s    
 
1c         C   sÔ   t  |  ƒ t  | ƒ k r' d GHt ƒ  n  g  } x  t t  |  ƒ ƒ D]Œ } | j g  ƒ t  |  | ƒ t  | | ƒ k r‚ d GHt ƒ  n  xG t t  |  | ƒ ƒ D]/ } | | j d |  | | | | | ƒ q™ Wq@ W| S(   Ns5   Matrices_Add: Matrices does not have same no of liness7   Matrices_Add: Matrices does not have same no of columnsg      ð?(   R   R   R   R	   (   R   R
   R   R   R   (    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrices_SubE   s    
 
1c         C   sr   g  } xe t  t |  ƒ ƒ D]Q } | j g  ƒ x; t  t |  | ƒ ƒ D]# } | | j | |  | | ƒ qC Wq W| S(   N(   R   R   R	   (   R   t   aR   R   R   (    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrix_Mult_ScalarV   s    %c         C   s¤   t  |  d ƒ t  | ƒ k r+ d GHt ƒ  n  g  } xl t t  |  ƒ ƒ D]X } d } x< t t  |  | ƒ ƒ D]$ } | d |  | | | | 7} qg W| j | ƒ qD W| S(   Ni    sE   Matrices_Mult_Vector: Matrices and Vector has incompatible dimensionsg        g      ð?(   R   R   R   R	   (   R   R   t   wR   t   sumR   (    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrix_Mult_Vector_   s    
"c         C   sÖ   t  |  d ƒ t  | ƒ k r+ d GHt ƒ  n  g  } xž t t  |  ƒ ƒ D]Š } | j g  ƒ xt t t  | d ƒ ƒ D]\ } d } x< t t  | ƒ ƒ D]( } | d |  | | | | | 7} q W| | j | ƒ qn WqD W| S(   Ni    s3   Matrices_Mult: Matrices has incompatible dimensionsg        g      ð?(   R   R   R   R	   (   R   R
   R   R   R   R   t   k(    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrices_Multl   s    
&g       @c         C   sl   d } xW t  t |  ƒ ƒ D]C } x: t  t |  | ƒ ƒ D]" } | t |  | | ƒ | 7} q6 Wq W| d | S(   Ng        g      ð?(   R   R   t   abs(   R   t   pt   normR   R   (    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrix_Norm|   s
    $c         C   s9   x2 t  t |  | ƒ ƒ D] } |  | | c | 9<q Wd  S(   N(   R   R   (   R   R   R   R    (    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrices_Row_Mult„   s    c         C   sg   | | k r d  SxP t  t |  | ƒ ƒ D]8 } |  | | } |  | | |  | | <| |  | | <q' Wd  S(   N(   R   R   (   R   R   R   R    t   tmp(    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrices_Rows_Swap‰   s     c         C   sU   | | k r d  Sx> t  t |  | ƒ ƒ D]& } |  | | c | |  | | 7<q' Wd  S(   N(   R   R   (   R   R   t   cR   R    (    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrices_Rows_Operation‘   s     c         C   s
   t  |  ƒ S(   N(   t   Matrix_Gauss_Forward(   R   (    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   Matrix_Determinant˜   s    N(   t   VectorR   R   R   R   R   R   R   R   R   R!   R%   R&   R(   R*   R,   (    (    (    sK   /usr/local/Slides/1_Disciplines/1_CN/4_Interpolation/9_Activities/Matrix.pyt   <module>   s   
														