# Vektoren multiplizieren



## noobinjava (29. Nov 2009)

Hallo,

Vektoren zu multiplizieren sollte, so dachte ich, eigentlich kein Problem
darstellen, aber ich krieg das wohl nicht hin. Der Programmcode, an dem
wir uns orientieren sollen, ist vorgegeben (keine Hausaufgabe, keine Punkte!):



```
public class Vektmult{

public int SkalarProdukt(int [] vekt1, int [] vekt2) {
// hier ergänzen
}

public static void main(String args[]) {
Miniprojekt3 p3 = new Miniprojekt3();
int[] vekt = {0,-9,-23,1};
int[][] Mat = {{11,0,1,23},{17,4,-1,-1},
{8,-23,9,0},{34,12,-5,7}};
System.out.println("Vektor :");
p3.print(vekt);
System.out.println("Matrix :");
p3.print(Mat);
System.out.println("Der Index des größten Werts ist: "
+p3.groessterIndex(vekt));
System.out.println("transponierte Matrix: ");
p3.print(p3.Transpon(Mat));
System.out.println("Matrix-Vektor Mutiplikation:");
p3.print(p3.MatVektProdukt(Mat,vekt));
System.out.println("BerechnungMatVekt:");
System.out.println(p3.BerechnungMatVekt(Mat, vekt));
System.out.println(p3.HauptDgroesserneben(Mat));
}
}
```


Im "public static void main" Teil gibt es vieles, was für diese
Vektorenmultiplikation nicht wichtig ist. Es müssen bei dieser
Aufgabe nämlich noch andere Teilaufgaben erledigt werden.
Ich muss aber erst einmal das hier verstehen. 

Hat jemand eine Idee?

Vielen Dank.


----------



## Final_Striker (29. Nov 2009)

was genau verstehst du nicht oder wo genau liegt dein problem?


----------



## Empire Phoenix (29. Nov 2009)

Brachst du jetzt programmtechnische(guck dir arrays an,sowie for each schleifen) oder mathenachhilfe(vektoren addieren, durch addieren der jeweiligen komponenten (a+b = (a.x+b.x,a.y+b.y,...,a.n+b.n)))?


----------



## partsch (29. Nov 2009)

er wollte von uns einen Ansatz für die methode skalaresProduckt nehme ich an
ich glaube du musst jede reihe vom ersten vektor mit jeder spalte vom zweiten vektor
multiplizieren und daraus bildet sich dann ein neuer Vektor mit gleicher größe wie der zweite
ich weiß es grad net nur das mein Lehrer uns das mit ner Gruppensex-Metapha beigebracht hat^^


----------



## noobinjava (30. Nov 2009)

vektoren multiplizieren ist mathematisch nicht das problem:   


(5,3)  * (4,5)    =     5*3 + 4*5 = 15 + 20 = 35


ja, ich muss was mit arrays bilden, ok, aber bei der multiplikation geht es nicht weiter:

vekt3 = vekt1 * vekt2;

warum geht es hier nicht weiter?

grüße


----------



## Empire Phoenix (30. Nov 2009)

In java ist es nicht möglich eigene operatoren zu definieren/benutzen wenn du das meinst, dh. du mus seine methode dafür schreiben.


----------



## noobinjava (30. Nov 2009)

hm, das kann eigentlich nicht sein, eigene methoden zu schreiben haben wir noch nicht kennen gelernt.
das kann doch nicht so kompliziert sein, oder?


----------



## noobinjava (30. Nov 2009)

kann wirklich keiner weiterhelfen? habe ich mich zu unklar ausgedrückt?


----------



## Mizar (30. Nov 2009)

Deinem Eingangs gepostetem Code nach:


noobinjava hat gesagt.:


> ```
> public int SkalarProdukt(int [] vekt1, int [] vekt2) {
> // hier ergänzen
> }
> ```


könnte man es zum Beispiel so implementieren:

```
public int skalarProdukt(int[] vekt1, int[] vekt2)
{
    int ergebnis = 0;
    for(int index = 0; index != vekt1.length; ++index) {
        ergebnis += vekt1[index] * vekt2[index];
    }
    return ergebnis;
}
```
Wobei man sich wohl noch überlegen sollte was man macht, wenn die beiden übergebenen Arrays nicht die gleiche Länge besitzen.


----------

