-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.htm
240 lines (206 loc) · 11.3 KB
/
index.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
<html>
<head>
<meta charset=utf-8>
<meta name=description content="Der Matrizenrechner berechnet online, per Skript so ziemlich alles was Du brauchst, vom Kreuzprodukt über verschiedene Matrizenzerlegungen bis hin zu Normen. ">
<meta name=keywords content="Spur, Adjunkte, Inverse, QR-Zerlegung, Matrixmultiplikation, Skalarmultiplikation, Kreuzprodukt, Determinante, Skalarprodukt, Matrizenaddition, Matrix transponieren, Cholesky-Zerlegung, Spatprodukt, berechnen">
<meta name=author content="Karsten Behrendt">
<meta name=email content="[email protected]">
<meta name=Distribution content=Global>
<meta name=Rating content=General>
<meta name=Robots content="INDEX,FOLLOW">
<meta name=Revisit-after content="31 Days">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<script>var pkBaseURL=(("https:"==document.location.protocol)?"https://karottika.de/piwik/":"http://karottika.de/piwik/");document.write(unescape("%3Cscript src='"+pkBaseURL+"piwik.js' type='text/javascript'%3E%3C/script%3E"));</script>
<script>try{var piwikTracker=Piwik.getTracker(pkBaseURL+"piwik.php",8);piwikTracker.trackPageView();piwikTracker.enableLinkTracking();}catch(err){}</script>
<script src=rechnung.js></script>
<link rel="stylesheet" type="text/css" href="style.css">
<title>Matrizenrechner</title>
</head>
<body onload="erklaerungenEntfernen()">
<!--
HIER DER INHALT!
-->
<div id=kompletterInhalt>
<div id=ueberschrift>
<a href="http://matrizen-rechner.de"><h1> Der Matrizenrechner</h1></a>
</div>
<form name=form1>
<div id=eingabe>
<table id=eingabeTabelle>
<tr>
<td class=tdTop>
Matrix 1
</td>
<td class=tdTop>
Matrix 2
</td>
<td class=tdTop>
3 Vektoren
</td>
<td class=tdTop>
Skalar
</td>
</tr>
<tr>
<td>
<textarea name=m1 class="upper_matrix" cols=25 rows=7>1 1 1 1 1
1 2 3 4 8
1 8 2 4 1
1 1 4 2 5
1 2 3 4 5</textarea>
</td>
<td>
<textarea name=m2 class="upper_matrix" cols=25 rows=7>1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1</textarea>
</td>
<td>
<textarea name=vektor cols=3 rows=7>5
5
5
5
5</textarea>
<textarea name=vektor2 cols=3 rows=7>5
5
5
5
5</textarea>
<textarea name=vektor3 cols=3 rows=7>5
5
5
5
5</textarea>
</td>
<td>
<textarea name=skalar cols=3 rows=1>5</textarea>
</td>
</tr>
</table>
</div>
<div id=optionen>
<br>
Operation:
<select name="operationen" onchange="perform_operation()">
<optgroup label="Generelle Operationen: ">
<option value="adjunkte">Adjunkte</option>
<option value="aequilibrierung">Äquilibrierung</option>
<option value="loesen">Ax = b nach x lösen</option>
<option value="cholesky">Cholesky-Zerlegung</option>
<option value="determinante_laplace">Determinante nach Laplace</option>
<option value="determinante_zerlegung">Determinante mittels LR-Zerlegung</option>
<option value="dimension_kern">Dimension Kern</option>
<option value="dimensionsregel">Dimensionsregel</option>
<option value="gauss">Gauss Elimination</option>
<option value="householder">Householder Matrix</option>
<option value="inverse">Inverse</option>
<option value="kreuzprodukt">Kreuzprodukt</option>
<option value="lr_zerlegung">LR Zerlegung</option>
<option value="matrixaddition">Matrixaddition</option>
<option value="matrix_vektor">Matrix-Vektor-Multiplikation</option>
<option value="matrixmultiplikation">Matrixmultiplikation</option>
<option value="qr_house">QR Zerlegung mittels Householdermatrix</option>
<option value="qr_givens">QR Zerlegung nach Givens</option>
<option value="rang">Rang der Matrix</option>
<option value="skalar_matrix">Skalar * Matrix</option>
<option value="skalarprodukt">Skalarprodukt</option>
<option value="spatprodukt">Spatprodukt</option>
<option value="spur">Spur der Matrix</option>
<option value="transponieren">Matrix transponieren</option>
<option value="vektor1_vektor2">Vektor1_transponiert * Vektor2</option>
</optgroup>
<optgroup label="Matrixnormen: ">
<option value="spaltensummennorm">||A|| <sub>1</sub></option>
<option value="zeilensummennorm">||A|| <sub>∞</sub></option>
<option value="gesamtnorm">||A||</option>
<option value="relativer_fehler">κ<sub>rel</sub></option>
</optgroup>
<optgroup label="Vektornormen: ">Vektornormen:
<option value="betragsnorm">||A||</option>
<option value="euklidnorm">||A|| <sub>2</sub></option>
<option value="maxnorm">||A||<sub>∞</sub></option>
</optgroup>
<optgroup label="Unfertig: ">
<option value="eigenwerte">Eigenwerte berechnen (nur reelle)</option>
<option value="pivotisierung">Pivotisierung</option>
<option value="aequlibrierung_pivotisierung">Pivotisierung und Äquilibrierung</option>
</optgroup>
</select>
<input type=button value="↺" onclick="perform_operation()">
Anzahl Nachkommastellen:
<select name=nachkomma size=1>
<option>0</option>
<option>1</option>
<option>2</option>
<option selected>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
</select>
</div>
<br>
<div id=ausgabe>
<div id=erklaerungsdiv>
<p id=erklaerung>
Für diese Seite muss Javascript aktiv sein. <br><br>
Der Matrizenrechner besteht aus einem Skript zur Berechnung einiger Matrixoperationen. <br><br>
Skalarmultiplikation: Einfach nur eine Matrix mit einer Zahl multiplizieren, dabei wird jeder Eintrag mit dem Skalar multipliziert. <br><br>
Matrixmultiplikation: Die Matrixmultiplikation ist sehr viel Arbeit per Hand. Skalarprodukte, Zeilen mal Spalten. <br><br>
Matrixtransponierung: Eine Matrix wird transponiert, indem man die Elemente der Diagonalen spiegelt(quadratische Matrizen), bzw. die Indizes tauscht (alle Matrizen). <br><br>
Determinante: Die Determinanten wird hier nach Laplace berechnet, hierzu empfehle ich den Wikipedia Artikel. Was sehr wichtig ist, ist dass eine Matrix mit einer Determinante ungleich 0 invertierbar ist. <br><br>
Matrix-Vektor-Multiplikation: Eine Matrixmultiplikation bei der der Vektor als n*1 Matrix aufgefasst wird. <br><br>
Gauß Elimination: Zum lösen linearer Gleichungssysteme verwendet man Anfangs Gauss Methode Zeilen mit einander zu addieren. Leider ist diese Methode numerisch nicht sehr stabil. <br><br>
LR-Zerlegung: Mittels Gauss-Verfahren wird diese Matrix in eine linke untere und eine rechte obere Dreiecksmatrix zerlegt. <br><br>
Skalarprodukt: Das Skalarprodukt ist eine Verknüpfung zweier Vektoren, bei der die jeweiligen Elemente miteinander multipliziert werden und die Produkte addiert. <br><br>
Vektormultiplikation: Die Vektormultiplikation mit 1 Vektor ausführen. Dies spannt eine Matrix auf. <br><br>
Rang: Der Rang einer Matrix ist die Anzahl der linear unabhängigen Zeilen. (=Anzahl der linear unabhängigen Spalten) <br><br>
Matrixaddition: Bei der Matrixaddition werden einfach die Elemente der jeweiligen Matrizen miteinander addiert. <br><br>
Lineares Gleichungssystem lösen: Mittels Gauss-Verfahren wird hier A*x=b nach x aufgelöst. <br><br>
Kern einer Matrix: Die Dimension des Kerns gibt die Anzahl aller Zeilen - die Anzahl der linear unabhängigen Zeilen an. <br><br>
Das Kreuzprodukt und Spatprodukt sind in der Physik sehr interessant. Hier empfehle ich den Wikipedia-Artikel. <br><br>
Die Spur einer Matrix ist die Summer ihrer Diagonaleinträge. Die Spur ist gleichzeitig die Summe aller Eigenwerte. <br><br>
Die Cholesky Zerlegung ist eine für synmetrische Matrizen optimierte LR-Zerlegung. <br><br>
Die Householder Transformation ist eine Spiegelung, so dass gewünschte Stellen zu Null werden. Die Givens Rotation ist als Drehung ein Spezialfall der Householder Transformation. Das Ergebnis zeigt Q*A = R. R ist eine rechte obere Dreiecksmatrix, Q ist eine orthogonale Matrix. Dies kann umgestellt werden zu A = Q(transponiert)*R. Das Verfahren ist sehr stabil. <br><br>
Die Adjunkte berechnet sich so ein bisschen wie die Determinate nach dem Laplaceschen Entwicklungssatz (ein bisschen!). Mit ihr kann man die Inverse berechnen. <br><br>
Matrize*Inverse = Einheitsmatrix. Mit der Inversen kann man Ax=b auflösen. Also Inverse*A*x=Inverse*b Daraus folgt: x = Inverse*b. <br><br>
Die Betragsnorm ist eine Vektornorm. Alle Vektoreinträge werden hier addiert. <br><br>
Die Euklidnorm ist eine Vektornorm. Die Quadrate aller Einträge werden addiert und aus der Summe wird die Wurzel gezogen. <br><br>
Die Maximumsnorm ist eine Vektornorm. Es wird hier nur der größte Eintrag des Vektors genommen und das war es schon. <br><br>
Die Spaltensummennorm ist eine Matrixnorm. Hier wird die Spalte mit der größten Betragsnorm genommen. <br><br>
Die Zeilensummennorm ist eine Matrixnorm. Hier wird die Zeile mit der größten Betragsnorm genommen. <br><br>
Die Gesamtnorm ist eine Matrixnorm. Für die Norm wird lediglich das betragsmäßig größte Element genommen und mit der Anzahl aller Elemente mutipliziert. <br><br>
Der relative Fehler ist die Norm dividiert durch die Norm der Inversen. Hier wird der relative Fehler für drei Normen berechnet. <br><br>
Die Pivotisierung guckt welche Zeile an welcher Stelle das größte Element hat und das wird genutzt zur Sortierung. Dadurch kann man z.B. den Gauss Algorithmus stabiler gestalten. <br><br>
Bei dieser Äquilibrierung wird bekommt jede Zeile eine Betragsnorm von 1. Dadurch werden Verfahren durch zusätzliche Pivotisierung sehr viel stabiler. <br><br>
Äquilibrierung und Pivotisierung führt dazu, dass zB die LR-Zerlegung sehr viel stabiler wird. <br><br>
Eigenwerte sind toll. <br><br>
</p>
</div>
<br>
<textarea name=ergebnisp class="result_matrix" cols=35 rows=7>z.B. Permutationsmatrizen </textarea>
<textarea name=ergebnis class="result_matrix" cols=35 rows=7>Ergebnisfeld 1 </textarea>
<textarea name=ergebnis2 class="result_matrix" cols=35 rows=7>Ergebnisfeld 2 </textarea>
<br>
<input type=button class=move_button value="Links --> Matrix 1" onclick="hoch1()">
<input type=button class=move_button value="Links --> Matrix 2" onclick="hoch6()">
<input type=button class=move_button value="Mitte --> Matrix 1" onclick="hoch2()">
<input type=button class=move_button value="Mitte --> Matrix 2" onclick="hoch3()">
<input type=button class=move_button value="Rechts --> Matrix 1" onclick="hoch4()">
<input type=button class=move_button value="Rechts --> Matrix 2" onclick="hoch5()">
</div>
</form>
<div id=unten>
<br>
Version 0.995 ©2010-2014 by Karsten Behrendt<br/>
<span id="warning">Fehler, Kritik, Likes, und Code bitte auf <a href="https://github.com/karstenBehrendt/matrizenrechner">Github</a></span> <br/>
<a href=impressum.htm>Impressum</a>, <a href=changelog.txt>Changelog </a>
<br/><br>
</div>
</div>
<noscript><p><img src="http://karottika.de/piwik/piwik.php?idsite=8" style=border:0 alt=""/></p></noscript>
</body>
</html>