Changeset 5831fa9 in git for Singular/LIB/control.lib


Ignore:
Timestamp:
Aug 9, 2004, 2:57:20 PM (20 years ago)
Author:
Viktor Levandovskyy <levandov@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'c5facdfddea2addfd91babd8b9019161dea4b695')
Children:
943192586bf6d25b8bb1b219c2fd992f0c6c24e0
Parents:
2e4e6ecb792d046fdb8da3192871941851acb5f5
Message:
*levandov: text added, cosmetic changes, kills in examples


git-svn-id: file:///usr/local/Singular/svn/trunk@7338 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/control.lib

    r2e4e6ec r5831fa9  
    1 version="$Id: control.lib,v 1.7 2004-08-08 21:40:19 plural Exp $";
    2 category="System and Control Theory";
     1version="$Id: control.lib,v 1.8 2004-08-09 12:57:20 levandov Exp $";
     2category="Miscellaneous";
    33info="
    44LIBRARY:  control.lib Procedures for System and Control Theory
     
    66@*        Markus Becker   mbecker@mathematik.uni-kl.de
    77
    8 SUPPORT: Forschungsschwerpunkt 'Mathematik und Praxis'
    9 
     8SUPPORT: Forschungsschwerpunkt 'Mathematik und Praxis' (Project of Dr. E. Zerz
     9and V. Levandovskyy), Uni Kaiserslautern
     10
     11NOTE: This library provides algebraic analysis tools for System and Control Theory
    1012
    1113PROCEDURES:
    12 declare(string NameOfRing, string Variables[,string  Parameters, string Ordering]);
    13 Defining the ring, optional parametes are a string of parameters and a sting of ordering.
    14  
    15 Print();                      Well-formatted output of lists, modules and matrixes
    16 control(module R);            Computes everthing related to controllability
    17 autonom(module R);            Computes everything related to autonomy(using Exts)
    18 autonom2(module R);           Computes everything related to autonomy(using dim)
    19 LeftKernel(module R);         Computing the left kernel of R
    20 RightKernel(module R);        Computing the right kernel of R
    21 LeftInverse(module R)         Computes left inverse of matrix(module)
    22 
    23 static Ext_Our(...)                  Copy of Ext_R from 'homolog.lib' in commutative case;
    24 static is_zero_Our(module R)         Copy of is_zero from 'OBpoly.lib';
    25 static space(int n)           Procedure used inside the procedure 'Print' to have a better formatted output
    26 static control_output();      Generating the output for the procedure 'control'
    27 static autonom_output();      Generating the output for the procedure 'autonom' and 'autonom2'
    28 
     14control(module R);            analysis of controllability-related properties of R,
     15autonom(module R);            analysis of autonomy-related properties of R (using Ext modules),
     16autonom2(module R);           analysis of autonomy-related properties of R (using dimension),
     17LeftKernel(module R);         a left kernel of R,
     18RightKernel(module R);        a right kernel of R,
     19LeftInverse(module R)         a left inverse of matrix (module).
     20
     21AUXILIARY PROCEDURES:
     22declare(string NameOfRing, string Variables[,string  Parameters, string Ordering]);     defines the ring, optional parametes are a string of parameters and a sting of ordering,
     23view();                      Well-formatted output of lists, modules and matrixes
    2924";
     25
     26// NOTE: static things should not be shown for end-user
     27// static Ext_Our(...)                  Copy of Ext_R from 'homolog.lib' in commutative case;
     28// static is_zero_Our(module R)         Copy of is_zero from 'OBpoly.lib';
     29//  static space(int n)           Procedure used inside the procedure 'Print' to have a better formatted output
     30// static control_output();      Generating the output for the procedure 'control'
     31// static autonom_output();      Generating the output for the procedure 'autonom' and 'autonom2'
    3032
    3133LIB "homolog.lib";
     
    6769  };
    6870  keepring(basering);
    69 };
     71}
    7072example
    7173{"EXAMPLE:";echo = 2;
     
    192194  print(M);
    193195  return();
    194 };
     196}
    195197example
    196198{"EXAMPLE:";echo = 2;
     
    205207           M:  matrix
    206208RETURN:  right kernel of matrix M, i.e., the module of all elements v such that Mv=0
    207 NOTE:  in commutative case it is really a left  module, in noncommutative(to be implemented later) it will be right module   
     209NOTE:  in commutative case it is a left  module, in noncommutative (will be implemented later) it is a right module   
    208210EXAMPLE:  example RightKernel; shows an example
    209211"
    210212{
    211213  return(syz(M));
    212 };
     214}
    213215example
    214216{"EXAMPLE:";echo = 2;
     
    228230{
    229231  return( transpose( syz( transpose(M) ) ) );
    230 };
     232}
    231233example
    232234{"EXAMPLE:";echo = 2;
     
    250252  module Id=I;
    251253  return( transpose( lift( module(M),Id ) )  );
    252 };
     254}
    253255example
    254256{"EXAMPLE:";echo =2;
     
    270272    return( Ext_R(i,R,#[1]) );
    271273  };
    272 };
     274}
    273275//------------------------------------------------------------------------
    274276static proc is_zero_Our(module R)
     
    378380 
    379381  return( control_output( i, NVars, R, Ext_1 ) );
    380 };
     382}
    381383example
    382384{"EXAMPLE:";echo = 2;
     
    395397  view( Rc );
    396398  view( control(Rc) );
     399  kill r;
    397400  //----------------------------------
    398401  //reflector antenna
     
    408411  view(R);
    409412  view(control(R));
     413  kill A;
    410414  //----------------------------------
    411415  //Flexible Rod
     
    417421  view(R);
    418422  view(control(R));
     423  kill A;
    419424  //-------------------------------------
    420425  //TwoPendula
     
    427432  view(R);
    428433  view(control(R));
     434  kill r;
    429435  //----------------------------------------
    430436  //Wind Tunnel
     
    526532  d=dim( std( Ann(R) ) );
    527533  return( autonom_output(NVars-d,NVars) );
    528 };
     534}
    529535example
    530536{"EXAMPLE:"; echo = 2;
     
    542548  view( Rc );
    543549  view( autonom2(Rc) );
     550  kill r;
    544551  //-----------------------------------
    545552  ring r=0,(s1,s2),dp;
     
    549556  view( R );
    550557  view( autonom2(R) );
    551  
     558  kill r;
     559  //-----------------------------------
    552560  ring r=0,(s1,s2,s3,s4),dp;
    553561  module R= [s1,-s2],
     
    558566  view( R );
    559567  view( autonom2(R) );
     568  kill r;
    560569  //----------------------------------------
    561570  ring r=0,(d1,d2),dp;
     
    576585//"Computes the autonomy of a behaviour represented by the matrix R"
    577586{
    578   int i;
    579587  int NVars=nvars(basering);
    580   int ExtIsZero;
    581    
    582  
     588  int ExtIsZero;   
    583589  R=transpose(R);
    584  
    585  
    586590  ExtIsZero=is_zero_Our(Ext_Our(0,R));
    587  
    588   i=0;
     591  int i=0;
    589592  while( (ExtIsZero)&&(i<=NVars) )
    590593  {
     
    592595    ExtIsZero = is_zero_Our(Ext_Our(i,R));
    593596  };
    594  
    595   return(autonom_output(i,NVars));
    596      
    597 };
     597
     598  return(autonom_output(i,NVars));     
     599}
    598600example
    599601{"EXAMPLE:"; echo = 2;
     
    611613  view( Rc );
    612614  view( autonom(Rc) );
     615  kill r;
    613616  //-----------------------------------
    614617  ring r=0,(s1,s2),dp;
     
    618621  view( R );
    619622  view( autonom(R) );
    620  
     623  kill r;
     624 //-----------------------------------
    621625  ring r=0,(s1,s2,s3,s4),dp;
    622626  module R= [s1,-s2],
     
    627631  view( R );
    628632  view( autonom(R) );
     633  kill r;
    629634  //----------------------------------------
    630635  ring r=0,(d1,d2),dp;
     
    634639  view(R);
    635640  view(autonom(R));       
    636  
    637641}; 
    638642//---------------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.