Здравствуйте, объсните, пожалуйста, как текст программы отражает суть доказательства теоремы о том, что все медианы треугольника пересекаются в одной точке(это пример с лекции).
p1:=vector([x1,y1]):
p2:=vector([x2,y2]):
p3:=vector([x3,y3]):
m1:=evalm(p1+t1*(p2-p1+p3-p1)):
m2:=evalm(p2+t2*(p1-p2+p3-p2)):
m3:=evalm(p3+t3*(p1-p3+p2-p3)):
t12:=solve(convert(evalm(m1-m2),set),{t1,t2}):
tp12:=convert(convert(subs(t12,convert(m1,set)),list),vector):
t13:=solve(convert(evalm(m1-m3),set),{t1,t3}):
tp13:=convert(convert(subs(t13,convert(m1,set)),list),vector):
evalm(tp12-tp13);
Немного о функциях из этого примера:
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.
Немного о функциях, которые могут быть полезны для
выполнения задания:
transpose(a) транспонирование матрицы a.
evalm(transpose(u)&*v) - скалярное произведение
векторов u и v.
Результат выполнения [0,0].
Объясните, как этот результат и программа доказывают теорему.
t12:=solve(convert(evalm(m1-m2),set),{t1,t2}):--------------------------------------------
solve(u,p) решает систему уравнений.
u - множество (set) уравнений,
p - множество переменных, относительно которых
требуется решить систему.
Непонятно, где в формуле уравнения? m1-m2 сначала вектор [], потом множество set,
сосстоящее из ВЫРАЖЕНИЙ(не уравнений) разностей координат в-ров m1 и m2, которые в свою очередь содержат t1 и t2. Кстати, почему t1 и t2 надо вообще определять, они же равны 1/2(складываем (p2-p1) и (p3-p1) - векторы сторон треуг по правилу параллелограмма, по свойству которого его диагонали делятся точкой пересечения пополам, складываем половинную сумму с p1 иполучаем радиус-вектор середины 3-ей стороны треуг).