File: polar.sci

package info (click to toggle)
scilab 2.4-1
  • links: PTS
  • area: non-free
  • in suites: potato, slink
  • size: 55,196 kB
  • ctags: 38,019
  • sloc: ansic: 231,970; fortran: 148,976; tcl: 7,099; makefile: 4,585; sh: 2,978; csh: 154; cpp: 101; asm: 39; sed: 5
file content (22 lines) | stat: -rw-r--r-- 347 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function [ro,teta]=polar(a);
//[ro,Teta]=polar(A);
// Polar form of A
// A=Ro*exp(%i*Teta) Ro symmetric >=0 
// Teta hermitian >=0
//F.D.
//!
// Copyright INRIA
[U,s,V]=svd(a);
ro1=U*sqrt(s);
ro=ro1*ro1';
W=U*V';
// A = Ro*W   (Ro sdp ; W unit)
// W=exp(%i*Teta)
//
[ab,x,bs]=bdiag(W+0*%i*W);
z=log(diag(ab));
lw=x*diag(z)*inv(x);
teta=-%i*lw;