File: sylvester.sci

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (36 lines) | stat: -rw-r--r-- 1,290 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 function [X]=sylvester(A,B,C,flag)
// Copyright INRIA
// Generated by lmitool on Thu Feb 09 11:55:34 MET 1995
   
   Mbound = 1e3;
   abstol = 1e-10;
   nu = 10;
   maxiters = 100;
   reltol = 1e-10;
   options=[Mbound,abstol,nu,maxiters,reltol];
    
 ///////////DEFINE INITIAL GUESS AND PRELIMINARY CALCULATIONS BELOW
 [na,ma]=size(A);[nb,mb]=size(B)                                   
 if ma<>na|mb<>nb then error("invalid dimensions");end             
 X_init=zeros(ma,nb)                                               
 /////////// 
  
 XLIST0=list(X_init)
 XLIST=lmisolver(XLIST0,sylvester_eval,options)
 [X]=XLIST(:)
  
  
  
 /////////////////EVALUATION FUNCTION////////////////////////////
  
 function [LME,LMI,OBJ]=sylvester_eval(XLIST)
 [X]=XLIST(:)
  
 /////////////////DEFINE LME, LMI and OBJ BELOW
 if flag=='c' then LME=A*X+X*B-C                                   
 else LME=A*X*B-C                                                  
 end                                                               
 LMI=[]                                                            
 OBJ=[]