0

Prologで2つのベクトルを乗算しようとしていますが、それらのベクトルに虚数が含まれていると、それを機能させることができません。これまでの私のコード:

vector_product([X|Xs],[Y|Ys],OP) :-
    inner(Xs,Ys,OP1),
    OP is X*Y+OP1.
vector_product([],[],0).
4

1 に答える 1

2

これがあなたを助けることができるかどうか見てください...

ウィキペディアの数式:

% (a+bi) + (c+di) = (a+c) + (b+d)i
c_sum((A,B), (C,D), (E,F)) :- E is A+C, F is B+D.

% (a+bi) (c+di) = (ac-bd) + (bc+ad)i
c_mul((A,B), (C,D), (E,F)) :- E is A*C - B*D, F is B*C + A*D.

番号はとして表され(Real, Imaginary)ます。

vector_product([X|Xs], [Y|Ys], OP) :-
    vector_product(Xs, Ys, OP1),
    c_mul(X, Y, M),
    c_sum(M, OP1, OP).
vector_product([], [], (0,0)).
于 2013-01-22T08:18:06.050 に答える