%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
disp('Beispiele zum elementaren Rechnen')

clear all
close all

% Definieren von Matrizen und Vektoren
% und Operatoren zur Matrix-Vektorrechnung
alpha=pi/4;
A=[cos(alpha), -sin(alpha); sin(alpha), cos(alpha)]
x=1/sqrt(2)*[1; 1]
A\x
B=[cos(-alpha), -sin(-alpha); sin(-alpha) cos(-alpha)];
C=A+B
A*B
B
A\[1 0; 0 1]



% Rechnen mit Matrizen und Skalaren
disp('Beispiele zum Rechnen mit Skalaren')
input('Return druecken')
3*[1 1; 0 1]
[1 1; 0 1]/3
[1 1; 0 1]^2
[1 1; 0 1]+3

% Beispiele für spezielle Matrizen
ones(4)
zeros(4)
eye(4)
rand(4,2)
randn(4,3)
magic(3)
d=2*ones(4)
c=ones(3)
e=ones(3)
gallery('jordbloc', 4)

%Beispiele zum komponentenweisen Rechnen
disp('Komponentenweises Rechnen')
input('Return druecken')

A=[2 4; 6 9];
B=[2 2; 3 6];
A.*B
A./B
A.^B


% Modifikation von Matrien
disp('Auslesen und Modifizieren von Matrixelementen')
input('Return druecken')

clear all
A=[1 2 3; 4 5 6]
A(2,2)
A(2)
A(1:4)
A(1, 2:3)
A(1, 2:3)=zeros(1,2)

%Konstruktion von Matrizen
disp('Konstruieren von Matrizen')
input('Return druecken')
clear all

A=[1:4; eye(1,2), zeros(1,2)]
B=reshape(1:4,2,2)
A(:,2:3)=[]
B'
fliplr(B)
flipud(B)

%Abmessungen von Matrizen und Vektoren
disp('Abmessungen von Matrizen und Vektoren')
input('Return druecken')
clear all

A=[1 2 3; 4 5 6];
[z, s]=size(A)
length(2.3:0.4:8.9)
numel(A)
isempty(A)
isempty([])

%Teilmatrizen
disp('Teilmatrizen')
input('Return druecken')
clear all

A=magic(3);
diag(A)
diag(diag(A))
triu(A)
tril(A)

%Kenngroesen von Matrizen
disp('Kenngroessen von Matrizen')
input('Return druecken')
clear all

A=magic(3)
trace(A)    %Spur
rank(A)     %Rang
det(A)      %Determinante
cond(A)     %Kondition
norm(A)     %Norm
a=A(1,:)
norm(a)
sum(a)      %Summe der Elemente
min(a)      %Minimales Element
max(a)      %Maximales Element

%Abbildungseigenschaften von Matrizen
disp('Abbildungseigenschaften von Matrizen')
input('Return druecken')
clear all

A=[1 2 3; 4 5 6; 7 8 9];
%Berechnung des Kerns
null(A)
%Berechnung einer Orthonormalbasis des Bildes
orth(A)
%Berechnung der Koeffizienten des charakteristischen Polynoms
poly(A)
%Berechnung von Eigenwerten und Eigenvektoren
[V,S]=eig(A)
%Berechnung einer Singularwertzerlegung
[U,S,V]=svd(A)

%Matrixzerlegungen und Lösen von Gleichungssystemen
disp('Matrixzerlegungen und Lösen von Gleichungssystemen')
input('Return druecken')
clear all

A=magic(2)
[L,U]=lu(A)     %LU Zerlegung
[Q,R]=qr(A)     %QR Zerlegung
B=[2 1; 1 2]
L=chol(B)       %Cholesky Zerlegung
L'*L

inv(A)          %Berechnung der Inversen

C=[magic(2);[1,2]]
pinv(A)         %Berechnung einer Pseudoinversen

%Abbildungseigenschaften von Matrizen
disp('Matrixfunktionen')
input('Return druecken')
clear all

A=magic(2)
factorial(A)
x=0:pi/4:pi
sin(x)

%Matrixfunktionen
expm(A)
exp(A)




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
input('Return druecken zum Beenden')
close all
clear all