%Pascal/MATLAB-Kurs Oktober 2000, Gerhard Opfer
%Es soll eine gegebene mit ganzen, positen Zahlen besetzte Matrix M
%als ein Farbarray gezeigt werden. Die Farben  selbst werden als 
%Tripel [r g b] dargestellt mit 0<=r, g, b<=1. Die Zahlen darin bestimmem
%die Mischung aus den drei Farben rot (r), grün (g), blau (b): also z. B.
%[1 0 0]: rot
%[0 1 0]: grün
%[0 0 1]: blau
%[0 0 0]: schwarz
%[1 1 1]: weiß
%[1 1 0]: gelb
%[1 0 1]: magenta
%[0 1 1]: cyan
%[0.5 0.5 0.5]: grau
%alpha*[1 1 1]: Grautöne, 0<=alpha<=1
%alpha*[1 0 0]: Rottöne, 0<=alpha<=1, kleines alpha dunkelrot
%[1 0.62 0.62]: Kupfer
%[0.49 1 0.83]: Aquamarin

%Um das Programm durchführen zu können, werden (weiter unten) die 8 Dateien 
%newton11.erg, newton11fein.erg, 
%newton21.erg, newton21fein.erg,
%newton41.erg, newton41fein.erg,
%newton201.erg, newton201fein.erg gebraucht.

%Wir beginnen mit einem einfachen Beispiel:
M=[1 2 3; 4 5 6];
%Um den Zahlen 1 bis 6 eine Farbe zuzuordnen, definieren wir eine Farbtabelle
%bestehnd aus 6 Zeilen und 3 Spalten entsprechend der obigen Farbdefinition.
%Also

Map=[1 0 0   %rot
     0 1 0   %grün
     0 0 1   %blau
     0 0 0   %schwarz
     1 1 1   %weiß
     1 1 0]; %gelb
zeit=3; %Länge der Pause in Sekunden
%Der Rest ist immer derselbe, nämlich

image(M);colormap(Map); %Das ist die entscheidende Befehlssequenz.
disp('Vom Benutzer definierte Farben, Enter!');pause(zeit)

%image(M) stellt die Matrix dar unter Verwendung der in Map 
%angegebenen Informationen. Benutzt wird dazu die vorgefertigte
%Prozedur 'colormap', die den Zusammenhang herstellt.

%Es gibt auch vordefinierte Farbzuordnungen: Map=colorcube(n) definiert
%für die ganzen Zahlen von 1 bis n gewisse Farben.
image(M);colormap(colorcube(6)); %Ein Muster aus Grautönen. 
disp('Vorgefertigte Farbpalette, Enter!');pause(zeit)

%Fehlt diese Information, erhält man
image(M);
disp('Keine explizite Farbdefinition, Enter!');pause(zeit)
%Es wird offenbar die Farbpalette aus colorcube benutzt.


%Als erste Anwendung machen wir ein Schachbrett.
Schachbrett=zeros(8,8);
Schachbrett(1:2:7,1:2:7)=ones(4,4);
Schachbrett(2:2:8,2:2:8)=ones(4,4);
Schachbrett=Schachbrett+1;
map=[0 0 0;1 1 1]; %nur zwei Farben: schwarz und weiß
image(Schachbrett);colormap(map); axis square;
disp('Schachbrett, Enter!');pause(zeit)

%eine kleine Spielerei mit Grautönen:
for alpha=0:0.1:1
  newmap=alpha*map;
  image(Schachbrett);colormap(newmap);axis square
  alpha,disp('Schachbrett, Enter!');pause(zeit)
end; %for
disp('Jetzt rot');
map=[1 0 0;1 1 1]; %rot und weiß
%eine kleine Spielerei mit Rot- und Grautönen:
for alpha=0:0.1:1
  newmap=alpha*map;
  image(Schachbrett);colormap(newmap);axis square
  alpha,disp('Schachbrett in rot, Enter!');pause(zeit)
end; %for

%Wir laden jetzt die aus dem Newton-Programm erzeugten Matrizen:

figure(1)
load newton11.erg -ascii
newton11=newton11+1; %alle Einträge von 1 bis 5
map=[1 1 1   %weiß
     1 0 0   %rot
     0 1 0   %grün
     0 0 1   %blau
     0 0 0]; %schwarz
image(newton11);colormap(map);axis square;
xlabel('Maximal 12 Iterationen bei Newton, Matrix 11\times11');
ylabel('Weiß: Keine Konvergenz');
title('Einzugsbereich von Newton bei g(x)=x^4+1');
disp('Pause: Enter!'); pause

figure(2)
load newton11fein.erg -ascii
newton11fein=newton11fein+1; %alle Einträge von 1 bis 5
image(newton11fein);colormap(map);axis square;
xlabel('Maximal 100 Iterationen bei Newton, Matrix 11\times11');
ylabel('Weiß: Keine Konvergenz');
title('Einzugsbereich von Newton bei g(x)=x^4+1');
disp('Pause: Enter!'); pause

figure(1)
load newton21.erg -ascii
newton21=newton21+1; %alle Einträge von 1 bis 5
image(newton21);colormap(map);axis square;
xlabel('Maximal 12 Iterationen bei Newton, Matrix 21\times21');
ylabel('Weiß: Keine Konvergenz');
title('Einzugsbereich von Newton bei g(x)=x^4+1');
disp('Pause: Enter!'); pause

figure(2)
load newton21fein.erg -ascii
newton21fein=newton21fein+1; %alle Einträge von 1 bis 5
image(newton21fein);colormap(map);axis square;
xlabel('Maximal 100 Iterationen bei Newton, Matrix 21\times21');
ylabel('Weiß: Keine Konvergenz');
title('Einzugsbereich von Newton bei g(x)=x^4+1');
disp('Pause: Enter!'); pause

figure(1)
load newton41.erg -ascii
newton41=newton41+1; %alle Einträge von 1 bis 5
image(newton41);colormap(map);axis square;
xlabel('Maximal 12 Iterationen bei Newton, Matrix 41\times41');
ylabel('Weiß: Keine Konvergenz');
title('Einzugsbereich von Newton bei g(x)=x^4+1');
disp('Pause: Enter!'); pause

figure(2)
load newton41fein.erg -ascii
newton41fein=newton41fein+1; %alle Einträge von 1 bis 5
image(newton41fein);colormap(map);axis square;
xlabel('Maximal 100 Iterationen bei Newton, Matrix 41\times41');
ylabel('Weiß: Keine Konvergenz');
title('Einzugsbereich von Newton bei g(x)=x^4+1');
disp('Pause: Enter!'); pause

figure(1)
load newton201.erg -ascii
newton201=newton201+1; %alle Einträge von 1 bis 5
image(newton201);colormap(map);axis square;
xlabel('Maximal 12 Iterationen bei Newton, Matrix 201\times201');
ylabel('Weiß: Keine Konvergenz');
title('Einzugsbereich von Newton bei g(x)=x^4+1');
disp('Pause: Enter!'); pause

figure(2)
load newton201fein.erg -ascii
newton201fein=newton201fein+1; %alle Einträge von 1 bis 5
image(newton201fein);colormap(map);axis square;
xlabel('Maximal 100 Iterationen bei Newton, Matrix 201\times201');
ylabel('Weiß: Keine Konvergenz');
title('Einzugsbereich von Newton bei g(x)=x^4+1');
disp('Pause: Enter!'); pause






