die Substitution Versuchen und bestätigen, dass das Ergebnis
s = R*(lat - lat0);
rho = R/Tan[lat];
f = (x^2 + (rho + s - y)^2 - rho^2)*(Sin[lat])^2;
fd = D[f, lat];
FullSimplify[fd, TransformationFunctions->{Automatic,
#/.R(lat-lat0)->s&, #/.R/Tan[lat]->rho &}];
Simplify[% == fd]
unverändert ist und der Ausgang ist True
Beachten Sie, dass Sie vorher definiert s=R*(lat-lat0)
so scheint es, dass Sie R(lat-lat0)
mit R(lat-lat0)
ersetzen Versuchen Sie undefined s
, bevor Sie den Austausch
vornehmen
s =.;
FullSimplify[fd, TransformationFunctions -> {Automatic,
#/.R(lat-lat0)->s&, #/.R/Tan[lat]->rho&}]
und das Ergebnis ist 2 Cos[lat](R(s-y)Cos[lat]+(R^2+x^2+(s-y)^2)Sin[lat])
Nun, warum nicht die R/Tan[lat]
Austauscharbeiten in den ursprünglichen fd
?
D[f, lat]==2 Cos[lat](x^2-R^2 Cot[lat]^2+((lat-lat0)R-y+R Cot[lat])^2) Sin[lat]+(2 R^2 Cot[lat]Csc[lat]^2+2((lat-lat0)R-y+R Cot[lat])(R-R Csc[lat]^2)) Sin[lat]^2
Hinweis gibt es keine R/Tan[lat]
, dass. Mathematica Mustervergleich ist sehr wörtlich und hat keine Fähigkeit zu verstehen, dass R/Tan[lat]==R Cot[lat]
Vor vielen Jahren gab es ein Paket, das ein Typ schrieb, die "mathematische Substitutionen" anstelle der Mathematica "literale Substitutionen", aber das ist veraltet und ich don ' Ich weiß genug, um das mit den aktuellen Versionen zu machen.
Lassen Sie uns stattdessen die R Cot[lat]
Ersetzung versuchen und undefiniert Rho, so dass keine Substitution rückgängig gemacht wird.
s =.; rho =.
fd /. {R Cot[lat] -> rho}
Das Ergebnis ist 2 Cos[lat](x^2+((lat-lat0)R+rho-y)^2-R^2 Cot[lat]^2) Sin[lat]+(2 R^2 Cot[lat]Csc[lat]^2+2 ((lat-lat0)R+rho-y)(R-R Csc[lat]^2))Sin[lat]^2
Beachten Sie, dass R^2 Cot[lat]^2
bleibt und wieder wörtliche Substitution nicht weiß, dass Sie wahrscheinlich R Cot[lat]->rho
erwarten, dass in rho^2
zu ändern, so dass Regel hinzufügen
s=.; rho=.
fd /. {R Cot[lat] -> rho, R^2 Cot[lat]^2 -> rho^2}
Beachten Sie, dass R^2 Cot[lat]
bleibt und Sie wahrscheinlich gemeint, dass durch R rho
ersetzt werden, so fügen Sie diese Regel hinzu.
s =.; rho =.
fd /. {R Cot[lat]->rho, R^2 Cot[lat]^2->rho^2, R^2 Cot[lat]->R rho}
Beginnen Sie die Idee, dass Muster Substitution in Mathematica zu erhalten eine dunkle und Zwirn Flur führt zu einer Tür beschriftet werden kann „Frustration.“
Es gibt einen Trick, den Sie möglicherweise verwenden können.
Simplify[fd, R Cot[lat] == rho]
, die versuchen, fd
zu vereinfachen und versuchen, in der Regel R Cot[lat]
mit rho zu ersetzen. Und in diesem speziellen Beispiel, das funktioniert sogar mit
Simplify[fd, R/Tan[lat] == rho]
Aber es gibt keine Garantie, dass dies immer arbeitet oder tun, was Sie wollen, und in einigen Fällen wird dies tun, noch seltsame und bizarre Dinge.
Vielleicht gibt Ihnen das genug Hinweise, dass Sie etwas Fortschritte machen können.
@ Bill: Vielen Dank für Ihre Erklärung und Kommentare .... – justik