DMUG-Archiv 1998

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

Re: Real- und Imaginaerteil von symbolischen Expressions

Man kann eine Antwort in relativ kurzer Zeit bekommen:

In[1]:= $Version

Out[1]= Linux 3.0 (April 25, 1997)

In[2]:= !!reim.m

expr =  (
Exp[I*r]*(I*imR*wmR + imR' -
    (L*(Lr*imR*(-Rr + I*Lr*w) + (iSd + I*iSq)
         (Lr*Rr + I*(L-Lr)*(L+Lr)*w) + (-L^2+Lr^2)
         (I*iSd*wmR - iSq*wmR + iSd' + I*iSq'))) /
    (L*Lr^2 +
      Exp[I*r]*(-Lr^2*imR + (L^2+Lr^2)*(iSd + I*isq))*L')) ) /. 
Derivative[1][de_] :> ToExpression[ToString[de]<>"strich"];
imagteil = 
Map[Simplify, Factor[ComplexExpand[Im[expr], TargetFunctions -> {Re,
Im}]]];
realteil = 
Map[Simplify, Factor[ComplexExpand[Re[expr], TargetFunctions -> {Re,
Im}]]];
newexpr = realteil + I imagteil;
vars = Union[Cases[newexpr,  _Symbol, -1]];
Print["variables are ", vars];
numvals = Map[ ( # -> Random[])&,vars];
Print["check at numerical values ", Chop[expr- newexpr /. numvals]];
Format[Continuation[_]] := "";
Print[" the new expression is : \n"];
newexpr//InputForm

In[2]:= <<reim.m
variables are {imR, imRstrich, iSd, iSdstrich, isq, iSq, iSqstrich, L, Lr, 
 
>    Lstrich, r, Rr, w, wmR}
check at numerical values 0
 the new expression is : 


Out[2]//InputForm= 
  (iSd*iSdstrich*L^5*Lstrich + isq*iSqstrich*L^5*Lstrich + 
      imRstrich*iSd*L^3*Lr^2*Lstrich - imR*iSdstrich*L^3*Lr^2*Lstrich - 
      imR*imRstrich*L*Lr^4*Lstrich + imRstrich*iSd*L*Lr^4*Lstrich + 
      imR*iSdstrich*L*Lr^4*Lstrich - iSd*iSdstrich*L*Lr^4*Lstrich - 
      isq*iSqstrich*L*Lr^4*Lstrich + imR*iSd*L^3*Lr*Lstrich*Rr - 
      iSd^2*L^3*Lr*Lstrich*Rr - isq*iSq*L^3*Lr*Lstrich*Rr - 
      imR^2*L*Lr^3*Lstrich*Rr + 2*imR*iSd*L*Lr^3*Lstrich*Rr - 
      iSd^2*L*Lr^3*Lstrich*Rr - isq*iSq*L*Lr^3*Lstrich*Rr - 
      iSd*isq*L^5*Lstrich*w + iSd*iSq*L^5*Lstrich*w - 
      imR*isq*L^3*Lr^2*Lstrich*w - imR*iSq*L^3*Lr^2*Lstrich*w - 
      imR*isq*L*Lr^4*Lstrich*w + iSd*isq*L*Lr^4*Lstrich*w + 
      imR*iSq*L*Lr^4*Lstrich*w - iSd*iSq*L*Lr^4*Lstrich*w + 
      iSd*isq*L^5*Lstrich*wmR - iSd*iSq*L^5*Lstrich*wmR + 
      imR*isq*L^3*Lr^2*Lstrich*wmR + imR*iSq*L^3*Lr^2*Lstrich*wmR + 
      imR*isq*L*Lr^4*Lstrich*wmR - iSd*isq*L*Lr^4*Lstrich*wmR - 
      imR*iSq*L*Lr^4*Lstrich*wmR + iSd*iSq*L*Lr^4*Lstrich*wmR + 
      (imRstrich*L^2*Lr^4 + iSdstrich*L^2*Lr^2*(L^2 - Lr^2) + 
         imRstrich*iSd^2*L^4*Lstrich^2 + imRstrich*isq^2*L^4*Lstrich^2 - 
         2*imR*imRstrich*iSd*L^2*Lr^2*Lstrich^2 + 
         2*imRstrich*iSd^2*L^2*Lr^2*Lstrich^2 + 
         2*imRstrich*isq^2*L^2*Lr^2*Lstrich^2 + 
         imR^2*imRstrich*Lr^4*Lstrich^2 - 
         2*imR*imRstrich*iSd*Lr^4*Lstrich^2 + 
         imRstrich*iSd^2*Lr^4*Lstrich^2 + 
         imRstrich*isq^2*Lr^4*Lstrich^2 + imR*L^2*Lr^3*Rr - 
         iSd*L^2*Lr^3*Rr + iSq*L^4*Lr^2*w - iSq*L^2*Lr^4*w - 
         iSq*L^4*Lr^2*wmR + iSq*L^2*Lr^4*wmR)*Cos[r] + 
      L*Lr^2*Lstrich*(imRstrich*iSd*L^2 - imR*imRstrich*Lr^2 + 
         imRstrich*iSd*Lr^2 - imR*isq*L^2*wmR - imR*isq*Lr^2*wmR)*Cos[2*r]
\
- iSqstrich*L^4*Lr^2*Sin[r] + iSqstrich*L^2*Lr^4*Sin[r] + 
      iSq*L^2*Lr^3*Rr*Sin[r] + iSd*L^4*Lr^2*w*Sin[r] + 
      imR*L^2*Lr^4*w*Sin[r] -  iSd*L^2*Lr^4*w*Sin[r] - 
      iSd*L^4*Lr^2*wmR*Sin[r] - imR*L^2*Lr^4*wmR*Sin[r] + 
      iSd*L^2*Lr^4*wmR*Sin[r] - imR*iSd^2*L^4*Lstrich^2*wmR*Sin[r] - 
      imR*isq^2*L^4*Lstrich^2*wmR*Sin[r] + 
      2*imR^2*iSd*L^2*Lr^2*Lstrich^2*wmR*Sin[r] - 
      2*imR*iSd^2*L^2*Lr^2*Lstrich^2*wmR*Sin[r] - 
      2*imR*isq^2*L^2*Lr^2*Lstrich^2*wmR*Sin[r] - 
      imR^3*Lr^4*Lstrich^2*wmR*Sin[r] + 
      2*imR^2*iSd*Lr^4*Lstrich^2*wmR*Sin[r] - 
      imR*iSd^2*Lr^4*Lstrich^2*wmR*Sin[r] - 
      imR*isq^2*Lr^4*Lstrich^2*wmR*Sin[r] - 
      imRstrich*isq*L^3*Lr^2*Lstrich*Sin[2*r] - 
      imRstrich*isq*L*Lr^4*Lstrich*Sin[2*r] - 
      imR*iSd*L^3*Lr^2*Lstrich*wmR*Sin[2*r] + 
      imR^2*L*Lr^4*Lstrich*wmR*Sin[2*r] - 
      imR*iSd*L*Lr^4*Lstrich*wmR*Sin[2*r])/
    (L^2*Lr^4 + iSd^2*L^4*Lstrich^2 + isq^2*L^4*Lstrich^2 - 
      2*imR*iSd*L^2*Lr^2*Lstrich^2 + 2*iSd^2*L^2*Lr^2*Lstrich^2 + 
      2*isq^2*L^2*Lr^2*Lstrich^2 + imR^2*Lr^4*Lstrich^2 - 
      2*imR*iSd*Lr^4*Lstrich^2 + iSd^2*Lr^4*Lstrich^2 + 
      isq^2*Lr^4*Lstrich^2 + 2*L*Lr^2*(-(imR*Lr^2) + iSd*(L^2 + Lr^2))*
       Lstrich*Cos[r] - 2*isq*L*Lr^2*(L^2 + Lr^2)*Lstrich*Sin[r]) + 
   (I*(-(iSdstrich*isq*L^5*Lstrich) + iSd*iSqstrich*L^5*Lstrich - 
        imRstrich*isq*L^3*Lr^2*Lstrich - imR*iSqstrich*L^3*Lr^2*Lstrich - 
        imRstrich*isq*L*Lr^4*Lstrich + iSdstrich*isq*L*Lr^4*Lstrich + 
        imR*iSqstrich*L*Lr^4*Lstrich - iSd*iSqstrich*L*Lr^4*Lstrich - 
        imR*isq*L^3*Lr*Lstrich*Rr + iSd*isq*L^3*Lr*Lstrich*Rr - 
        iSd*iSq*L^3*Lr*Lstrich*Rr - imR*isq*L*Lr^3*Lstrich*Rr + 
        iSd*isq*L*Lr^3*Lstrich*Rr + imR*iSq*L*Lr^3*Lstrich*Rr - 
        iSd*iSq*L*Lr^3*Lstrich*Rr - iSd^2*L^5*Lstrich*w - 
        isq*iSq*L^5*Lstrich*w + imR^2*L*Lr^4*Lstrich*w - 
        2*imR*iSd*L*Lr^4*Lstrich*w + iSd^2*L*Lr^4*Lstrich*w + 
        isq*iSq*L*Lr^4*Lstrich*w + iSd^2*L^5*Lstrich*wmR + 
        isq*iSq*L^5*Lstrich*wmR - imR^2*L*Lr^4*Lstrich*wmR + 
        2*imR*iSd*L*Lr^4*Lstrich*wmR - iSd^2*L*Lr^4*Lstrich*wmR - 
        isq*iSq*L*Lr^^4*Lstrich*wmR + 
        (iSqstrich*L^2*Lr^2*(L^2 - Lr^2) - iSq*L^2*Lr^3*Rr - 
           iSd*L^4*Lr^2*w - imR*L^2*Lr^4*w + iSd*L^2*Lr^4*w + 
           iSd*L^4*Lr^2*wmR + imR*L^2*Lr^4*wmR - iSd*L^2*Lr^4*wmR + 
           imR*iSd^2*L^4*Lstrich^2*wmR + imR*isq^2*L^4*Lstrich^2*wmR - 
           2*imR^2*iSd*L^2*Lr^2*Lstrich^2*wmR + 
           2*imR*iSd^2*L^2*Lr^2*Lstrich^2*wmR + 
           2*imR*isq^2*L^2*Lr^2*Lstrich^2*wmR + imR^3*Lr^4*Lstrich^2*wmR - 
           2*imR^2*iSd*Lr^4*Lstrich^2*wmR + imR*iSd^2*Lr^4*Lstrich^2*wmR + 
           imR*isq^2*Lr^4*Lstrich^2*wmR)*Cos[r] + 
        L*Lr^2*Lstrich*(imRstrich*isq*L^2 + imRstrich*isq*Lr^2 + 
           imR*iSd*L^2*wmR - imR^2*Lr^2*wmR + imR*iSd*Lr^2*wmR)*Cos[2*r] + 
        iSdstrich*L^4*Lr^2*Sin[r] + imRstrich*L^2*Lr^4*Sin[r] - 
        iSdstrich*L^2*Lr^4*Sin[r] + imRstrich*iSd^2*L^4*Lstrich^2*Sin[r] + 
        imRstrich*isq^2*L^4*Lstrich^2*Sin[r] - 
        2*imR*imRstrich*iSd*L^2*Lr^2*Lstrich^2*Sin[r] + 
        2*imRstrich*iSd^2*L^2*Lr^2*Lstrich^2*Sin[r] + 
        2*imRstrich*isq^2*L^2*Lr^2*Lstrich^2*Sin[r] + 
        imR^2*imRstrich*Lr^4*Lstrich^2*Sin[r] - 
        2*imR*imRstrich*iSd*Lr^4*Lstrich^2*Sin[r] + 
        imRstrich*iSd^2*Lr^4*Lstrich^2*Sin[r] + 
        imRstrich*isq^2*Lr^4*Lstrich^2*Sin[r] + imR*L^2*Lr^3*Rr*Sin[r] - 
        iSd*L^2*Lr^3*Rr*Sin[r] + iSq*L^4*Lr^2*w*Sin[r] - 
        iSq*L^2*Lr^4*w*Sin[r] - iSq*L^4*Lr^2*wmR*Sin[r] + 
        iSq*L^2*Lr^4*wmR*Sin[r] + imRstrich*iSd*L^3*Lr^2*Lstrich*Sin[2*r]
- 
        imR*imRstrich*L*Lr^4*Lstrich*Sin[2*r] + 
        imRstrich*iSd*L*Lr^4*Lstrich*Sin[2*r] - 
        imR*isq*L^3*Lr^2*Lstrich*wmR*Sin[2*r] - 
        imR*isq*L*Lr^4*Lstrich*wmR*Sin[2*r]))/
    (L^2*Lr^4 + iSd^2*L^4*Lstrich^2 + isq^2*L^4*Lstrich^2 - 
      2*imR*iSd*L^2*Lr^2*Lstrich^2 + 2*iSd^2*L^2*Lr^2*Lstrich^2 + 
      2*isq^2*L^2*Lr^2*Lstrich^2 + imR^2*Lr^4*Lstrich^2 - 
      2*imR*iSd*Lr^4*Lstrich^2 + iSd^2*Lr^4*Lstrich^2 + 
      isq^2*Lr^4*Lstrich^2 + 2*L*Lr^2*(-(imR*Lr^2) + iSd*(L^2 + Lr^2))*
       Lstrich*Cos[r] - 2*isq*L*Lr^2*(L^2 + Lr^2)*Lstrich*Sin[r])

In[3]:= TimeUsed[]

Out[3]= 30.11

Rolf Mertig
Mertig Research & Consulting  
Amsterdam, The Netherlands
http://www.mertig.com  



Verweise:
Real- und Imaginaerteil von symbolischen Expressions
Ernesto Rico-Schmidt, 24.09.1998

Frühere

 

Chronologischer Index

 

Spätere

Vorherige

 

Thematischer Index

 

Nächste

DMUG-Archiv, http://www.mathematica.ch/dmug-liste.html; Letzte Änderung: 08.09.2003 20:44