(* Matrizenoperationen *)

Matrix={{1,2,3},{4,5,6},{7,8,0}}

Matrix//MatrixForm

Transpose[Matrix]//MatrixForm

Inverse[Matrix]//MatrixForm

InvMatrix=Inverse[Matrix];
Matrix.InvMatrix//MatrixForm

4*Matrix//MatrixForm

vec={{2,-3,-5}};
Transpose[vec]
vec.Matrix.Transpose[vec]

(* Determinanten etc. *)

Det[Matrix]

Sin[Pi/11]

N[%,100]

Eigenvalues[{{1,0,2},{0,5,3},{2,3,-1}}]

N[Eigenvalues[{{1,0,2},{0,5,3},{2,3,-1}}]]

N[Eigenvectors[{{1,0,2},{0,5,3},{2,3,-1}}]]

N[Eigensystem[{{1,0,2},{0,5,3},{2,3,-1}}]]

SkalarT={{35,-5,-27},{-5,11,9},{-27,9,27}};
SkalarT//MatrixForm
PositiveDefiniteMatrixQ[SkalarT]

(* Algebra *)

solx=Solve[{x^3-2 x+1==0},{x}]

x/.solx

solutions=x/.solx

x2=solutions[[2]]

x2

(* ******************************************************* *)

(* Diagonalisieren von zwei symmetrischen Bilinearfunktionen *)

(* Definition von S & T bzw. von Phi & Psi *)

S={{-1/2,1/4,-1},{1/4,-1/2,-1},{-1,-1,-1/2}};
T={{3/8,3/4,-1/8},{3/4,3/8,-1/8},{-1/8,-1/8,9/4}};
S//MatrixForm
T//MatrixForm

(* Ueberpruefen, ob S & T eine nicht-triviale gemeinsame Nullstelle haben *)

v={{v1,v2,v3}};
vt=Transpose[v];
s1=v.S.vt
s2=v.T.vt
r1=s1[[1,1]]
r2=s2[[1,1]]
NSolve[{r1==0,r2==0,v1==1},{v1,v2,v3}]

(* Bestimmen der Eigenwerte von S bezueglich T *)

soldet=lam/.NSolve[Det[S-lam*T]==0,lam];
Print["lamda1 = ",lam1=soldet[[1]]]
Print["lamda2 = ",lam2=soldet[[2]]]
Print["lamda3 = ",lam3=soldet[[3]]]

(* Bestimmen eines Eigenvektors u1 *)

w1={{1,0,0}};
w2={{0,1,0}};
w1sv=w1.S.vt-lam1*w1.T.vt;
w2sv=w2.S.vt-lam1*w2.T.vt;
n1=w1sv[[1,1]];
n2=w2sv[[1,1]];
solv=NSolve[{n1==0,n2==0,v1==1},{v1,v2,v3}];
u11=v1/.solv[[1,1]];
u12=v2/.solv[[1,2]];
u13=v3/.solv[[1,3]];
u1={{u11,u12,u13}};
u1t=Transpose[u1];
Print["u1 = ",u1t//MatrixForm]

(* Bestimmen eines Vektors w0 aus W *)

Print["Vektor aus W:"]
solw0=Solve[{u1.S.vt=={{0}},v1==1,v2==0},{v1,v2,v3}];
w11=v1/.solw0[[1,1]];
w12=v2/.solw0[[1,2]];
w13=v3/.solw0[[1,3]];
ww0={{w11,w12,w13}};
Print["w0 = ",Transpose[ww0]//MatrixForm]

(* Bestimmen eines Eigenvektors u2 *)

w0sv=ww0.S.vt-lam2*ww0.T.vt;
u1sv=u1.S.vt;
n0=w0sv[[1,1]];
n1=u1sv[[1,1]];
solu2=Solve[{n0==0,n1==0,v1==1,v2==1},{v1,v2,v3}];
u21=Round[v1/.solu2[[1,1]],1];
u22=Round[v2/.solu2[[1,2]],1];
u23=Round[v3/.solu2[[1,3]],1];
u2={{u21,u22,u23}};
u2t=Transpose[u2];
Print["u2 = ",u2t//MatrixForm]

(* Bestimmen eines Eigenvektors u3 *)

solu3=Solve[{u1.S.vt=={{0}},u2.S.vt=={{0}},v1==2},{v1,v2,v3}];
u31=v1/.solu3[[1,1]];
u32=v2/.solu3[[1,2]];
u33=Round[v3/.solu3[[1,3]],.0001];
u3={{u31,u32,u33}};
u3t=Transpose[u3];
Print["u3 = ",u3t//MatrixForm]

(* Ueberpruefen des Resultats *)

Lt={u1[[1]],u2[[1]],u3[[1]]};
L=Transpose[Lt];
Print["BasisTransformationsMatrix L:"]
Round[L,.0001]//MatrixForm
Print["S bzw. Phi diagonalisiert:"]
Round[Lt.S.L,.001]//MatrixForm
Print["T bzw. Psi diagonalisiert:"]
Round[Lt.T.L,.001]//MatrixForm