Я не знаю, является ли это хорошим способом сделать это, но он кажется ближе к тому, что вы просите, чем последние пару вещей, которые я пробовал.И он использует обозначение, которое вы выбрали, за исключением того, что Mathematica переупорядочивает лямбда + 1 на 1 + лямбда на выходе.
Сначала давайте определим ваш оператор умножения
times={{0,0,0},{0,1,0},{0,lambda,0},{0,lambda+1,0},
{1,0,0},{1,1,1},{1,lambda,lambda},{1,lambda+1,lambda+1},
{lambda,0,0},{lambda,1,lambda},{lambda,lambda,lambda+1},{lambda,lambda+1,1},
{lambda+1,0,0},{lambda+1,1,lambda+1},{lambda+1,lambda,1},{lambda+1,lambda+1,lambda}};
Это именно то, что выза исключением моего сглаживания, что в вектор.
Теперь давайте покажем метод, несколько похожий на Solve
, который может работать для вас.
Предположим, в качестве первого примера вы удивляетесь, есть ли лямбда+ 1 * что-то = лямбда + 1
Cases[times,{lambda+1,x_,lambda+1}]
и это показывает, что существует только одно значение, которое удовлетворяет этому, тождество.
{{1+lambda,1,1+lambda}}
Другой пример
Cases[times,{lambda+1,x_,lambda}]
дает вам
{{1+lambda,1+lambda,lambda}}
Другой пример, есть ли лямбда + 1 * что-нибудьBUTlambda + 1 = лямбда
Cases[times,{lambda+1,Except[lambda+1],lambda}]
дает вам
{}
, который показываеттакого значения нет.
Другой пример
Cases[times,{lambda+1,x_,Except[x_]}]
дает вам
{{1+lambda,1,1+lambda},{1+lambda,lambda,1},{1+lambda,1+lambda,lambda}}
Это имеет большую гибкость, поскольку вы можете иметь неизвестных в любой позиции.Но из-за этой гибкости он не просто возвращает вам одно значение.Возможно, вы можете использовать это для того, о чем вы думаете, или, возможно, вы можете придумать способы приспособить это к тому, что вы пытаетесь сделать.
Если вы хотите извлечь одно значение результата, вы можете делать что-тонапример:
Cases[times,{lambda+1,x_,lambda}:>x]
, который будет возвращать
{1+lambda}
, который является значением или значениями x, которые удовлетворяли этому.
Проверьте это внимательно, чтобы увидеть,Вы можете найти любые ошибки, прежде чем зависеть от этого.