Hi 
Also ich weiß, wie man einen Vektor mit einer Matrix transformiert, aber wie transformiert man einen transposen Vektor?
Wie schaut denn die Formel dafür aus? Die Berechnung ist dann doch anders als für einen normalen Vektor, oder?
Also ich weiß, wie man einen Vektor mit einer Matrix transformiert, aber wie transformiert man einen transposen Vektor?
Java:
class Vector
{
public boolean transpose;
public int[] V;
/**
* @param int[] V Vektor (Größe > 0).
* @param boolean transpose
*/
public Vector(int[] V, boolean transpose = false)
{
this.V = V;
this.transpose = transpose;
}
}
class Matrix
{
public int[][] M;
/**
* @param int[][] M Quadratische Matrix (Größe > 0).
*/
public Matrix(int[][] M)
{
this.M = M;
}
/**
* @param Matrix other Dessen M muss gleich groß dieser Instanz sein.
*/
public Matrix mul(Matrix other)
{
int size = M.length;
int[][] A = new int[size][size];
for(int i = 0; i < size; ++i) // Zeilen
{
for(int j = 0; j < size; ++j) // Spalten
{
A[i][j] = 0;
for(int k = 0; k < size; ++k)
{
A[i][j] += M[i][k] * other.M[k][j];
}
}
}
return new Matrix(A);
}
/**
* @param Vector v Dessen V muss gleich groß dieser Matrix M sein (nur 1-dim.).
*/
public Vector mul(Vector v)
{
int size = M.length;
int[] a = new int[size];
if(v.transpose)
{
// ????
}
else
{
for(int i = 0; i < size; ++i) // Zeilen
{
a[i] = 0;
for(int k = 0; k < size; ++k)
{
a[i] += A[i][k] * v.V[k];
}
}
}
}
}
int[][] M = // zeilenweise definiert
{
{0, 1, 0, 0}, // Zeile 1
{0, 0, 1, 0}, // Zeile 2
{0, 0, 0, 1}, // ...
{0, 0, 0, 0}
};
Matrix m = new Matrix(M);
Zuletzt bearbeitet: