Ich will in Python ein inneres Produkt von Vektoren programmieren.
Ich will das Ganze mit Listen machen, also die Vektoren x ([x1, x2,..., xn]) und y ([y1, y2,..., yn]) sind Listen.
Ich will, dass eine Matrix mit n Zeilen (also eine Liste mit n "Unterlisten") erstellt wird.
Die Zeilen der Matrix sind der Vektor x multipliziert mit dem "n-ten" Eintrag von y.
Also beispielsweise: [[x1*y1, x2*y1, x3*y1], [x1*y2, x2*y2, x3*y2], [x1*y3, x2*y3, x3*y3]]
Danach will ich die Matrix transponieren. Für das Transponieren habe ich schon ein Programm, also muss
ich da nichts schreiben. Außerdem habe ich das Matrixvektorprodukt und das Skalarprodukt zur Verfügung.
Für Hilfe wäre ich sehr dankbar.
Code: Alles auswählen
def skalprod(a,b):
r=0
for i in range(len(a)):
r=r+a[i]*b[i]
return r
def matvekprod(A,v):
r=[]
for i in range(len(A)):
r=r+ [skalprod(A[i],v)]
return r
def transcomp(A):
return [[zeile[sp] for zeile in A] for sp in range(len(A[0]))]
def matprod(I,B):
if len(I) != len(transcomp(B)):
print "Falsch"
return
C=transcomp(I)
r=[]
for i in range(len(I)):
r=r+ [matvekprod(C,B[i])]
return r