- das Skalarprodukt von A und B ausgibt, falls A und B Vektoren passender Dimension sind sowie
- das Vektor-Matrixprodukt von A und B ausgeben, falls A eine Matrix und B ein Vektor passender Dimension sind.
Das alles OHNE numpy und so
das mit dem skalarprodukt von 2 Vektoren hab ich geschafft... aber das mit dem Vektor matrix-produkt ist find ich schwer.
ausserdem habe ich eine "negiere" Funktion definiert die einen Vektor als auch eine Matrix "negiert" also jeden Eintrag mit -1 multipliziert
mein Programm sieht soweit so aus:
Code: Alles auswählen
vec = [2,2,2]
matrix = [[3,3,3], [3,3,3]]
def negiere(liste):
if isinstance(liste[0], list):
return [negiere(item) for item in liste]
liste = [-x for x in liste]
return liste
def product(a,b):
jj = sum(a[x]*b[x] for x in range(len(b))) #Vektorprodukt
if isinstance(a[0], list) or isinstance(b[0], list): # passt diese Überprüfung ? ob eins der beiden eine liste enthält?
# also ob eins der beiden eine matrix ist?
#hier sollte das vektor-matrixprodukt stehen
print negiere(matrix)
#print product(vec,matrix)
ich weiss zwar wie ich auf die einzelnen Einträge der matrix komme
einfach mit 2 for schleifen...
aber wie mache ich da das skalarprodukt von einer liste(Vektor), mit einer liste -in einer liste (matrix)
es sollte also bei dem
gegebenen Vektor =[ 2,2,2] und
gegebener Matrix =[ [3,3,3], [3,3,3] ]
hier muss man ein skalarprodukt von den listen anwenden:
Produkt = (2*3 + 2*3 + 2*3) ; (2*3 + 2*3 + 2*3) = [18, 18]