Olumlu ve olumsuz güçler liste halinde nasıl ayrılır / çıkarılır?
Aug 18 2020
Aşağıdaki ifadeye sahibim
expr = x1^d1 * x2^d2 * x3^d3;
nerede d1,d2,d3
negatif değerler / ifade içerebilir, yani genel olarak bunlar d1,d2,d3
sayısal değerler olmayabilir. Söyle
d1 = 4 d;
d2 = -5 e;
d3 = -6 d;
with assumption d, e are positive.
Soru: Biri pozitif üs ve diğeri negatif üs içeren iki liste yapmanın bir yolu var mı?
Şu anki denemem, Exponent
bu terimlerin her biri için kullanmak ve onları pozitif ve negatif için test etmek.
Yanıtlar
3 BobHanlon Aug 18 2020 at 01:42
$Version
(* "12.1.1 for Mac OS X x86 (64-bit) (June 19, 2020)" *)
Clear["Global`*"]
expr = x1^d1*x2^d2*x3^d3;
exponents =
Cases[expr, x_^p_. :> p, 1] /. {d1 -> 4 d, d2 -> -5 e, d3 -> -6 d}
(* {4 d, -5 e, -6 d} *)
pos = Assuming[{d > 0, e > 0}, Select[exponents, Simplify[# > 0] &]]
(* {4 d} *)
neg = Assuming[{d > 0, e > 0}, Select[exponents, Simplify[# < 0] &]]
(* {-5 e, -6 d} *)
1 kglr Sep 02 2020 at 05:45
Ayrıca kullanabilirsiniz Internal`SyntacticNegativeQ
ile GeneralUtilities`SelectDiscard
, GroupBy
, Cases
, DeleteCases
, Select
veya Pick
aşağıdaki gibi:
expr = x1^d1*x2^d2*x3^d3
x1^(4 d) x2^(-5 e) x3^(-6 d)
exponents = Exponent[expr, {x1, x2, x3}]
{4 d, -5 e, -6 d}
{neg, pos} = GeneralUtilities`SelectDiscard[Internal`SyntacticNegativeQ] @ exponents
{neg, pos} = GroupBy[exponents, Internal`SyntacticNegativeQ] /@ {True, False}
{neg, pos} = Cases[#@_?Internal`SyntacticNegativeQ]@exponents & /@
{Identity, Except}
{neg, pos} = DeleteCases[#@_?Internal`SyntacticNegativeQ] @ exponents & /@
{Except, Identity}
{neg, pos} = Select[#@*Internal`SyntacticNegativeQ]@exponents & /@
{Identity, Not}
{neg, pos} = Pick[exponents,
Internal`SyntacticNegativeQ /@ exponents, #] & /@ {True, False}
hepsi ver
{{-5 e, -6 d}, {4 d}}
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı