Векторный продукт с использованием Леви-Чивита - PullRequest
0 голосов
/ 25 марта 2020

Я сделал программу, которая отображает таблицу перестановок (0,1,2) и символ Леви-Чивита. Теперь я должен сделать программу, которая вычисляет векторное произведение 2 векторов, используя то, что у меня есть ниже. Как я могу это сделать? Это вывод у меня сейчас

from itertools import product

def epsilon(indexes):
    indexes = list(indexes)
    if len(indexes) != len(set(indexes)):
        return 0
    elif indexes == sorted(indexes):
        return 1
    else:
        for i in range(len(indexes)):
            for j in range(len(indexes) - 1):
                if indexes[i] > indexes[j + 1]:
                    indexes[j], indexes[j + 1] = indexes[j + 1], indexes[j]
                    return -1 * epsilon(indexes)

def draw_table(all_cases):
    epsilonValues = []
    for case in all_cases:
        epsilonValues.append(epsilon(case))
    print('| i | j | k ||| L-C')
    print('|===========|||======')
    k = '|___|___|___|||___'
    print(k)
    i = 0
    for case in all_cases:
        a, b, c = str(case[0]), str(case[1]), str(case[2])
        print('| ' + a + ' | ' + b + ' | ' + c + ' ||| '+ str(epsilonValues[i]))
        i += 1
        print(k)

draw_table(list(product([0, 1, 2], repeat=3)))

1 Ответ

0 голосов
/ 25 марта 2020

Здесь вы go:

a=[2,3,1]
b=[1,2,3]

c=[0,0,0] # initialize

for k in [0,1,2]:
    for i,j in product([0,1,2],repeat=2):
        c[k]=c[k]+ a[i]*b[j]*epsilon([i,j,k])

print(a,b,c) # c is the cross product of the vectors a and b.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...