Obtenir mathematica pour simplifier l'expression à une autre équation

J'ai un très compliquée mathematica expression que j'aimerais simplifier la vie en utilisant une nouvelle, éventuellement paramètre sans dimension.

Un exemple de mon expression est:

K=a*b*t/((t+f)c*d);

(l'expression est monstrueusement grand, des milliers de caractères). J'aimerais remplacer toutes les occurrences de l'expression t/(t+f) avec p

p=t/(t+f);

Le but ici est de trouver un de remplacement, de sorte que tous les t et f sont remplacés par les p. Dans ce cas, le remplacement de p est un adimensionnée paramètre, donc il semble être un bon candidat de remplacement.

Je n'ai pas été en mesure de comprendre comment faire cela dans mathematica (ou si c'est possible). J'ai essayé:

eq1= K==a*b*t/((t+f)c*d);
eq2= p==t/(t+f);
Solve[{eq1,eq2},K]

Il n'est pas surprenant, cela ne fonctionne pas. Si il y avait un moyen de le forcer à résoudre pour K en termes de p,a,b,c,d, cela pourrait fonctionner, mais je ne peux pas comprendre comment le faire. Pensées?


Edit #1 (11/10/11 - 1:30)
[supprimé pour simplifier]

OK, nouvelle preuve de tact. J'ai pris p=ton/(ton+toff) et multiplié p par plusieurs expressions. Je sais que p peut être complètement éliminé. La nouvelle expression (en termes de p) est

testEQ = A B p + A^2 B p^2 + (A+B)p^3;

Puis j'ai fait la substitution de p, et a appelé (normal) FullSimplify, de me donner cette expression.

testEQ2= (ton (B ton^2 + A^2 B ton (toff + ton) + 
   A (ton^2 + B (toff + ton)^2)))/(toff + ton)^3;

Enfin, j'ai essayé toutes les suggestions ci-dessous, à l'exception de la dernière (pas sûr de savoir comment il fonctionne encore!)

Seulement les éliminer option travaillé. Donc je suppose que je vais essayer cette méthode à partir de maintenant. Merci.

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

Devrais-je ajouter, si l'objectif est de rendre tous les substitutions sont possibles, laissant le reste, je ne sais toujours pas comment faire. Mais il semble que si une substitution peuvent complètement éliminer quelques variables, à Éliminer[] fonctionne le mieux.

Ne f se produisent aussi à l'extérieur de l'expression à remplacer? Parce que sinon, il suffit de remplacer f->t/p-t devrait probablement faire l'affaire.
Questions connexes: stackoverflow.com/questions/6074801/... stackoverflow.com/questions/6210321/...
celte--le remplacement des f->t/p-t ne pas éliminer t! f peut ou peut ne pas apparaître dans des situations hors de 'p'. C'est un 31,000 expression de caractère, mais peut-être que si tous les t, f sont développés, c'est juste un simple remplacement. Assistant--allons jeter un oeil à ces gars-là.
Il faut éliminer tous les t/(t+f)s (après simplification) parce que t/(t+(t/p-t)) = t/(t/p) = p. Mais de toute façon, si f peut se produire en dehors de cette expression, cette solution ne s'applique pas, bien sûr.
OK, ceux-ci sont utiles. Encore relativement nouveau pour Mathematica, donne-moi un peu pour essayer certaines de ces idées.

OriginalL'auteur vector07 | 2011-11-10