<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://ls14-eini.cs.tu-dortmund.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Elias</id>
		<title>EINI - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://ls14-eini.cs.tu-dortmund.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Elias"/>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php/Spezial:Beitr%C3%A4ge/Elias"/>
		<updated>2026-05-02T03:59:54Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Eliminationsverfahren&amp;diff=2307</id>
		<title>Eliminationsverfahren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Eliminationsverfahren&amp;diff=2307"/>
				<updated>2020-03-09T21:36:11Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Pivotsuche==&lt;br /&gt;
&lt;br /&gt;
Da wir nur ein allgemeines reguläres quadratisches lineares Gleichungssystem der Form Ax=b betrachten, können auf der Hauptdiagonalen von A Nulleinträge vorkommen. Aus vorherigem Abschnitt wissen wir, dass wir das LGS so umformen wollen, dass die Koeffizientenmatrix eine obere Dreiecksmatrix ist. Diese hat wegen der Regularität nur Einträge ungleich 0 auf der Diagonalen.&lt;br /&gt;
&lt;br /&gt;
Wir wollen deshalb eine sogenannte Spaltenpivotierung durchführen. Hierbei wird zunächst ein Pivotelement in der Spalte gesucht, das betragsmäßig möglichst groß ist. Hierfür werden wird das Argmax der Beträge aller Einträge in der Spalte mit Zeilenindizes, die größer oder gleich dem Spaltenindize sind, bestimmt. Wegen Regularität ist dieser Eintrag stets ungleich 0. Wir betrachten ein Beispiel für eine Implementierung durch Funktionen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
	public static int Pivotindize (double[][] A, int Spalte) {&lt;br /&gt;
		//findet Indize, der &amp;gt;= Spaltenindizee ist, mit groesstem Eintrag in gegebener Spalte&lt;br /&gt;
		int n =A.length;&lt;br /&gt;
		int argmax=Spalte;&lt;br /&gt;
		double max=Math.abs(A[Spalte][Spalte]);&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;n;i++) {&lt;br /&gt;
			if(Math.abs(A[i][Spalte])&amp;gt;max) {&lt;br /&gt;
				max=Math.abs(A[i][Spalte]);&lt;br /&gt;
				argmax=i;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return argmax;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pivotierung und Elimination==&lt;br /&gt;
&lt;br /&gt;
Anschließend vertauschen wir die Zeile mit dem Pivotelemt, sodass dieses auf der Hauptdiagonalen liegt. Hierbei ist zu beachten, dass zum System neben der Matrix die rechte Seite ebenfalls umgeformt werden muss.&lt;br /&gt;
&lt;br /&gt;
Nun können wir die sogenannte Elimination durchführen, hierbei wird das c-fache der Zeile mit dem Pivotelement zu den Zeilen dadrunter addiert mit einem c, das so gewählt ist, dass bis auf Rechengenauigkeit unter dem Pivotelement sämtliche Einträge zu Nulleinträgen werden. Durch diese Nulleinträge können wir die gewünschte Struktur einer oberen Dreiecksmatrix erreichen. Wir betrachten ein Beispiel für eine Implementierung durch Funktionen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
	public static void ZeilenTauschen (double[][] A, double[] b, int zeile1, int zeile2){&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		//temporäre Hilfsvariablen&lt;br /&gt;
		double [] Azeile1vorher =new double[n];&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			Azeile1vorher[j]=A[zeile1][j];&lt;br /&gt;
		}&lt;br /&gt;
		double bzeile1vorher = b[zeile1];&lt;br /&gt;
		//tauschen&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			A[zeile1][j]=A[zeile2][j];&lt;br /&gt;
			A[zeile2][j]=Azeile1vorher[j];&lt;br /&gt;
		}&lt;br /&gt;
		b[zeile1]=b[zeile2];&lt;br /&gt;
		b[zeile2]=bzeile1vorher;&lt;br /&gt;
		//keine Rückgabe, da Arrays nicht primitiv&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void PivotierungElimination (double[][] A, double[] b, int Spalte) {&lt;br /&gt;
		//Pivotelement soll vor Elimination auf der Diagonalen liegen&lt;br /&gt;
		int pivot=Pivotindize (A, Spalte);&lt;br /&gt;
		if(pivot&amp;gt;Spalte) {&lt;br /&gt;
			ZeilenTauschen (A, b, Spalte, pivot);&lt;br /&gt;
		}&lt;br /&gt;
		//Elimination: zu jeder Zeile mit Zeilenindize&amp;gt;Spaltenidize wird das c-fache der durch &amp;quot;Spalte&amp;quot; vorgegebenen Zeile addiert&lt;br /&gt;
		//c wird hierbei stets so gewaehlt, dass unter dem Pivotelement nur Nullen sind&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;b.length;i++) {&lt;br /&gt;
			ZeileAddieren(A,b, -A[i][Spalte]/A[Spalte][Spalte] ,Spalte,i);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void ZeileAddieren(double[][] A, double[] b, double c, int Pivotindize, int a) {&lt;br /&gt;
		// addiert das c-fache der Zeile mit Pivotelement zu Zeile a&lt;br /&gt;
		//(beachte, dass bei der Elimination das Pivotelement auf der Diagonalen liegt)&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length;j++) {&lt;br /&gt;
			A[a][j]=A[a][j]+c*A[Pivotindize][j];&lt;br /&gt;
		}&lt;br /&gt;
		b[a]=b[a]+c*b[Pivotindize];&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rückwärtseinsetzen==&lt;br /&gt;
&lt;br /&gt;
Wenn wir nun für jede Spalte außer die letzte obige Pivotierung und Elimination anwenden, erhalten wir ein neues LGS mit einer oberen Dreiecksmatrix als Systemmatrix wie gewünscht. Nun können wir leicht eine Lösung durch Rückwärtseinsetzen bestimmen, wie in der Motivation schon erklärt wurde.&lt;br /&gt;
Wir betrachten ein Beispiel für eine Implementierung durch Funktionen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
	public static double[] LGSloesen (double[][] A ,double[] b) {&lt;br /&gt;
		//loest regulaeres LGS Ax=b&lt;br /&gt;
		//umformen, sodass eine obere Dreiecksmatrix die Koeffizientenmatrix ist.&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length-1;j++) {&lt;br /&gt;
			PivotierungElimination (A,b,j);&lt;br /&gt;
		}&lt;br /&gt;
		//nutze Algorithmus für LGS mit oberer Dreiecksmatrix als Koeffizientenmatrix&lt;br /&gt;
		double[] x=LGSobereDreiecksmatrix(A,b);&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static double[] LGSobereDreiecksmatrix(double[][] A, double[] b) {&lt;br /&gt;
		//setze Werte rueckwaerts ein&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		double[] x=new double[n];&lt;br /&gt;
		x[n-1]=b[n-1]/A[n-1][n-1];&lt;br /&gt;
		for(int j= n-2;j&amp;gt;=0;j--) {&lt;br /&gt;
			double sum=0;&lt;br /&gt;
			for(int k=j+1;k&amp;lt;n;k++) {&lt;br /&gt;
				sum=sum+A[j][k]*x[k];&lt;br /&gt;
			}&lt;br /&gt;
			x[j]=(b[j]-sum)/A[j][j];&lt;br /&gt;
		}&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insgesamt können wir mit den obigen Funktionen also reguläre quadratische LGS beliebiger Größe lösen. Eine vollständige Implementierung mit Test an einem Beispiel folgt im letzten Abschnitt.&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Eliminationsverfahren&amp;diff=2306</id>
		<title>Eliminationsverfahren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Eliminationsverfahren&amp;diff=2306"/>
				<updated>2020-03-09T21:22:01Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Pivotsuche==&lt;br /&gt;
&lt;br /&gt;
Da wir nur ein allgemeines reguläres quadratisches lineares Gleichungssystem der Form Ax=b betrachten, können auf der Hauptdiagonalen von A Nulleinträge vorkommen. Aus vorherigem Abschnitt wissen wir, dass wir das LGS so umformen wollen, dass die Koeffizientenmatrix eine obere Dreiecksmatrix ist. Diese hat wegen der Regularität nur Einträge ungleich 0 auf der Diagonalen.&lt;br /&gt;
&lt;br /&gt;
Wir wollen deshalb eine sogenannte Spaltenpivotierung durchführen. Hierbei wird zunächst ein Pivotelement in der Spalte gesucht, das betragsmäßig möglichst groß ist. Hierfür werden wird das Argmax der Beträge aller Einträge in der Spalte mit Zeilenindizes, die größer oder gleich dem Spaltenindize sind, bestimmt. Wegen Regularität ist dieser Eintrag stets ungleich 0. Eine Implementierung könnte zum Beispiel folgend aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
	public static int Pivotindize (double[][] A, int Spalte) {&lt;br /&gt;
		//findet Indize, der &amp;gt;= Spaltenindizee ist, mit groesstem Eintrag in gegebener Spalte&lt;br /&gt;
		int n =A.length;&lt;br /&gt;
		int argmax=Spalte;&lt;br /&gt;
		double max=Math.abs(A[Spalte][Spalte]);&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;n;i++) {&lt;br /&gt;
			if(Math.abs(A[i][Spalte])&amp;gt;max) {&lt;br /&gt;
				max=Math.abs(A[i][Spalte]);&lt;br /&gt;
				argmax=i;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return argmax;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pivotierung und Elimination==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
	public static void ZeilenTauschen (double[][] A, double[] b, int zeile1, int zeile2){&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		//temporäre Hilfsvariablen&lt;br /&gt;
		double [] Azeile1vorher =new double[n];&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			Azeile1vorher[j]=A[zeile1][j];&lt;br /&gt;
		}&lt;br /&gt;
		double bzeile1vorher = b[zeile1];&lt;br /&gt;
		//tauschen&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			A[zeile1][j]=A[zeile2][j];&lt;br /&gt;
			A[zeile2][j]=Azeile1vorher[j];&lt;br /&gt;
		}&lt;br /&gt;
		b[zeile1]=b[zeile2];&lt;br /&gt;
		b[zeile2]=bzeile1vorher;&lt;br /&gt;
		//keine Rückgabe, da Arrays nicht primitiv&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void PivotierungElimination (double[][] A, double[] b, int Spalte) {&lt;br /&gt;
		//Pivotelement soll vor Elimination auf der Diagonalen liegen&lt;br /&gt;
		int pivot=Pivotindize (A, Spalte);&lt;br /&gt;
		if(pivot&amp;gt;Spalte) {&lt;br /&gt;
			ZeilenTauschen (A, b, Spalte, pivot);&lt;br /&gt;
		}&lt;br /&gt;
		//Elimination: zu jeder Zeile mit Zeilenindize&amp;gt;Spaltenidize wird das c-fache der durch &amp;quot;Spalte&amp;quot; vorgegebenen Zeile addiert&lt;br /&gt;
		//c wird hierbei stets so gewaehlt, dass unter dem Pivotelement nur Nullen sind&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;b.length;i++) {&lt;br /&gt;
			ZeileAddieren(A,b, -A[i][Spalte]/A[Spalte][Spalte] ,Spalte,i);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void ZeileAddieren(double[][] A, double[] b, double c, int Pivotindize, int a) {&lt;br /&gt;
		// addiert das c-fache der Zeile mit Pivotelement zu Zeile a&lt;br /&gt;
		//(beachte, dass bei der Elimination das Pivotelement auf der Diagonalen liegt)&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length;j++) {&lt;br /&gt;
			A[a][j]=A[a][j]+c*A[Pivotindize][j];&lt;br /&gt;
		}&lt;br /&gt;
		b[a]=b[a]+c*b[Pivotindize];&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rückwärtseinsetzen==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
	public static double[] LGSloesen (double[][] A ,double[] b) {&lt;br /&gt;
		//loest regulaeres LGS Ax=b&lt;br /&gt;
		//umformen, sodass eine obere Dreiecksmatrix die Koeffizientenmatrix ist.&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length-1;j++) {&lt;br /&gt;
			PivotierungElimination (A,b,j);&lt;br /&gt;
		}&lt;br /&gt;
		//nutze Algorithmus für LGS mit oberer Dreiecksmatrix als Koeffizientenmatrix&lt;br /&gt;
		double[] x=LGSobereDreiecksmatrix(A,b);&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static double[] LGSobereDreiecksmatrix(double[][] A, double[] b) {&lt;br /&gt;
		//setze Werte rueckwaerts ein&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		double[] x=new double[n];&lt;br /&gt;
		x[n-1]=b[n-1]/A[n-1][n-1];&lt;br /&gt;
		for(int j= n-2;j&amp;gt;=0;j--) {&lt;br /&gt;
			double sum=0;&lt;br /&gt;
			for(int k=j+1;k&amp;lt;n;k++) {&lt;br /&gt;
				sum=sum+A[j][k]*x[k];&lt;br /&gt;
			}&lt;br /&gt;
			x[j]=(b[j]-sum)/A[j][j];&lt;br /&gt;
		}&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Eliminationsverfahren&amp;diff=2305</id>
		<title>Eliminationsverfahren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Eliminationsverfahren&amp;diff=2305"/>
				<updated>2020-03-09T21:19:36Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Pivotsuche==&lt;br /&gt;
&lt;br /&gt;
Da wir nur ein allgemeines reguläres quadratisches lineares Gleichungssystem der Form Ax=b betrachten, können auf der Hauptdiagonalen von A Nulleinträge vorkommen. Aus vorherigem Abschnitt wissen wir, dass wir das LGS so umformen wollen, dass die Koeffizientenmatrix eine obere Dreiecksmatrix ist. Diese hat wegen der Regularität nur Einträge ungleich 0 auf der Diagonalen.&lt;br /&gt;
&lt;br /&gt;
Wir wollen deshalb eine sogenannte Spaltenpivotierung durchführen. Hierbei wird zunächst ein Pivotelement in der Spalte gesucht, das betragsmäßig möglichst groß ist. Hierfür werden wird das Argmax der Beträge aller Einträge in der Spalte mit Zeilenindizes, die größer oder gleich dem Spaltenindize sind, bestimmt. Wegen Regularität ist dieser Eintrag stets ungleich 0. Eine Implementierung könnte zum Beispiel folgend aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=java&amp;gt;&lt;br /&gt;
package Gauß;&lt;br /&gt;
&lt;br /&gt;
public class LGS {&lt;br /&gt;
	public static int Pivotindize (double[][] A, int Spalte) {&lt;br /&gt;
		//findet Indize, der &amp;gt;= Spaltenindizee ist, mit groesstem Eintrag in gegebener Spalte&lt;br /&gt;
		int n =A.length;&lt;br /&gt;
		int argmax=Spalte;&lt;br /&gt;
		double max=Math.abs(A[Spalte][Spalte]);&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;n;i++) {&lt;br /&gt;
			if(Math.abs(A[i][Spalte])&amp;gt;max) {&lt;br /&gt;
				max=Math.abs(A[i][Spalte]);&lt;br /&gt;
				argmax=i;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return argmax;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pivotierung und Elimination==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=Java&amp;gt;&lt;br /&gt;
package Gauß;&lt;br /&gt;
&lt;br /&gt;
public class LGS {&lt;br /&gt;
	public static void ZeilenTauschen (double[][] A, double[] b, int zeile1, int zeile2){&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		//temporäre Hilfsvariablen&lt;br /&gt;
		double [] Azeile1vorher =new double[n];&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			Azeile1vorher[j]=A[zeile1][j];&lt;br /&gt;
		}&lt;br /&gt;
		double bzeile1vorher = b[zeile1];&lt;br /&gt;
		//tauschen&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			A[zeile1][j]=A[zeile2][j];&lt;br /&gt;
			A[zeile2][j]=Azeile1vorher[j];&lt;br /&gt;
		}&lt;br /&gt;
		b[zeile1]=b[zeile2];&lt;br /&gt;
		b[zeile2]=bzeile1vorher;&lt;br /&gt;
		//keine Rückgabe, da Arrays nicht primitiv&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void PivotierungElimination (double[][] A, double[] b, int Spalte) {&lt;br /&gt;
		//Pivotelement soll vor Elimination auf der Diagonalen liegen&lt;br /&gt;
		int pivot=Pivotindize (A, Spalte);&lt;br /&gt;
		if(pivot&amp;gt;Spalte) {&lt;br /&gt;
			ZeilenTauschen (A, b, Spalte, pivot);&lt;br /&gt;
		}&lt;br /&gt;
		//Elimination: zu jeder Zeile mit Zeilenindize&amp;gt;Spaltenidize wird das c-fache der durch &amp;quot;Spalte&amp;quot; vorgegebenen Zeile addiert&lt;br /&gt;
		//c wird hierbei stets so gewaehlt, dass unter dem Pivotelement nur Nullen sind&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;b.length;i++) {&lt;br /&gt;
			ZeileAddieren(A,b, -A[i][Spalte]/A[Spalte][Spalte] ,Spalte,i);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void ZeileAddieren(double[][] A, double[] b, double c, int Pivotindize, int a) {&lt;br /&gt;
		// addiert das c-fache der Zeile mit Pivotelement zu Zeile a&lt;br /&gt;
		//(beachte, dass bei der Elimination das Pivotelement auf der Diagonalen liegt)&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length;j++) {&lt;br /&gt;
			A[a][j]=A[a][j]+c*A[Pivotindize][j];&lt;br /&gt;
		}&lt;br /&gt;
		b[a]=b[a]+c*b[Pivotindize];&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rückwärtseinsetzen==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=Java&amp;gt;&lt;br /&gt;
package Gauß;&lt;br /&gt;
&lt;br /&gt;
public class LGS {&lt;br /&gt;
	public static double[] LGSloesen (double[][] A ,double[] b) {&lt;br /&gt;
		//loest regulaeres LGS Ax=b&lt;br /&gt;
		//umformen, sodass eine obere Dreiecksmatrix die Koeffizientenmatrix ist.&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length-1;j++) {&lt;br /&gt;
			PivotierungElimination (A,b,j);&lt;br /&gt;
		}&lt;br /&gt;
		//nutze Algorithmus für LGS mit oberer Dreiecksmatrix als Koeffizientenmatrix&lt;br /&gt;
		double[] x=LGSobereDreiecksmatrix(A,b);&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static double[] LGSobereDreiecksmatrix(double[][] A, double[] b) {&lt;br /&gt;
		//setze Werte rueckwaerts ein&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		double[] x=new double[n];&lt;br /&gt;
		x[n-1]=b[n-1]/A[n-1][n-1];&lt;br /&gt;
		for(int j= n-2;j&amp;gt;=0;j--) {&lt;br /&gt;
			double sum=0;&lt;br /&gt;
			for(int k=j+1;k&amp;lt;n;k++) {&lt;br /&gt;
				sum=sum+A[j][k]*x[k];&lt;br /&gt;
			}&lt;br /&gt;
			x[j]=(b[j]-sum)/A[j][j];&lt;br /&gt;
		}&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Eliminationsverfahren&amp;diff=2304</id>
		<title>Eliminationsverfahren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Eliminationsverfahren&amp;diff=2304"/>
				<updated>2020-03-09T21:14:45Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Pivotsuche==&lt;br /&gt;
&lt;br /&gt;
Da wir nur ein allgemeines reguläres quadratisches lineares Gleichungssystem der Form Ax=b betrachten, können auf der Hauptdiagonalen von A Nulleinträge vorkommen. Aus vorherigem Abschnitt wissen wir, dass wir das LGS so umformen wollen, dass die Koeffizientenmatrix eine obere Dreiecksmatrix ist. Diese hat wegen der Regularität nur Einträge ungleich 0 auf der Diagonalen.&lt;br /&gt;
&lt;br /&gt;
Wir wollen deshalb eine sogenannte Spaltenpivotierung durchführen. Hierbei wird zunächst ein Pivotelement in der Spalte gesucht, das betragsmäßig möglichst groß ist. Hierfür werden wird das Argmax der Beträge aller Einträge in der Spalte mit Zeilenindizes, die größer oder gleich dem Spaltenindize sind, bestimmt. Wegen Regularität ist dieser Eintrag stets ungleich 0. Eine Implementierung könnte zum Beispiel folgend aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=java&amp;gt;&lt;br /&gt;
package Gauß;&lt;br /&gt;
&lt;br /&gt;
public class LGS {&lt;br /&gt;
	public static int Pivotindize (double[][] A, int Spalte) {&lt;br /&gt;
		//findet Indize, der &amp;gt;= Spaltenindizee ist, mit groesstem Eintrag in gegebener Spalte&lt;br /&gt;
		int n =A.length;&lt;br /&gt;
		int argmax=Spalte;&lt;br /&gt;
		double max=Math.abs(A[Spalte][Spalte]);&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;n;i++) {&lt;br /&gt;
			if(Math.abs(A[i][Spalte])&amp;gt;max) {&lt;br /&gt;
				max=Math.abs(A[i][Spalte]);&lt;br /&gt;
				argmax=i;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return argmax;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Pivotierung und Elimination==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=Java&amp;gt;&lt;br /&gt;
	public static void ZeilenTauschen (double[][] A, double[] b, int zeile1, int zeile2){&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		//temporäre Hilfsvariablen&lt;br /&gt;
		double [] Azeile1vorher =new double[n];&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			Azeile1vorher[j]=A[zeile1][j];&lt;br /&gt;
		}&lt;br /&gt;
		double bzeile1vorher = b[zeile1];&lt;br /&gt;
		//tauschen&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			A[zeile1][j]=A[zeile2][j];&lt;br /&gt;
			A[zeile2][j]=Azeile1vorher[j];&lt;br /&gt;
		}&lt;br /&gt;
		b[zeile1]=b[zeile2];&lt;br /&gt;
		b[zeile2]=bzeile1vorher;&lt;br /&gt;
		//keine Rückgabe, da Arrays nicht primitiv&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void PivotierungElimination (double[][] A, double[] b, int Spalte) {&lt;br /&gt;
		//Pivotelement soll vor Elimination auf der Diagonalen liegen&lt;br /&gt;
		int pivot=Pivotindize (A, Spalte);&lt;br /&gt;
		if(pivot&amp;gt;Spalte) {&lt;br /&gt;
			ZeilenTauschen (A, b, Spalte, pivot);&lt;br /&gt;
		}&lt;br /&gt;
		//Elimination: zu jeder Zeile mit Zeilenindize&amp;gt;Spaltenidize wird das c-fache der durch &amp;quot;Spalte&amp;quot; vorgegebenen Zeile addiert&lt;br /&gt;
		//c wird hierbei stets so gewaehlt, dass unter dem Pivotelement nur Nullen sind&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;b.length;i++) {&lt;br /&gt;
			ZeileAddieren(A,b, -A[i][Spalte]/A[Spalte][Spalte] ,Spalte,i);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void ZeileAddieren(double[][] A, double[] b, double c, int Pivotindize, int a) {&lt;br /&gt;
		// addiert das c-fache der Zeile mit Pivotelement zu Zeile a&lt;br /&gt;
		//(beachte, dass bei der Elimination das Pivotelement auf der Diagonalen liegt)&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length;j++) {&lt;br /&gt;
			A[a][j]=A[a][j]+c*A[Pivotindize][j];&lt;br /&gt;
		}&lt;br /&gt;
		b[a]=b[a]+c*b[Pivotindize];&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Rückwärtseinsetzen==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=Java&amp;gt;&lt;br /&gt;
	public static double[] LGSloesen (double[][] A ,double[] b) {&lt;br /&gt;
		//loest regulaeres LGS Ax=b&lt;br /&gt;
		//umformen, sodass eine obere Dreiecksmatrix die Koeffizientenmatrix ist.&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length-1;j++) {&lt;br /&gt;
			PivotierungElimination (A,b,j);&lt;br /&gt;
		}&lt;br /&gt;
		//nutze Algorithmus für LGS mit oberer Dreiecksmatrix als Koeffizientenmatrix&lt;br /&gt;
		double[] x=LGSobereDreiecksmatrix(A,b);&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static double[] LGSobereDreiecksmatrix(double[][] A, double[] b) {&lt;br /&gt;
		//setze Werte rueckwaerts ein&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		double[] x=new double[n];&lt;br /&gt;
		x[n-1]=b[n-1]/A[n-1][n-1];&lt;br /&gt;
		for(int j= n-2;j&amp;gt;=0;j--) {&lt;br /&gt;
			double sum=0;&lt;br /&gt;
			for(int k=j+1;k&amp;lt;n;k++) {&lt;br /&gt;
				sum=sum+A[j][k]*x[k];&lt;br /&gt;
			}&lt;br /&gt;
			x[j]=(b[j]-sum)/A[j][j];&lt;br /&gt;
		}&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Implementierung_des_Eliminationsverfahrens&amp;diff=2303</id>
		<title>Implementierung des Eliminationsverfahrens</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Implementierung_des_Eliminationsverfahrens&amp;diff=2303"/>
				<updated>2020-03-09T21:08:01Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir testen den zuvor beschriebenen Algorithmus mit Hilfe folgender Implementierung, welche das Eliminationsverfahren mit Spaltenpivotierung an einem Beispiel anwendet. Hier können natürlich auch andere reguläre LGS, eventuell anderer Größe, gelöst werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package Gauß;&lt;br /&gt;
&lt;br /&gt;
public class LGS {&lt;br /&gt;
&lt;br /&gt;
	public static void main (String[] args) {&lt;br /&gt;
		double[][] A= {{3,1,6},{2,1,3},{1,1,1}};&lt;br /&gt;
		double[] b= {2,7,4};&lt;br /&gt;
		print2D(A);&lt;br /&gt;
		System.out.println();&lt;br /&gt;
		printVektor(b);&lt;br /&gt;
		System.out.println();&lt;br /&gt;
		printVektor(LGSloesen (A ,b));&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void printVektor(double[] array) {&lt;br /&gt;
		// gibt Array in Vektorschreibweise aus&lt;br /&gt;
		System.out.print(&amp;quot;(&amp;quot;);&lt;br /&gt;
		for(int i=0; i&amp;lt;array.length-1; i++) {&lt;br /&gt;
			System.out.print(array[i] + &amp;quot;,&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
		System.out.print(array[array.length-1]);&lt;br /&gt;
		System.out.println(&amp;quot;)^T&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void print2D(double[][] A) {&lt;br /&gt;
		// gibt quadr. 2D Array aus&lt;br /&gt;
		int n=A.length;&lt;br /&gt;
		for(int i=0;i&amp;lt;n;i++) {&lt;br /&gt;
			for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
				System.out.print(A[i][j] + &amp;quot; &amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			System.out.println();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static double[] LGSloesen (double[][] A ,double[] b) {&lt;br /&gt;
		//loest regulaeres LGS Ax=b&lt;br /&gt;
		//umformen, sodass eine obere Dreiecksmatrix die Koeffizientenmatrix ist.&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length-1;j++) {&lt;br /&gt;
			PivotierungElimination (A,b,j);&lt;br /&gt;
		}&lt;br /&gt;
		//nutze Algorithmus für LGS mit oberer Dreiecksmatrix als Koeffizientenmatrix&lt;br /&gt;
		double[] x=LGSobereDreiecksmatrix(A,b);&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static double[] LGSobereDreiecksmatrix(double[][] A, double[] b) {&lt;br /&gt;
		//setze Werte rueckwaerts ein&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		double[] x=new double[n];&lt;br /&gt;
		x[n-1]=b[n-1]/A[n-1][n-1];&lt;br /&gt;
		for(int j= n-2;j&amp;gt;=0;j--) {&lt;br /&gt;
			double sum=0;&lt;br /&gt;
			for(int k=j+1;k&amp;lt;n;k++) {&lt;br /&gt;
				sum=sum+A[j][k]*x[k];&lt;br /&gt;
			}&lt;br /&gt;
			x[j]=(b[j]-sum)/A[j][j];&lt;br /&gt;
		}&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static int Pivotindize (double[][] A, int Spalte) {&lt;br /&gt;
		//findet Indize, der &amp;gt;= Spaltenindizee ist, mit groesstem Eintrag in gegebener Spalte&lt;br /&gt;
		int n =A.length;&lt;br /&gt;
		int argmax=Spalte;&lt;br /&gt;
		double max=Math.abs(A[Spalte][Spalte]);&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;n;i++) {&lt;br /&gt;
			if(Math.abs(A[i][Spalte])&amp;gt;max) {&lt;br /&gt;
				max=Math.abs(A[i][Spalte]);&lt;br /&gt;
				argmax=i;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return argmax;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void ZeilenTauschen (double[][] A, double[] b, int zeile1, int zeile2){&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		//temporäre Hilfsvariablen&lt;br /&gt;
		double [] Azeile1vorher =new double[n];&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			Azeile1vorher[j]=A[zeile1][j];&lt;br /&gt;
		}&lt;br /&gt;
		double bzeile1vorher = b[zeile1];&lt;br /&gt;
		//tauschen&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			A[zeile1][j]=A[zeile2][j];&lt;br /&gt;
			A[zeile2][j]=Azeile1vorher[j];&lt;br /&gt;
		}&lt;br /&gt;
		b[zeile1]=b[zeile2];&lt;br /&gt;
		b[zeile2]=bzeile1vorher;&lt;br /&gt;
		//keine Rückgabe, da Arrays nicht primitiv&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void PivotierungElimination (double[][] A, double[] b, int Spalte) {&lt;br /&gt;
		//Pivotelement soll vor Elimination auf der Diagonalen liegen&lt;br /&gt;
		int pivot=Pivotindize (A, Spalte);&lt;br /&gt;
		if(pivot&amp;gt;Spalte) {&lt;br /&gt;
			ZeilenTauschen (A, b, Spalte, pivot);&lt;br /&gt;
		}&lt;br /&gt;
		//Elimination: zu jeder Zeile mit Zeilenindize&amp;gt;Spaltenidize wird das c-fache der durch &amp;quot;Spalte&amp;quot; vorgegebenen Zeile addiert&lt;br /&gt;
		//c wird hierbei stets so gewaehlt, dass unter dem Pivotelement nur Nullen sind&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;b.length;i++) {&lt;br /&gt;
			ZeileAddieren(A,b, -A[i][Spalte]/A[Spalte][Spalte] ,Spalte,i);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void ZeileAddieren(double[][] A, double[] b, double c, int Pivotindize, int a) {&lt;br /&gt;
		// addiert das c-fache der Zeile mit Pivotelement zu Zeile a&lt;br /&gt;
		//(beachte, dass bei der Elimination das Pivotelement auf der Diagonalen liegt)&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length;j++) {&lt;br /&gt;
			A[a][j]=A[a][j]+c*A[Pivotindize][j];&lt;br /&gt;
		}&lt;br /&gt;
		b[a]=b[a]+c*b[Pivotindize];&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insgesamt liefert unser Programm die Ausgabe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
3.0 1.0 6.0 &lt;br /&gt;
2.0 1.0 3.0 &lt;br /&gt;
1.0 1.0 1.0 &lt;br /&gt;
&lt;br /&gt;
(2.0,7.0,4.0)^T&lt;br /&gt;
&lt;br /&gt;
(19.0,-6.999999999999998,-8.0)^T&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei handelt es sich zunächst um die Koeffizientenmatrix A, dann die rechte Seite b und zuletzt die errechnete Lösung x des LGS Ax=b. Auffällig ist, dass durch Rundungsfehler der Maschine der zweite Eintrag der errechneten Lösung von dem exakten Eintrag -7 abweicht.&lt;br /&gt;
&lt;br /&gt;
Um entsprechende Rundungsfehler zu reduzieren, kann das System bereits vor dem Lösen verändert werden, sogenanntes Vorkonditionieren. Auch können Nachiterationen den Fehler reduzieren. Da Rundungsfehler jedoch aufgrund der Rechengenauigkeit im Allgemeinen jedoch nicht vollkommen verhindert werden können, spielen auch Algorithmen eine Rolle, die bei steigender Anzahl an Iterationen eine Konvergenz gegen die Lösung liefern können und dabei wesentlich schneller sind. Auch können bestimmte Matrixstrukturen wie Smmetrie und viele Nulleinträge genutzt werden. Solche iterative Löser und deren Fehlerabschätzungen werden in der Numerik, einem Bereich der Mathematik, eräutert. Dort gibt es viele weitere Anwendungsmöglichkeiten der Programmierung mit Java und dieses Beispiel sollte einen Einblick in die Anwendungsmöglichkeiten bieten.&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Eliminationsverfahren&amp;diff=2302</id>
		<title>Eliminationsverfahren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Eliminationsverfahren&amp;diff=2302"/>
				<updated>2020-03-09T21:07:18Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: /* Pivotsuche */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Pivotsuche==&lt;br /&gt;
&lt;br /&gt;
Da wir nur ein allgemeines reguläres quadratisches lineares Gleichungssystem der Form Ax=b betrachten, können auf der Hauptdiagonalen von A Nulleinträge vorkommen. Aus vorherigem Abschnitt wissen wir, dass wir das LGS so umformen wollen, dass die Koeffizientenmatrix eine obere Dreiecksmatrix ist. Diese hat wegen der Regularität nur Einträge ungleich 0 auf der Diagonalen.&lt;br /&gt;
&lt;br /&gt;
Wir wollen deshalb eine sogenannte Spaltenpivotierung durchführen. Hierbei wird zunächst ein Pivotelement in der Spalte gesucht, das betragsmäßig möglichst groß ist. Hierfür werden wird das Argmax der Beträge aller Einträge in der Spalte mit Zeilenindizes, die größer oder gleich dem Spaltenindize sind, bestimmt. Wegen Regularität ist dieser Eintrag stets ungleich 0. Eine Implementierung könnte zum Beispiel folgend aussehen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=java&amp;gt;&lt;br /&gt;
package Gauß;&lt;br /&gt;
&lt;br /&gt;
public class LGS {&lt;br /&gt;
&lt;br /&gt;
	public static void main (String[] args) {&lt;br /&gt;
		double[][] A= {{3,1,6},{2,1,3},{1,1,1}};&lt;br /&gt;
		double[] b= {2,7,4};&lt;br /&gt;
		print2D(A);&lt;br /&gt;
		System.out.println();&lt;br /&gt;
		printVektor(b);&lt;br /&gt;
		System.out.println();&lt;br /&gt;
		printVektor(LGSloesen (A ,b));&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void printVektor(double[] array) {&lt;br /&gt;
		// gibt Array in Vektorschreibweise aus&lt;br /&gt;
		System.out.print(&amp;quot;(&amp;quot;);&lt;br /&gt;
		for(int i=0; i&amp;lt;array.length-1; i++) {&lt;br /&gt;
			System.out.print(array[i] + &amp;quot;,&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
		System.out.print(array[array.length-1]);&lt;br /&gt;
		System.out.println(&amp;quot;)^T&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void print2D(double[][] A) {&lt;br /&gt;
		// gibt quadr. 2D Array aus&lt;br /&gt;
		int n=A.length;&lt;br /&gt;
		for(int i=0;i&amp;lt;n;i++) {&lt;br /&gt;
			for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
				System.out.print(A[i][j] + &amp;quot; &amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			System.out.println();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static double[] LGSloesen (double[][] A ,double[] b) {&lt;br /&gt;
		//loest regulaeres LGS Ax=b&lt;br /&gt;
		//umformen, sodass eine obere Dreiecksmatrix die Koeffizientenmatrix ist.&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length-1;j++) {&lt;br /&gt;
			PivotierungElimination (A,b,j);&lt;br /&gt;
		}&lt;br /&gt;
		//nutze Algorithmus für LGS mit oberer Dreiecksmatrix als Koeffizientenmatrix&lt;br /&gt;
		double[] x=LGSobereDreiecksmatrix(A,b);&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static double[] LGSobereDreiecksmatrix(double[][] A, double[] b) {&lt;br /&gt;
		//setze Werte rueckwaerts ein&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		double[] x=new double[n];&lt;br /&gt;
		x[n-1]=b[n-1]/A[n-1][n-1];&lt;br /&gt;
		for(int j= n-2;j&amp;gt;=0;j--) {&lt;br /&gt;
			double sum=0;&lt;br /&gt;
			for(int k=j+1;k&amp;lt;n;k++) {&lt;br /&gt;
				sum=sum+A[j][k]*x[k];&lt;br /&gt;
			}&lt;br /&gt;
			x[j]=(b[j]-sum)/A[j][j];&lt;br /&gt;
		}&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static int Pivotindize (double[][] A, int Spalte) {&lt;br /&gt;
		//findet Indize, der &amp;gt;= Spaltenindizee ist, mit groesstem Eintrag in gegebener Spalte&lt;br /&gt;
		int n =A.length;&lt;br /&gt;
		int argmax=Spalte;&lt;br /&gt;
		double max=Math.abs(A[Spalte][Spalte]);&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;n;i++) {&lt;br /&gt;
			if(Math.abs(A[i][Spalte])&amp;gt;max) {&lt;br /&gt;
				max=Math.abs(A[i][Spalte]);&lt;br /&gt;
				argmax=i;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return argmax;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void ZeilenTauschen (double[][] A, double[] b, int zeile1, int zeile2){&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		//temporäre Hilfsvariablen&lt;br /&gt;
		double [] Azeile1vorher =new double[n];&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			Azeile1vorher[j]=A[zeile1][j];&lt;br /&gt;
		}&lt;br /&gt;
		double bzeile1vorher = b[zeile1];&lt;br /&gt;
		//tauschen&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			A[zeile1][j]=A[zeile2][j];&lt;br /&gt;
			A[zeile2][j]=Azeile1vorher[j];&lt;br /&gt;
		}&lt;br /&gt;
		b[zeile1]=b[zeile2];&lt;br /&gt;
		b[zeile2]=bzeile1vorher;&lt;br /&gt;
		//keine Rückgabe, da Arrays nicht primitiv&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void PivotierungElimination (double[][] A, double[] b, int Spalte) {&lt;br /&gt;
		//Pivotelement soll vor Elimination auf der Diagonalen liegen&lt;br /&gt;
		int pivot=Pivotindize (A, Spalte);&lt;br /&gt;
		if(pivot&amp;gt;Spalte) {&lt;br /&gt;
			ZeilenTauschen (A, b, Spalte, pivot);&lt;br /&gt;
		}&lt;br /&gt;
		//Elimination: zu jeder Zeile mit Zeilenindize&amp;gt;Spaltenidize wird das c-fache der durch &amp;quot;Spalte&amp;quot; vorgegebenen Zeile addiert&lt;br /&gt;
		//c wird hierbei stets so gewaehlt, dass unter dem Pivotelement nur Nullen sind&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;b.length;i++) {&lt;br /&gt;
			ZeileAddieren(A,b, -A[i][Spalte]/A[Spalte][Spalte] ,Spalte,i);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void ZeileAddieren(double[][] A, double[] b, double c, int Pivotindize, int a) {&lt;br /&gt;
		// addiert das c-fache der Zeile mit Pivotelement zu Zeile a&lt;br /&gt;
		//(beachte, dass bei der Elimination das Pivotelement auf der Diagonalen liegt)&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length;j++) {&lt;br /&gt;
			A[a][j]=A[a][j]+c*A[Pivotindize][j];&lt;br /&gt;
		}&lt;br /&gt;
		b[a]=b[a]+c*b[Pivotindize];&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Implementierung_des_Eliminationsverfahrens&amp;diff=2301</id>
		<title>Implementierung des Eliminationsverfahrens</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Implementierung_des_Eliminationsverfahrens&amp;diff=2301"/>
				<updated>2020-03-09T21:00:08Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wir testen den zuvor beschriebenen Algorithmus mit Hilfe folgender Implementierung, welche das Eliminationsverfahren mit Spaltenpivotierung an einem Beispiel anwendet. Hier können natürlich auch andere reguläre LGS, eventuell anderer Größe, gelöst werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package Gauß;&lt;br /&gt;
&lt;br /&gt;
public class LGS {&lt;br /&gt;
&lt;br /&gt;
	public static void main (String[] args) {&lt;br /&gt;
		double[][] A= {{3,1,6},{2,1,3},{1,1,1}};&lt;br /&gt;
		double[] b= {2,7,4};&lt;br /&gt;
		print2D(A);&lt;br /&gt;
		System.out.println();&lt;br /&gt;
		printVektor(b);&lt;br /&gt;
		System.out.println();&lt;br /&gt;
		printVektor(LGSloesen (A ,b));&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void printVektor(double[] array) {&lt;br /&gt;
		// gibt Array in Vektorschreibweise aus&lt;br /&gt;
		System.out.print(&amp;quot;(&amp;quot;);&lt;br /&gt;
		for(int i=0; i&amp;lt;array.length-1; i++) {&lt;br /&gt;
			System.out.print(array[i] + &amp;quot;,&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
		System.out.print(array[array.length-1]);&lt;br /&gt;
		System.out.println(&amp;quot;)^T&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void print2D(double[][] A) {&lt;br /&gt;
		// gibt quadr. 2D Array aus&lt;br /&gt;
		int n=A.length;&lt;br /&gt;
		for(int i=0;i&amp;lt;n;i++) {&lt;br /&gt;
			for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
				System.out.print(A[i][j] + &amp;quot; &amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			System.out.println();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static double[] LGSloesen (double[][] A ,double[] b) {&lt;br /&gt;
		//loest regulaeres LGS Ax=b&lt;br /&gt;
		//umformen, sodass eine obere Dreiecksmatrix die Koeffizientenmatrix ist.&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length-1;j++) {&lt;br /&gt;
			PivotierungElimination (A,b,j);&lt;br /&gt;
		}&lt;br /&gt;
		//nutze Algorithmus für LGS mit oberer Dreiecksmatrix als Koeffizientenmatrix&lt;br /&gt;
		double[] x=LGSobereDreiecksmatrix(A,b);&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static double[] LGSobereDreiecksmatrix(double[][] A, double[] b) {&lt;br /&gt;
		//setze Werte rueckwaerts ein&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		double[] x=new double[n];&lt;br /&gt;
		x[n-1]=b[n-1]/A[n-1][n-1];&lt;br /&gt;
		for(int j= n-2;j&amp;gt;=0;j--) {&lt;br /&gt;
			double sum=0;&lt;br /&gt;
			for(int k=j+1;k&amp;lt;n;k++) {&lt;br /&gt;
				sum=sum+A[j][k]*x[k];&lt;br /&gt;
			}&lt;br /&gt;
			x[j]=(b[j]-sum)/A[j][j];&lt;br /&gt;
		}&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static int Pivotindize (double[][] A, int Spalte) {&lt;br /&gt;
		//findet Indize, der &amp;gt;= Spaltenindizee ist, mit groesstem Eintrag in gegebener Spalte&lt;br /&gt;
		int n =A.length;&lt;br /&gt;
		int argmax=Spalte;&lt;br /&gt;
		double max=A[Spalte][Spalte];&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;n;i++) {&lt;br /&gt;
			if(A[i][Spalte]&amp;gt;max) {&lt;br /&gt;
				max=A[i][Spalte];&lt;br /&gt;
				argmax=i;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return argmax;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void ZeilenTauschen (double[][] A, double[] b, int zeile1, int zeile2){&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		//temporäre Hilfsvariablen&lt;br /&gt;
		double [] Azeile1vorher =new double[n];&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			Azeile1vorher[j]=A[zeile1][j];&lt;br /&gt;
		}&lt;br /&gt;
		double bzeile1vorher = b[zeile1];&lt;br /&gt;
		//tauschen&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			A[zeile1][j]=A[zeile2][j];&lt;br /&gt;
			A[zeile2][j]=Azeile1vorher[j];&lt;br /&gt;
		}&lt;br /&gt;
		b[zeile1]=b[zeile2];&lt;br /&gt;
		b[zeile2]=bzeile1vorher;&lt;br /&gt;
		//keine Rückgabe, da Arrays nicht primitiv&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void PivotierungElimination (double[][] A, double[] b, int Spalte) {&lt;br /&gt;
		//Pivotelement soll vor Elimination auf der Diagonalen liegen&lt;br /&gt;
		int pivot=Pivotindize (A, Spalte);&lt;br /&gt;
		if(pivot&amp;gt;Spalte) {&lt;br /&gt;
			ZeilenTauschen (A, b, Spalte, pivot);&lt;br /&gt;
		}&lt;br /&gt;
		//Elimination: zu jeder Zeile mit Zeilenindize&amp;gt;Spaltenidize wird das c-fache der durch &amp;quot;Spalte&amp;quot; vorgegebenen Zeile addiert&lt;br /&gt;
		//c wird hierbei stets so gewaehlt, dass unter dem Pivotelement nur Nullen sind&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;b.length;i++) {&lt;br /&gt;
			ZeileAddieren(A,b, -A[i][Spalte]/A[Spalte][Spalte] ,Spalte,i);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void ZeileAddieren(double[][] A, double[] b, double c, int Pivotindize, int a) {&lt;br /&gt;
		// addiert das c-fache der Zeile mit Pivotelement zu Zeile a&lt;br /&gt;
		//(beachte, dass bei der Elimination das Pivotelement auf der Diagonalen liegt)&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length;j++) {&lt;br /&gt;
			A[a][j]=A[a][j]+c*A[Pivotindize][j];&lt;br /&gt;
		}&lt;br /&gt;
		b[a]=b[a]+c*b[Pivotindize];&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insgesamt liefert unser Programm die Ausgabe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
3.0 1.0 6.0 &lt;br /&gt;
2.0 1.0 3.0 &lt;br /&gt;
1.0 1.0 1.0 &lt;br /&gt;
&lt;br /&gt;
(2.0,7.0,4.0)^T&lt;br /&gt;
&lt;br /&gt;
(19.0,-6.999999999999998,-8.0)^T&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hierbei handelt es sich zunächst um die Koeffizientenmatrix A, dann die rechte Seite b und zuletzt die errechnete Lösung x des LGS Ax=b. Auffällig ist, dass durch Rundungsfehler der Maschine der zweite Eintrag der errechneten Lösung von dem exakten Eintrag -7 abweicht.&lt;br /&gt;
&lt;br /&gt;
Um entsprechende Rundungsfehler zu reduzieren, kann das System bereits vor dem Lösen verändert werden, sogenanntes Vorkonditionieren. Auch können Nachiterationen den Fehler reduzieren. Da Rundungsfehler jedoch aufgrund der Rechengenauigkeit im Allgemeinen jedoch nicht vollkommen verhindert werden können, spielen auch Algorithmen eine Rolle, die bei steigender Anzahl an Iterationen eine Konvergenz gegen die Lösung liefern können und dabei wesentlich schneller sind. Auch können bestimmte Matrixstrukturen wie Smmetrie und viele Nulleinträge genutzt werden. Solche iterative Löser und deren Fehlerabschätzungen werden in der Numerik, einem Bereich der Mathematik, eräutert. Dort gibt es viele weitere Anwendungsmöglichkeiten der Programmierung mit Java und dieses Beispiel sollte einen Einblick in die Anwendungsmöglichkeiten bieten.&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Implementierung_des_Eliminationsverfahrens&amp;diff=2300</id>
		<title>Implementierung des Eliminationsverfahrens</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Implementierung_des_Eliminationsverfahrens&amp;diff=2300"/>
				<updated>2020-03-09T20:32:14Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: Die Seite wurde neu angelegt: „&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt; package Gauß;  public class LGS {  	public static void main (String[] args) { 		double[][] A= {{3,1,6},{2,1,3},{1,1,1}}; 		double[] b= {2…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
package Gauß;&lt;br /&gt;
&lt;br /&gt;
public class LGS {&lt;br /&gt;
&lt;br /&gt;
	public static void main (String[] args) {&lt;br /&gt;
		double[][] A= {{3,1,6},{2,1,3},{1,1,1}};&lt;br /&gt;
		double[] b= {2,7,4};&lt;br /&gt;
		print2D(A);&lt;br /&gt;
		System.out.println();&lt;br /&gt;
		printVektor(b);&lt;br /&gt;
		System.out.println();&lt;br /&gt;
		printVektor(LGSloesen (A ,b));&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void printVektor(double[] array) {&lt;br /&gt;
		// gibt Array in Vektorschreibweise aus&lt;br /&gt;
		System.out.print(&amp;quot;(&amp;quot;);&lt;br /&gt;
		for(int i=0; i&amp;lt;array.length-1; i++) {&lt;br /&gt;
			System.out.print(array[i] + &amp;quot;,&amp;quot;);&lt;br /&gt;
		}&lt;br /&gt;
		System.out.print(array[array.length-1]);&lt;br /&gt;
		System.out.println(&amp;quot;)^T&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void print2D(double[][] A) {&lt;br /&gt;
		// gibt quadr. 2D Array aus&lt;br /&gt;
		int n=A.length;&lt;br /&gt;
		for(int i=0;i&amp;lt;n;i++) {&lt;br /&gt;
			for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
				System.out.print(A[i][j] + &amp;quot; &amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			System.out.println();&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static double[] LGSloesen (double[][] A ,double[] b) {&lt;br /&gt;
		//loest regulaeres LGS Ax=b&lt;br /&gt;
		//umformen, sodass eine obere Dreiecksmatrix die Koeffizientenmatrix ist.&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length-1;j++) {&lt;br /&gt;
			PivotierungElimination (A,b,j);&lt;br /&gt;
		}&lt;br /&gt;
		//nutze Algorithmus für LGS mit oberer Dreiecksmatrix als Koeffizientenmatrix&lt;br /&gt;
		double[] x=LGSobereDreiecksmatrix(A,b);&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static double[] LGSobereDreiecksmatrix(double[][] A, double[] b) {&lt;br /&gt;
		//setze Werte rueckwaerts ein&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		double[] x=new double[n];&lt;br /&gt;
		x[n-1]=b[n-1]/A[n-1][n-1];&lt;br /&gt;
		for(int j= n-2;j&amp;gt;=0;j--) {&lt;br /&gt;
			double sum=0;&lt;br /&gt;
			for(int k=j+1;k&amp;lt;n;k++) {&lt;br /&gt;
				sum=sum+A[j][k]*x[k];&lt;br /&gt;
			}&lt;br /&gt;
			x[j]=(b[j]-sum)/A[j][j];&lt;br /&gt;
		}&lt;br /&gt;
		return x;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static int Pivotindize (double[][] A, int Spalte) {&lt;br /&gt;
		//findet Indize, der &amp;gt;= Spaltenindizee ist, mit groesstem Eintrag in gegebener Spalte&lt;br /&gt;
		int n =A.length;&lt;br /&gt;
		int argmax=Spalte;&lt;br /&gt;
		double max=A[Spalte][Spalte];&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;n;i++) {&lt;br /&gt;
			if(A[i][Spalte]&amp;gt;max) {&lt;br /&gt;
				max=A[i][Spalte];&lt;br /&gt;
				argmax=i;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return argmax;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void ZeilenTauschen (double[][] A, double[] b, int zeile1, int zeile2){&lt;br /&gt;
		int n=b.length;&lt;br /&gt;
		//temporäre Hilfsvariablen&lt;br /&gt;
		double [] Azeile1vorher =new double[n];&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			Azeile1vorher[j]=A[zeile1][j];&lt;br /&gt;
		}&lt;br /&gt;
		double bzeile1vorher = b[zeile1];&lt;br /&gt;
		//tauschen&lt;br /&gt;
		for(int j=0;j&amp;lt;n;j++) {&lt;br /&gt;
			A[zeile1][j]=A[zeile2][j];&lt;br /&gt;
			A[zeile2][j]=Azeile1vorher[j];&lt;br /&gt;
		}&lt;br /&gt;
		b[zeile1]=b[zeile2];&lt;br /&gt;
		b[zeile2]=bzeile1vorher;&lt;br /&gt;
		//keine Rückgabe, da Arrays nicht primitiv&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void PivotierungElimination (double[][] A, double[] b, int Spalte) {&lt;br /&gt;
		//Pivotelement soll vor Elimination auf der Diagonalen liegen&lt;br /&gt;
		int pivot=Pivotindize (A, Spalte);&lt;br /&gt;
		if(pivot&amp;gt;Spalte) {&lt;br /&gt;
			ZeilenTauschen (A, b, Spalte, pivot);&lt;br /&gt;
		}&lt;br /&gt;
		//Elimination: zu jeder Zeile mit Zeilenindize&amp;gt;Spaltenidize wird das c-fache der durch &amp;quot;Spalte&amp;quot; vorgegebenen Zeile addiert&lt;br /&gt;
		//c wird hierbei stets so gewaehlt, dass unter dem Pivotelement nur Nullen sind&lt;br /&gt;
		for(int i=Spalte+1;i&amp;lt;b.length;i++) {&lt;br /&gt;
			ZeileAddieren(A,b, -A[i][Spalte]/A[Spalte][Spalte] ,Spalte,i);&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public static void ZeileAddieren(double[][] A, double[] b, double c, int Pivotindize, int a) {&lt;br /&gt;
		// addiert das c-fache der Zeile mit Pivotelement zu Zeile a&lt;br /&gt;
		//(beachte, dass bei der Elimination das Pivotelement auf der Diagonalen liegt)&lt;br /&gt;
		for(int j=0;j&amp;lt;b.length;j++) {&lt;br /&gt;
			A[a][j]=A[a][j]+c*A[Pivotindize][j];&lt;br /&gt;
		}&lt;br /&gt;
		b[a]=b[a]+c*b[Pivotindize];&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Eliminationsverfahren&amp;diff=2299</id>
		<title>Eliminationsverfahren</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Eliminationsverfahren&amp;diff=2299"/>
				<updated>2020-03-09T20:29:32Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: Die Seite wurde neu angelegt: „==Pivotsuche==  Da wir nur ein allgemeines reguläres quadratisches lineares Gleichungssystem der Form Ax=b betrachten, können auf der Hauptdiagonalen von A N…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Pivotsuche==&lt;br /&gt;
&lt;br /&gt;
Da wir nur ein allgemeines reguläres quadratisches lineares Gleichungssystem der Form Ax=b betrachten, können auf der Hauptdiagonalen von A Nulleinträge vorkommen. Aus vorherigem Abschnitt wissen wir, dass wir das LGS so umformen wollen, dass die Koeffizientenmatrix eine obere Dreiecksmatrix ist. Diese hat wegen der Regularität nur Einträge ungleich 0 auf der Diagonalen.&lt;br /&gt;
&lt;br /&gt;
Wir wollen deshalb eine sogenannte Spaltenpivotierung durchführen. Hierbei wird zunächst ein Pivotelement in der Spalte gesucht, das betragsmäßig möglichst groß ist. Hierfür werden wird das Argmax der Beträge aller Einträge in der Spalte mit Zeilenindizes, die größer oder gleich dem Spaltenindize sind, bestimmt. Wegen Regularität ist dieser Eintrag stets ungleich 0. Eine Implementierung könnte zum Beispiel folgend aussehen:&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Motivation&amp;diff=2298</id>
		<title>Motivation</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Motivation&amp;diff=2298"/>
				<updated>2020-03-09T19:07:17Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Viele Probleme in der Mathematik lassen sich auf lineare Gleichungssysteme zurückführen. Im Folgenden wollen wir uns daher damit beschäftigen, wie man entsprechende LGS mithilfe eines Eliminationsverfahrens mit Spaltenpivotierung lösen kann und wollen insbesondere auf die Implementierung in Java eingehen. Diese Anwendung soll hierbei nur die Möglichkeiten von Java verdeutlichen und nicht auf eine Optimierung der Laufzeit oder Ausnutzung spezieller Besetzungsstrukturen von Matrizen beruhen.&lt;br /&gt;
&lt;br /&gt;
Wir wollen letztlich eine Implementierung einer direkten Lösungsmethode für (reguläre, reelle) quadratische lineare Gleichungssysteme erstellen und diese anwenden. Die Implementierung basiert im Wesentlichen auf dem Gaußschen Eliminationsverfahren, welches durch diverse Veranstaltungen bekannt ist.&lt;br /&gt;
&lt;br /&gt;
==Gestaffelte Systeme==&lt;br /&gt;
&lt;br /&gt;
Wenn wir eine obere Dreiecksmatrix A als Koeffizientmatrix unseres regulären LGS haben, lässt sich dies leicht durch rückwärts einsetzen lösen:&lt;br /&gt;
In der letzten Zeile ist nur eine unbekannte Komponente des Vektors in einer linearen Gleichung, in der vorletzten Zeile gibt es nur zwei Unbekannte, wobei wir eine der Unbekannten schon durch vorherige bestimmen können und damit diese Gleichung uns durch Umstellen noch eine Unbekannte bestimmen lässt. So erhalten wir für Systeme der Form&lt;br /&gt;
&lt;br /&gt;
 a_11*x_1 + a_12*x_2 + ... + a_1n*x_n = b_1&lt;br /&gt;
            a_22*x_2 + ... + a_2n*x_n = b_2&lt;br /&gt;
                                     ...&lt;br /&gt;
                             a_nn*x_n = b_n&lt;br /&gt;
&lt;br /&gt;
folgenden Algorithmus:&lt;br /&gt;
&lt;br /&gt;
==Sukzessives Rückwärtseinsetzen==&lt;br /&gt;
&lt;br /&gt;
Da wir nur reguläre Systeme betrachten, müssen die Diagonaleinträge der oberen Dreiecksmatrix stets ungleich 0 nach Grundkenntnissen der Linearen Algebra sein. somit können wir durch Umstellen und Dividieren eine Lösung erhalten:&lt;br /&gt;
&lt;br /&gt;
 x_n = b_n / a_nn&lt;br /&gt;
 x_j = (b_j- (a_j(j+1)*x_j+1 ... a_jn*x_n) )/a_jj&lt;br /&gt;
&lt;br /&gt;
==Anwendung bei allgemeiner Koeffizientenmatrix==&lt;br /&gt;
&lt;br /&gt;
Nach Grundkenntnissen der Linearen Algebra wissen wir, dass wir bei einem LGS folgende Rechenschritte vornehmen können, ohne die Lösung zu verändern:&lt;br /&gt;
&lt;br /&gt;
 (1) Wir können Zeilen vertauschen. Hierbei wird stets eine ganze Zeile der Matrix und der rechte entsprechende Vektoreintrag mit einer anderen Zeile und einem Vektoreintrag getauscht.&lt;br /&gt;
 (2) Wir können alle Einträge der Matrix und des Vektors mit einer reellen Zahl ungleich 0 multiplizieren.&lt;br /&gt;
 (3) Wir können zu einer Zeile eine andere hinzuaddieren.&lt;br /&gt;
&lt;br /&gt;
Mit diesen Umformungen ist es stets möglich, ein reguläres LGS in die Form zu bringen, dass die Koeefizientenmatrix eine obere Dreiecksmatrix ist. Dieses Umformen bezeichnet man als Eliminationsverfahren, da wir so unter der Hauptdiagonalen die Elemente &amp;quot;eliminieren&amp;quot;.&lt;br /&gt;
Anschließend können wir das LGS dann durch Rückwärtseinsetzen lösen.&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Motivation&amp;diff=2297</id>
		<title>Motivation</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Motivation&amp;diff=2297"/>
				<updated>2020-03-09T18:53:50Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: /* Sukzessives Rückwärtseinsetzen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Viele Probleme in der Mathematik lassen sich auf lineare Gleichungssysteme zurückführen. Im Folgenden wollen wir uns daher damit beschäftigen, wie man entsprechende LGS mithilfe eines Eliminationsverfahrens mit Spaltenpivotierung lösen kann und wollen insbesondere auf die Implementierung in Java eingehen. Diese Anwendung soll hierbei nur die Möglichkeiten von Java verdeutlichen und nicht auf eine Optimierung der Laufzeit oder Ausnutzung spezieller Besetzungsstrukturen von Matrizen beruhen.&lt;br /&gt;
&lt;br /&gt;
Wir wollen letztlich eine Implementierung einer direkten Lösungsmethode für (reguläre, reelle) quadratische lineare Gleichungssysteme erstellen und diese anwenden. Die Implementierung basiert im Wesentlichen auf dem Gaußschen Eliminationsverfahren, welches durch diverse Veranstaltungen bekannt ist.&lt;br /&gt;
&lt;br /&gt;
==Gestaffelte Systeme==&lt;br /&gt;
&lt;br /&gt;
Wenn wir eine obere Dreiecksmatrix A als Koeffizientmatrix unseres regulären LGS haben, lässt sich dies leicht durch rückwärts einsetzen lösen:&lt;br /&gt;
In der letzten Zeile ist nur eine unbekannte Komponente des Vektors in einer linearen Gleichung, in der vorletzten Zeile gibt es nur zwei Unbekannte, wobei wir eine der Unbekannten schon durch vorherige bestimmen können und damit diese Gleichung uns durch Umstellen noch eine Unbekannte bestimmen lässt. So erhalten wir für Systeme der Form&lt;br /&gt;
&lt;br /&gt;
 a_11*x_1 + a_12*x_2 + ... + a_1n*x_n = b_1&lt;br /&gt;
            a_22*x_2 + ... + a_2n*x_n = b_2&lt;br /&gt;
                                     ...&lt;br /&gt;
                             a_nn*x_n = b_n&lt;br /&gt;
&lt;br /&gt;
folgenden Algorithmus:&lt;br /&gt;
&lt;br /&gt;
==Sukzessives Rückwärtseinsetzen==&lt;br /&gt;
&lt;br /&gt;
Da wir nur reguläre Systeme betrachten, müssen die Diagonaleinträge der oberen Dreiecksmatrix stets ungleich 0 nach Grundkenntnissen der Linearen Algebra sein. somit können wir durch Umstellen und Dividieren eine Lösung erhalten:&lt;br /&gt;
&lt;br /&gt;
 x_n = b_n / a_nn&lt;br /&gt;
 x_j = (b_j- (a_j(j+1)*x_j+1 ... a_jn*x_n) )/a_jj&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Motivation&amp;diff=2296</id>
		<title>Motivation</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Motivation&amp;diff=2296"/>
				<updated>2020-03-09T18:26:21Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Viele Probleme in der Mathematik lassen sich auf lineare Gleichungssysteme zurückführen. Im Folgenden wollen wir uns daher damit beschäftigen, wie man entsprechende LGS mithilfe eines Eliminationsverfahrens mit Spaltenpivotierung lösen kann und wollen insbesondere auf die Implementierung in Java eingehen. Diese Anwendung soll hierbei nur die Möglichkeiten von Java verdeutlichen und nicht auf eine Optimierung der Laufzeit oder Ausnutzung spezieller Besetzungsstrukturen von Matrizen beruhen.&lt;br /&gt;
&lt;br /&gt;
Wir wollen letztlich eine Implementierung einer direkten Lösungsmethode für (reguläre, reelle) quadratische lineare Gleichungssysteme erstellen und diese anwenden. Die Implementierung basiert im Wesentlichen auf dem Gaußschen Eliminationsverfahren, welches durch diverse Veranstaltungen bekannt ist.&lt;br /&gt;
&lt;br /&gt;
==Gestaffelte Systeme==&lt;br /&gt;
&lt;br /&gt;
Wenn wir eine obere Dreiecksmatrix A als Koeffizientmatrix unseres regulären LGS haben, lässt sich dies leicht durch rückwärts einsetzen lösen:&lt;br /&gt;
In der letzten Zeile ist nur eine unbekannte Komponente des Vektors in einer linearen Gleichung, in der vorletzten Zeile gibt es nur zwei Unbekannte, wobei wir eine der Unbekannten schon durch vorherige bestimmen können und damit diese Gleichung uns durch Umstellen noch eine Unbekannte bestimmen lässt. So erhalten wir für Systeme der Form&lt;br /&gt;
&lt;br /&gt;
 a_11*x_1 + a_12*x_2 + ... + a_1n*x_n = b_1&lt;br /&gt;
            a_22*x_2 + ... + a_2n*x_n = b_2&lt;br /&gt;
                                     ...&lt;br /&gt;
                             a_nn*x_n = b_n&lt;br /&gt;
&lt;br /&gt;
folgenden Algorithmus:&lt;br /&gt;
&lt;br /&gt;
==Sukzessives Rückwärtseinsetzen==&lt;br /&gt;
&lt;br /&gt;
Da wir nur reguläre Systeme betrachten, müssen die Diagonaleinträge der oberen Dreiecksmatrix stets ungleich 0 nach Grundkenntnissen der Linearen Algebra sein. somit können wir durch Umstellen und Dividieren eine Lösung erhalten:&lt;br /&gt;
&lt;br /&gt;
 x_n = b_n / a_nn&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Beispiele&amp;diff=2295</id>
		<title>Beispiele</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Beispiele&amp;diff=2295"/>
				<updated>2020-03-09T18:15:15Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: /* Lösung von Gleichungssystemen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Übersicht über alle Beispiele=&lt;br /&gt;
Dieser Abschnitt enthält alle Beispeile aus dem EINI-Wiki.&lt;br /&gt;
&lt;br /&gt;
==Lösung von Gleichungssystemen==&lt;br /&gt;
*[[Motivation]]&lt;br /&gt;
*[[Eliminationsverfahren]]&lt;br /&gt;
*[[Implementierung des Eliminationsverfahrens]]&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Motivation&amp;diff=2294</id>
		<title>Motivation</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Motivation&amp;diff=2294"/>
				<updated>2020-03-09T18:10:06Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: /* Einführung in die Notation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Viele Probleme in der Mathematik lassen sich auf lineare Gleichungssysteme zurückführen. Im Folgenden wollen wir uns daher damit beschäftigen, wie man entsprechende LGS mithilfe eines Eliminationsverfahrens mit Spaltenpivotierung lösen kann und wollen insbesondere auf die Implementierung in Java eingehen. Diese Anwendung soll hierbei nur die Möglichkeiten von Java verdeutlichen und nicht auf eine Optimierung der Laufzeit oder Ausnutzung spezieller Besetzungsstrukturen von Matrizen beruhen.&lt;br /&gt;
&lt;br /&gt;
Wir wollen letztlich eine Implementierung einer direkten Lösungsmethode für (reelle) quadratische lineare Gleichungssysteme erstellen und diese anwenden. Die Implementierung basiert im Wesentlichen auf dem Gaußschen Eliminationsverfahren, welches durch diverse Veranstaltungen bekannt ist.&lt;br /&gt;
&lt;br /&gt;
==Gestaffelte Systeme==&lt;br /&gt;
&lt;br /&gt;
Wenn wir eine obere Dreiecksmatrix A als Koeffizientmatrix unseres regulären LGS haben, lässt sich dies leicht durch rückwärts einsetzen lösen:&lt;br /&gt;
In der letzten Zeile ist nur eine unbekannte Komponente des Vektors in einer linearen Gleichung, in der vorletzten Zeile gibt es nur zwei Unbekannte, wobei wir eine der Unbekannten schon durch vorherige bestimmen können und damit diese Gleichung uns durch Umstellen noch eine Unbekannte bestimmen lässt. So erhalten wir für Systeme der Form&lt;br /&gt;
&lt;br /&gt;
 a_11*x_1 + a_12*x_2 + ... + a_1n*x_n = b_1&lt;br /&gt;
            a_22*x_2 + ... + a_2n*x_n = b_2&lt;br /&gt;
                                     ...&lt;br /&gt;
                             a_nn*x_n = b_n&lt;br /&gt;
&lt;br /&gt;
folgenden Algorithmus:&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Motivation&amp;diff=2293</id>
		<title>Motivation</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Motivation&amp;diff=2293"/>
				<updated>2020-03-09T17:55:36Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: /* Einleitung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Viele Probleme in der Mathematik lassen sich auf lineare Gleichungssysteme zurückführen. Im Folgenden wollen wir uns daher damit beschäftigen, wie man entsprechende LGS mithilfe eines Eliminationsverfahrens mit Spaltenpivotierung lösen kann und wollen insbesondere auf die Implementierung in Java eingehen. Diese Anwendung soll hierbei nur die Möglichkeiten von Java verdeutlichen und nicht auf eine Optimierung der Laufzeit oder Ausnutzung spezieller Besetzungsstrukturen von Matrizen beruhen.&lt;br /&gt;
&lt;br /&gt;
Wir wollen letztlich eine Implementierung einer direkten Lösungsmethode für (reelle) quadratische lineare Gleichungssysteme erstellen und diese anwenden. Die Implementierung basiert im Wesentlichen auf dem Gaußschen Eliminationsverfahren, welches durch diverse Veranstaltungen bekannt ist.&lt;br /&gt;
&lt;br /&gt;
==Einführung in die Notation==&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Motivation&amp;diff=2292</id>
		<title>Motivation</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Motivation&amp;diff=2292"/>
				<updated>2019-12-02T12:59:40Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: Die Seite wurde neu angelegt: „==Einleitung==  Viele Probleme in der Mathematik lassen sich auf lineare Gleichungssysteme zurückführen. Im Folgenden wollen wir uns daher damit beschäftige…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Einleitung==&lt;br /&gt;
&lt;br /&gt;
Viele Probleme in der Mathematik lassen sich auf lineare Gleichungssysteme zurückführen. Im Folgenden wollen wir uns daher damit beschäftigen, wie man entsprechende LGS mithilfe der sogenannten LR-Zerlegung lösen kann und wollen insbesondere auf die Implementierung in Java eingehen. Diese Anwendung soll hierbei nur die Möglichkeiten von Java verdeutlichen und nicht auf eine Optimierung der Laufzeit oder Ausnutzung spezieller Besetzungsstrukturen von Matrizen beruhen.&lt;br /&gt;
&lt;br /&gt;
Wir wollen letztlich eine Implementierung einer direkten Lösungsmethode für (reelle) quadratische lineare Gleichungssysteme erstellen und diese anwenden. Das Verfahren basiert im Wesentlichen auf dem Gaußschen Eliminationsverfahren, welches durch diverse Veranstaltungen bekannt ist.&lt;br /&gt;
&lt;br /&gt;
==Einführung in die Notation==&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Beispiele&amp;diff=2291</id>
		<title>Beispiele</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Beispiele&amp;diff=2291"/>
				<updated>2019-12-02T12:24:45Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: /* Lösung von Gleichungssystemen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Übersicht über alle Beispiele=&lt;br /&gt;
Dieser Abschnitt enthält alle Beispeile aus dem EINI-Wiki.&lt;br /&gt;
&lt;br /&gt;
==Lösung von Gleichungssystemen==&lt;br /&gt;
*[[Motivation]]&lt;br /&gt;
*[[Eliminationsverfahren]]&lt;br /&gt;
*[[Beispiel für Eliminationsverfahren]]&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Beispiele&amp;diff=2290</id>
		<title>Beispiele</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Beispiele&amp;diff=2290"/>
				<updated>2019-12-02T12:22:22Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: /* Lösung von Gleichungssystemen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Übersicht über alle Beispiele=&lt;br /&gt;
Dieser Abschnitt enthält alle Beispeile aus dem EINI-Wiki.&lt;br /&gt;
&lt;br /&gt;
==Lösung von Gleichungssystemen==&lt;br /&gt;
*[[Motivation]]&lt;br /&gt;
*[[Eliminationsverfahren]]&lt;br /&gt;
*[[Beispiel]]&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Beispiele&amp;diff=2289</id>
		<title>Beispiele</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Beispiele&amp;diff=2289"/>
				<updated>2019-12-02T12:00:06Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Übersicht über alle Beispiele=&lt;br /&gt;
Dieser Abschnitt enthält alle Beispeile aus dem EINI-Wiki.&lt;br /&gt;
&lt;br /&gt;
==Lösung von Gleichungssystemen==&lt;br /&gt;
*[[Einfaches Beispiel]]&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Beispiele&amp;diff=2288</id>
		<title>Beispiele</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Beispiele&amp;diff=2288"/>
				<updated>2019-12-02T11:59:18Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Übersicht über alle Beispiele=&lt;br /&gt;
Dieser Abschnitt enthält alle Beispeile aus dem EINIWiki.&lt;br /&gt;
&lt;br /&gt;
==Lösung von Gleichungssystemen==&lt;br /&gt;
*[[Einfaches Beispiel]]&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Beispiele&amp;diff=2287</id>
		<title>Beispiele</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Beispiele&amp;diff=2287"/>
				<updated>2019-12-02T11:58:23Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: Die Seite wurde neu angelegt: „=Übersicht über alle Beispiele=  ==Lösung von Gleichungssystemen== *Einfaches Beispiel“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Übersicht über alle Beispiele=&lt;br /&gt;
&lt;br /&gt;
==Lösung von Gleichungssystemen==&lt;br /&gt;
*[[Einfaches Beispiel]]&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	<entry>
		<id>https://ls14-eini.cs.tu-dortmund.de/index.php?title=Hauptseite&amp;diff=2286</id>
		<title>Hauptseite</title>
		<link rel="alternate" type="text/html" href="https://ls14-eini.cs.tu-dortmund.de/index.php?title=Hauptseite&amp;diff=2286"/>
				<updated>2019-12-02T11:57:07Z</updated>
		
		<summary type="html">&lt;p&gt;Elias: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=mainpage_topbox&amp;gt;&lt;br /&gt;
&amp;lt;div id=mainpage_title&amp;gt;&lt;br /&gt;
&amp;lt;span&amp;gt;Willkommen im&amp;lt;/span&amp;gt; EINI-Wiki&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div id=mainpage_title_text&amp;gt;&lt;br /&gt;
Eine Wiki zur Veranstaltung &amp;quot;Einführung in die Informatik für Logistiker, Wirtschaftsmathematiker und -ingenieure&amp;quot; der TU Dortmund&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;border: solid 1px #AAA; width:100%; margin-top: 0.5em; margin-right: 0.5em;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;box_head&amp;quot;&amp;gt;&lt;br /&gt;
Übersicht&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;box_content&amp;quot; style=&amp;quot;margin:0 ; padding: 0;&amp;quot;&amp;gt;&lt;br /&gt;
{| class = &amp;quot;wikitable&amp;quot; width=100%&lt;br /&gt;
 |+ Themenübersicht&lt;br /&gt;
 ! Thema !! Vorlesung !! Inhalt&lt;br /&gt;
 |-&lt;br /&gt;
 | rowspan=&amp;quot;2&amp;quot; | Rechensysteme &amp;amp; Datendarstellung&lt;br /&gt;
 | Vorlesung 1 (Kapitel 0)&lt;br /&gt;
 | Einführung und Organisation &lt;br /&gt;
 |-&lt;br /&gt;
 | Vorlesung 2 (Kapitel 1)&lt;br /&gt;
 | [[Dezimal- und Binärsystem|Dezimal- und Binärzahlen]], Darstellung von Zahlen, Darstellung von Zeichen, Darstellung logischer Werte, Umrechnung, Rechensysteme&lt;br /&gt;
 |-&lt;br /&gt;
 | Spezifikation - Algorithmus - Syntax &amp;amp; Semantik&lt;br /&gt;
 | Vorlesung 3 (Kapitel 2)&lt;br /&gt;
 | Entwurf, [[Probleme#Spezifikation|Spezifikation]], [[Algorithmus]], [[Syntax und Semantik]]&lt;br /&gt;
 |-&lt;br /&gt;
 | rowspan=&amp;quot;3&amp;quot; | Kern imperativer Programmiersprachen&lt;br /&gt;
 | Vorlesung 4 (Kapitel 3.1)&lt;br /&gt;
 | [[Variable | Variablen]], [[Zuweisung|Zuweisungen]], [[Datentyp|primitive Datentypen]], [[Operator|Operatoren]]&lt;br /&gt;
 |-&lt;br /&gt;
 | Vorlesung 5 (Kapitel 3.2)&lt;br /&gt;
 | [[Kontrollstrukturen]]: [[Sequenz|Sequenzen]], [[Block|Blöcke]], [[Fallunterscheidung]], [[Schleife|Schleifen]]: [[while]], [[do-while]]&lt;br /&gt;
 |-&lt;br /&gt;
 | Vorlesung 6 (Kapitel 3.3)&lt;br /&gt;
 | [[Schleifen]]: [[for]], [[continue]], [[break]]&lt;br /&gt;
 |-&lt;br /&gt;
 | Funktion - Prozedur - Methode - Rekursion&lt;br /&gt;
 | Vorlesung 7 (Kapitel 4)&lt;br /&gt;
 | [[Unterprogramm|Unterprogramme]], [[Funktion|Funktionen]], [[Funktion|Aufruf]], [[Rekursion]]&lt;br /&gt;
 |-&lt;br /&gt;
 | rowspan=&amp;quot;2&amp;quot; | Arrays - Internes Sortieren - Rekursive Datenstrukturen&lt;br /&gt;
 | Vorlesung 8 (Kapitel 5.1)&lt;br /&gt;
 | [[Array|Arrays]], [[Sortieren|Internes Sortieren]], Rekursive Datenstrukturen ([[Baum|Binär-Baum]], [[Heap]])&lt;br /&gt;
 |-&lt;br /&gt;
 | Vorlesung 9 (Kapitel 5.2)&lt;br /&gt;
 | Abstrakte Datentypen am Beispiel des [[Heap]], [[Heapsort]]&lt;br /&gt;
 |-&lt;br /&gt;
 | rowspan=&amp;quot;1&amp;quot; | Objektorientierte Programmierung - Einführung&lt;br /&gt;
 | Vorlesung 10 (Kapitel 6)&lt;br /&gt;
 | Aufbau eines [[Java]]-[[Programm]]s, [[Klasse|Klassen]], [[Objekt|Objekte]], Details zu [[Konstruktor|Konstruktoren]], [[Referenz|Referenzen]], [[Garbage Collector|Garbage Collection]], Übergabe von [[Parameter|Parametern]], [[Attribut|Klassenattribute]]&lt;br /&gt;
 |-&lt;br /&gt;
 | rowspan=&amp;quot;2&amp;quot; | Objektorientierte Programmierung - Vererbung&lt;br /&gt;
 | Vorlesung 11 (Kapitel 7)&lt;br /&gt;
 | rowspan=&amp;quot;2&amp;quot; | [[Vererbung]], [[Attribut|Attribute]] &amp;amp; [[Methode|Methoden]]: [[Sichtbarkeit|Zugriffsrechte]], Überschreiben, [[abstract|Abstrakte Klassen/Methoden]], Polymorphie&lt;br /&gt;
 |-&lt;br /&gt;
 | Vorlesung 12 (Kapitel 7)&lt;br /&gt;
 |-&lt;br /&gt;
 | rowspan=&amp;quot;2&amp;quot; | Dynamische Datenstrukturen&lt;br /&gt;
 | Vorlesung 13 (Kapitel 8.1)&lt;br /&gt;
 | einfache [[Liste|Listen]], sortierte Liste, Doppelt verkettete Liste &lt;br /&gt;
 |-&lt;br /&gt;
 | Vorlesung 14 (Kapitel 8.2)&lt;br /&gt;
 | [[Baum#Suchbaum | Binärer Suchbaum]], Vollständige Induktion, Operationen in einem binärem Suchbaum, Durchlaufstrategien für einen binären Suchbaum&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=Wichtige Übersichtsseiten=&lt;br /&gt;
&lt;br /&gt;
* Unter [[Basisvokabular]] findet sich eine Liste mit in der Informatik häufig verwendeten Begriffen. Anregungen für Ergänzungen sind erwünscht.&lt;br /&gt;
&lt;br /&gt;
* Unter [[Schlüsselwort]] findet sich eine Liste mit allen Schlüsselwörtern in Java und weiterführenden Links.&lt;br /&gt;
&lt;br /&gt;
* In dem Artikel [[Syntaxdiagramm]]e wird erklärt, wie diese zu lesen sind.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;border: solid 1px #AAA; width:50%; margin-top: 0.5em; margin-left: 0.5em;&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;box_head&amp;quot;&amp;gt;&lt;br /&gt;
Glossar&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;box_content&amp;quot;&amp;gt;&lt;br /&gt;
zu: '''[[Glossar (vorlesungsorientiert)|vorlesungsorientiert]]''' / '''[[Glossar (alphabetisch)|alphabetisch]]'''&lt;br /&gt;
 &lt;br /&gt;
*[[Stack | Abarbeitung von Funktionsaufrufen]]&lt;br /&gt;
*[[Algorithmus]]&lt;br /&gt;
*[[Array]]&lt;br /&gt;
*[[Ausdruck]]&lt;br /&gt;
*[[Beispiele]]&lt;br /&gt;
*[[Bit]]&lt;br /&gt;
*[[Dezimal-_und_Binärsystem | Binärzahlen]]&lt;br /&gt;
*[[Boolesche Algebra]]&lt;br /&gt;
*[[Boolean]]&lt;br /&gt;
*[[Block]]&lt;br /&gt;
*[[Alternative | Bedingte Anweisung]]&lt;br /&gt;
*[[Baum | binärer Baum]]&lt;br /&gt;
*[[Char]]&lt;br /&gt;
*[[call by value]]&lt;br /&gt;
*[[call by reference]]&lt;br /&gt;
*[[Darstellung natürlicher Zahlen]]&lt;br /&gt;
*[[Darstellung ganzer Zahlen]]&lt;br /&gt;
*[[Deklaration]]&lt;br /&gt;
*[[Datentyp]]&lt;br /&gt;
*[[do-while | do-while-Schleife]]&lt;br /&gt;
*[[Datenstruktur]]&lt;br /&gt;
*[[Dynamische Datenstruktur]]&lt;br /&gt;
*[[Ein- und Ausgabe]]&lt;br /&gt;
*[[Elementaroperationen]]&lt;br /&gt;
*[[Einfache Grundoperationen]]&lt;br /&gt;
*[[Festpunktzahlen]]&lt;br /&gt;
*[[Float]]&lt;br /&gt;
*[[for | for-Schleife]]&lt;br /&gt;
*[[Funktion]]&lt;br /&gt;
*[[Gleitpunktzahlen]]&lt;br /&gt;
*[[globale Variablen]]&lt;br /&gt;
*[[Hexadezimalzahlen]]&lt;br /&gt;
*[[Heap]]&lt;br /&gt;
*[[if]]&lt;br /&gt;
*[[Initialisierung]]&lt;br /&gt;
*[[Integer]]&lt;br /&gt;
*[[Schleife | Iteration]]&lt;br /&gt;
*[[Objekt | Instanz]]&lt;br /&gt;
*[[Java]]&lt;br /&gt;
*[[Kurzformen]]&lt;br /&gt;
*[[Kontrollstruktur]]&lt;br /&gt;
*[[Klasse]]&lt;br /&gt;
*[[Liste | lineare Liste]]&lt;br /&gt;
*[[Methode]]&lt;br /&gt;
*[[main | main-Methode]]&lt;br /&gt;
*[[new | new-Operator]]&lt;br /&gt;
*[[null]]&lt;br /&gt;
*[[Objektorientierte Programmierung]]&lt;br /&gt;
*[[Operation]]&lt;br /&gt;
*[[Objekt]]&lt;br /&gt;
*[[Programmierung]]&lt;br /&gt;
*[[Primitive Datentypen]]&lt;br /&gt;
*[[Operatoren#Prioritäten | Prioritäten von Operatoren]]&lt;br /&gt;
*[[Parameter]]&lt;br /&gt;
*[[public]]&lt;br /&gt;
*[[private]]&lt;br /&gt;
*[[protected]]&lt;br /&gt;
*[[Punkt-Operator]]&lt;br /&gt;
*[[Rechensysteme]]&lt;br /&gt;
*[[Rückgabewert]]&lt;br /&gt;
*[[Rekursive Funktion]]&lt;br /&gt;
*[[Referenzen]]&lt;br /&gt;
*[[Syntax]]&lt;br /&gt;
*[[Semantik]]&lt;br /&gt;
*[[Sortieren]]&lt;br /&gt;
*[[Suchen]]&lt;br /&gt;
*[[Syntaxdiagramm]]&lt;br /&gt;
*[[switch]]&lt;br /&gt;
*[[Schleife]]&lt;br /&gt;
*[[static]]&lt;br /&gt;
*[[Schlüsselwörter]]&lt;br /&gt;
*[[Teile und herrsche]]&lt;br /&gt;
*[[Terminierung]]&lt;br /&gt;
*[[this]]&lt;br /&gt;
*[[Variable]]&lt;br /&gt;
*[[Vererbung]]&lt;br /&gt;
*[[while | while-Schleife]]&lt;br /&gt;
*[[Zweierkomplement]]&lt;br /&gt;
*[[Zuweisung]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Elias</name></author>	</entry>

	</feed>