У меня есть очень сложное математическое выражение, которое я хотел бы упростить, используя новый, возможно, безразмерный параметр.
Пример моего выражения:
K=a*b*t/((t+f)c*d);
(фактическое выражение - чудовищно большой, тысячи символов.) Я хотел бы заменить все вхождения выражения t / (t + f) на p
p=t/(t+f);
Цель здесь - найти замену, чтобы все t и f были заменены на p. В данном случае замена p является безразмерным параметром, поэтому она кажется хорошей заменой кандидата.
Я не смог понять, как это сделать в математике (или, если это возможно). Я попробовал:
eq1= K==a*b*t/((t+f)c*d);
eq2= p==t/(t+f);
Solve[{eq1,eq2},K]
Неудивительно, что это не работает. Если бы существовал способ заставить его решать для K в терминах p, a, b, c, d , это могло бы сработать, но я могу » Я тоже не знаю, как это сделать. Мысли?
Редактировать №1 (10.11.11 - 1:30) [удалено для упрощения]
Хорошо, новый такт. Я принял p = ton / (ton + toff) и умноженное p на несколько выражений. Я знаю, что p может быть полным лы устранены. Новое выражение (в терминах p) -
testEQ = A B p + A^2 B p^2 + (A+B)p^3;
. Затем я сделал замену p и вызвал (нормальный) FullSimplify, дав мне это выражение.
testEQ2= (ton (B ton^2 + A^2 B ton (toff + ton) +
A (ton^2 + B (toff + ton)^2)))/(toff + ton)^3;
Наконец, я попробовал все предложения ниже, кроме последнего (пока не знаю, как это работает!)
Сработала только опция исключения. Так что я думаю, что с этого момента я попробую этот метод. Спасибо.
EQ1 = a1 == (ton (B ton^2 + A^2 B ton (toff + ton) +
A (ton^2 + B (toff + ton)^2)))/(toff + ton)^3;
EQ2 = P1 == ton/(ton + toff);
Eliminate[{EQ1, EQ2}, {ton, toff}]
A B P1 + A^2 B P1^2 + (A + B) P1^3 == a1
Я должен добавить, что если цель состоит в том, чтобы сделать все возможные замены, оставив остальные, я все еще не знаю, как это сделать. Но похоже, что , если подстановка может полностью удалить несколько переменных, лучше всего работает Eliminate [].