*
Справка
evalm(...) - вычисление матричного выражения
(от evaluate a matrix expression).
Выражение может содержать идентификаторы матриц,
векторов и операции сложения(+), вычитания(-),
умножения на скаляр(*), умножения матриц (&*),
возведения в степень (^).
solve(u,p) решает систему уравнений.
u - множество (set) уравнений,
p - множество переменных, относительно которых
требуется решить систему.
Результат выдается в виде множества решений.
convert(p,t) преобразует переменную p
к типу t. Не все пребразования возможны.
Например, set в vector непосредственно не преобразуется.
Приходится set преобразовать в list (список), а list уже
в vector.
subs(p,v) - подстановка правил из p в выражение v.
Например, subs({x=3,y=5},a*x+y); даст 3a+5.
*
p1 := vector([x1, y1]);
p2 := vector([x2, y2]);
p3 := vector([x3, y3]);
s12 := p2-p1;
s13 := p3-p1;
s23 := p3-p2;
mods12 := sqrt(s12*s12); mods13 := sqrt(s13*s13); mods23 := sqrt(s23*s23);
b1 := evalm(p1+t1*(s12/mods12-s31/mods31));
b2 := evalm(p3+t3*(s31/mods31-s23/mods23));
b3 := evalm(p2+t2*(s23/mods23-s12/mods12));
t12 := solve(convert(evalm(b1-b2), set), {t1, t2});
tp12 := convert(convert(subs(t12, convert(b1, set)), list), vector);
t13 := solve(convert(evalm(b1-b3), set), {t1, t3});
tp13 := convert(convert(subs(t13, convert(b1, set)), list), vector);
evalm(tp12-tp13)
Вопрос : какую роль играют t1 и t2 и непонятно что за вектор b1 := evalm(p1+t1*(s12/mods12-s31/mods31)); ибо идет он странно.