Next: Some numerical primitive 1
Up: Introduction to SCILAB
Previous: Linear dynamical systems
-->v=1:5;W=v'*v //constant matrix multiplication
W =
! 1. 2. 3. 4. 5. !
! 2. 4. 6. 8. 10. !
! 3. 6. 9. 12. 15. !
! 4. 8. 12. 16. 20. !
! 5. 10. 15. 20. 25. !
-->W(1,:) //extracting first row
ans =
! 1. 2. 3. 4. 5. !
-->W(:,$) //using $ for extracting last column
ans =
! 5. !
! 10. !
! 15. !
! 20. !
! 25. !
-->Mp'*Mp+eye //polynomial matrix
ans =
column 1
! 2 3 4 !
! 3 + 6z + 18z + 27z + 20.25z !
! !
! 2 !
! 1 + 3z + 4.5z !
column 2
! 2 !
! 1 + 3z + 4.5z !
! !
! 2 3 4 5 6 !
! 2 - 2z + 2z + 6z + 18z + 27z + 20.25z !
-->Mp1=Mp(1,1)+4.5*%i //complex
Mp1 =
real part
2
1 + 3z + 4.5z
imaginary part
4.5
-->Fi=C*(z*eye-A)^(-1)*B; //transfer function evaluation
-->F(:,1)*Fi //operations with rationals
ans =
! 2 2 !
! 1 + 3z + 4.5z - 1 - 3z - 4.5z !
! --------------------- --------------------- !
! 2 3 4 2 3 4 !
! 4 - 10z + 10z - 5z + z 6 - 14z + 13z - 6z + z !
! !
! 1 - 1 !
! --------------------- --------------------- !
! 2 3 4 2 3 4 !
! 4 - 10z + 10z - 5z + z 6 - 14z + 13z - 6z + z !
-->M=[Mp -Mp; Mp' Mp+eye] //concatenation of polynomial matrices
M =
column 1 to 3
! 2 2 !
! 1 + 3z + 4.5z 1 - z - 1 - 3z - 4.5z !
! !
! 2 3 !
! 1 z + 3z + 4.5z - 1 !
! !
! 2 2 !
! 1 + 3z + 4.5z 1 2 + 3z + 4.5z !
! !
! 2 3 !
! 1 - z z + 3z + 4.5z 1 !
column 4
! - 1 + z !
! !
! 2 3 !
! - z - 3z - 4.5z !
! !
! 1 - z !
! !
! 2 3 !
! 1 + z + 3z + 4.5z !
-->[Fi, Fi(:,1)] // ... or rationals
ans =
! 1 - 1 1 !
! ----- ----- ----- !
! - 2 + z - 3 + z - 2 + z !
-->F=syslin('c',F) // Rational to transfer function
F =
! 2 !
! 1 + 3z + 4.5z - 1 !
! --------------- --------- !
! 2 3 2 !
! - 2 + 4z - 3z + z 2 - 2z + z !
! !
! 2 3 !
! 1 z + 3z + 4.5z !
! --------------- --------------- !
! 2 3 2 3 !
! - 2 + 4z - 3z + z - 2 + 4z - 3z + z !
-->Num=F('num'),Den=F('den'),
Num =
! 2 !
! 1 + 3z + 4.5z - 1 !
! !
! 2 3 !
! 1 z + 3z + 4.5z !
Den =
! 2 3 2 !
! - 2 + 4z - 3z + z 2 - 2z + z !
! !
! 2 3 2 3 !
! - 2 + 4z - 3z + z - 2 + 4z - 3z + z !
Scilab group