MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Trouble using Eliminate and Reduce with big examples

  • To: mathgroup at smc.vnet.net
  • Subject: [mg118132] Re: Trouble using Eliminate and Reduce with big examples
  • From: "Johannes Groß" <johannes.gross at gmx.li>
  • Date: Wed, 13 Apr 2011 05:55:18 -0400 (EDT)


Am 07.04.2011 20:16, schrieb Daniel Lichtblau:
> Johannes Gross wrote:
>> Hi,
>>
>> i am generating equation systems for dimensional analysis in
>> engineering applications. When trying to replace the dimensional
>> parameters by the dimensionless ones, i get problems with the
>> Eliminate and Reduce functions in Mathematica.
>>
>> Sometimes Eliminate works even for very big examples, sometimes it
>> doesnt. Same with Reduce.
>>
>> My equations are of the nature
>> f(x1, ... , xn)
>> pi0= f(x1,x2)
>> pi1= f(x3,x2,x4) etc.
>>
>> i want to eliminate all xn variables and i know that its possible
>> because i can do it by hand.
>>
>> I think Mathematica has problems when case-by-case-analysis requires
>> many cases. I tried to avoid this by telling that all variables are
>> positive (e.g. Reduce[{a == x^2, x > 0, a > 0}, x]). It did not
>> improve runtime.
>>
>> Example 1:
>>
>> Eliminate[{pe ==
>>     1/f 1.` (-0.35` c +
>>        1.4254109407099804` f ((R k c^2 Eb lm ll Tn (re -
>>                 1.` sma)^2)/(f^2 etaG Dg^2 P etaT))^0.5`) (-0.25` + \
>> (0.5079490874739279` R k Eb lm ll Tn (re -
>>               1.` sma)^2)/(etaG Dg^2 P etaT))^0.5`, Pi0 == etaT,
>>    Pi1 == ll, Pi2 == f*c^-1*re^1, Pi3 == pe*re^-1, Pi4 == etaG,
>>    Pi5 == k*P^-1*c^1*re^-1*Tn^1, Pi6 == R*c^-1*re^1*Eb^1,
>>    Pi7 == sma*re^-1, Pi8 == lm, Pi9 == Dg*re^-1}, {etaT, ll, f, pe,
>>    etaG, k, R, sma, lm, Dg}]
>>
>>
>> Questions:
>>
>> How can i tell mathematica to avoid case-by-case-analysis (because i
>> only need the positive, real results)?
>> How can i eliminate variables in another way than by reduce or
>> eliminate?
>> How might i improve runtime of reduce or eliminate in these cases?
>>
>> Any answer to any of the questions is warmly welcome!
>>
>> Thanks,
>>
>> Johannes
>
> This is a bit unclear to me. In particular I do not see how Example 1
> (of 1, I gather) is related to either the remarks preceding it, or to
> the first question.
>
> I can indicate how to do the elimination step, though. The issue is
> that Eliminate is, by and large, legacy code. There are a couple of
> ways to go about it. For my
>
> One is to first explicitly eliminate variables using GroebnerBasis. I
> first set up the system. Note that I changed decimal powers to exact
> rationals.
>
> eqns = {pe == (1.*(-0.25 +
>        (0.5079490874739279*Eb*k*ll*lm*R*(re - 1.*sma)^2*Tn)/
>        (Dg^2*etaG*etaT*P))^(1/2)*(-0.35*c + 1.4254109407099804*f*
>       ((c^2*Eb*k*ll*lm*R*(re -
> 1.*sma)^2*Tn)/(Dg^2*etaG*etaT*f^2*P))^(1/2)))/f,
>  Pi0 == etaT, Pi1 == ll, Pi2 == (f*re)/c, Pi3 == pe/re, Pi4 == etaG,
>  Pi5 == (c*k*Tn)/(P*re), Pi6 == (Eb*R*re)/c, Pi7 == sma/re, Pi8 == lm,
>  Pi9 == Dg/re};
>
> exprs = Apply[Subtract,eqns,1];
>
> elimvars = vars = {etaT, ll, f, pe, etaG, k, R, sma, lm, Dg}
> keepvars = Complement[Variables[exprs],elimvars];;
>
> I now compute a generating set for the system with the specified
> variables eliminated.
>
> InputForm[Timing[gb = GroebnerBasis[exprs, keepvars, elimvars,
>   MonomialOrder->EliminationOrder,
>   CoefficientDomain->InexactNumbers]]]
>
> Out[12]//InputForm=
> {0.10598400000000001, {1.*Pi1^4*Pi5^4*Pi6^4*Pi8^4 -
>    8.*Pi1^4*Pi5^4*Pi6^4*Pi7*Pi8^4 + 27.999999999999996*Pi1^4*Pi5^4*Pi6^4*
>     Pi7^2*Pi8^4 - 55.99999999999999*Pi1^4*Pi5^4*Pi6^4*Pi7^3*Pi8^4 +
>    69.99999999999999*Pi1^4*Pi5^4*Pi6^4*Pi7^4*Pi8^4 -
>    55.99999999999999*Pi1^4*Pi5^4*Pi6^4*Pi7^5*Pi8^4 +
>    27.999999999999996*Pi1^4*Pi5^4*Pi6^4*Pi7^6*Pi8^4 -
>    8.*Pi1^4*Pi5^4*Pi6^4*Pi7^7*Pi8^4 + 1.*Pi1^4*Pi5^4*Pi6^4*Pi7^8*Pi8^4 -
>    1.1049335727545884*Pi0*Pi1^3*Pi4*Pi5^3*Pi6^3*Pi8^3*Pi9^2 +
>    6.629601436527531*Pi0*Pi1^3*Pi4*Pi5^3*Pi6^3*Pi7*Pi8^3*Pi9^2 -
>    16.574003591318828*Pi0*Pi1^3*Pi4*Pi5^3*Pi6^3*Pi7^2*Pi8^3*Pi9^2 +
>    22.098671455091765*Pi0*Pi1^3*Pi4*Pi5^3*Pi6^3*Pi7^3*Pi8^3*Pi9^2 -
>    16.574003591318824*Pi0*Pi1^3*Pi4*Pi5^3*Pi6^3*Pi7^4*Pi8^3*Pi9^2 +
>    6.629601436527531*Pi0*Pi1^3*Pi4*Pi5^3*Pi6^3*Pi7^5*Pi8^3*Pi9^2 -
>    1.1049335727545884*Pi0*Pi1^3*Pi4*Pi5^3*Pi6^3*Pi7^6*Pi8^3*Pi9^2 +
>    0.3645675015084412*Pi0^2*Pi1^2*Pi4^2*Pi5^2*Pi6^2*Pi8^2*Pi9^4 -
>
> 1.9378922925187378*Pi0^2*Pi1^2*Pi2^2*Pi3^2*Pi4^2*Pi5^2*Pi6^2*Pi8^2*Pi9^4
> -
>    1.4582700060337648*Pi0^2*Pi1^2*Pi4^2*Pi5^2*Pi6^2*Pi7*Pi8^2*Pi9^4 +
>    7.751569170074951*Pi0^2*Pi1^2*Pi2^2*Pi3^2*Pi4^2*Pi5^2*Pi6^2*Pi7*Pi8^2*
>     Pi9^4 + 2.187405009050647*Pi0^2*Pi1^2*Pi4^2*Pi5^2*Pi6^2*Pi7^2*Pi8^2*
>     Pi9^4 - 11.627353755112427*Pi0^2*Pi1^2*Pi2^2*Pi3^2*Pi4^2*Pi5^2*Pi6^2*
>     Pi7^2*Pi8^2*Pi9^4 - 1.4582700060337648*Pi0^2*Pi1^2*Pi4^2*Pi5^2*Pi6^2*
>     Pi7^3*Pi8^2*Pi9^4 +
> 7.751569170074951*Pi0^2*Pi1^2*Pi2^2*Pi3^2*Pi4^2*Pi5^2*
>     Pi6^2*Pi7^3*Pi8^2*Pi9^4 + 0.3645675015084412*Pi0^2*Pi1^2*Pi4^2*Pi5^2*
>     Pi6^2*Pi7^4*Pi8^2*Pi9^4 - 1.9378922925187378*Pi0^2*Pi1^2*Pi2^2*Pi3^2*
>     Pi4^2*Pi5^2*Pi6^2*Pi7^4*Pi8^2*Pi9^4 - 0.032787772020290366*Pi0^3*Pi1*
>     Pi4^3*Pi5*Pi6*Pi8*Pi9^6 +
> 0.8369443555563412*Pi0^3*Pi1*Pi2^2*Pi3^2*Pi4^3*
>     Pi5*Pi6*Pi8*Pi9^6 +
> 0.06557554404058073*Pi0^3*Pi1*Pi4^3*Pi5*Pi6*Pi7*Pi8*
>     Pi9^6 -
> 1.6738887111126823*Pi0^3*Pi1*Pi2^2*Pi3^2*Pi4^3*Pi5*Pi6*Pi7*Pi8*
>     Pi9^6 -
> 0.032787772020290366*Pi0^3*Pi1*Pi4^3*Pi5*Pi6*Pi7^2*Pi8*Pi9^6 +
>
> 0.8369443555563412*Pi0^3*Pi1*Pi2^2*Pi3^2*Pi4^3*Pi5*Pi6*Pi7^2*Pi8*Pi9^6 +
>    0.000880544835576746*Pi0^4*Pi4^4*Pi9^8 +
> 0.05750496885399157*Pi0^4*Pi2^2*
>     Pi3^2*Pi4^4*Pi9^8 +
> 0.9388566343508825*Pi0^4*Pi2^4*Pi3^4*Pi4^4*Pi9^8}}
>
> Can now get solutions for some variables. Here we notice that the
> polynomial "system" has only one member once we eliminated the
> specified variables. So we do not expect that solutions will "solve"
> for all remaining variables.
>
> Timing[solns = Reduce[gb==0, keepvars];]
>
> Reduce::ratnz: Reduce was unable to solve the system with inexact
>     coefficients. The answer was obtained by solving a corresponding
> exact
>     system and numericizing the result.
>
> Out[16]= {6.51301, Null}
>
> Also when I looked at some solutions I saw huge coefficients in
> places. This means you will likely get garbage (due to truncation
> error) if/when you substitute values for any variables that were not
> solved in terms of others.
>
> An alternative method might be to use Reduce directly. But I have not
> figured out a way to get that to work in reasonable time. This might
> mean the problem is difficult when cast that way. Or it might indicate
> a deficiency in Reduce. Or a deficiency in me.
>
> A similar question arose recently in a different forum. It has at
> least one relaated response.
>
> http://stackoverflow.com/questions/5335006/get-branch-points-of-equation
>
> Daniel Lichtblau
> Wolfram Research

Daniel,

thanks for your advice, the example above solves very fast with the
shown method. Now i have a other equation system which seems to be a bit
more difficult for mathematica to solve.  I tried with the method you
showed above it looks like this (this time the variable names are a bit
longer):

In[18]:= eqns = {satelliteLink=A7mass ==
     1.*transmitter=A7baseMass +
      1.*satelliteLink=A7power*transmitter=A7efficiencyTransmitter*
       transmitter=A7weightFactor +
      1.*zzhornAnt=A7density*((-0.048999999999999995*
            global=A7c^2*((-0.35*global=A7c)/satelliteLink=A7carrierFrequency +
              1.4254109407099804*((dataBudget=A7requiredDownLinkRate*
                    global=A7boltzmann*global=A7c^2*satelliteLink=A7EbN0*
                    satelliteLink=A7linkMargin*satelliteLink=A7lossLine*
                    satelliteLink=A7noiseTemperature*(global=A7earthRadius -
                     1.*satelliteLink=A7orbitSMA)^2)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna*
                    satelliteLink=A7groundDiameter^2*satelliteLink=A7power*
                    transmitter=A7efficiencyTransmitter))^0.5)*(-0.25 + \
(0.5079490874739279*dataBudget=A7requiredDownLinkRate^2*global=A7boltzmann^2*
                 
global=A7c^2*satelliteLink=A7EbN0^2*satelliteLink=A7linkMargin^2*
                  satelliteLink=A7lossLine^2*
                  satelliteLink=A7noiseTemperature^2*(global=A7earthRadius -
                     1.*satelliteLink=A7orbitSMA)^4)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna^2*
                  satelliteLink=A7groundDiameter^4*
                  satelliteLink=A7power^2*((dataBudget=A7requiredDownLinkRate*
                     global=A7boltzmann*global=A7c^2*satelliteLink=A7EbN0*
                     satelliteLink=A7linkMargin*satelliteLink=A7lossLine*
                     satelliteLink=A7noiseTemperature*(global=A7earthRadius -
                     1.*satelliteLink=A7orbitSMA)^2)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna*
                     satelliteLink=A7groundDiameter^2*satelliteLink=A7power*
                     transmitter=A7efficiencyTransmitter))^1.*
                  transmitter=A7efficiencyTransmitter^2))^0.5)/
          satelliteLink=A7carrierFrequency^2 +
         0.2*((-0.35*global=A7c)/satelliteLink=A7carrierFrequency +
            1.4254109407099804*((dataBudget=A7requiredDownLinkRate*
                  global=A7boltzmann*global=A7c^2*satelliteLink=A7EbN0*
                  satelliteLink=A7linkMargin*satelliteLink=A7lossLine*
                  satelliteLink=A7noiseTemperature*(global=A7earthRadius -
                     1.*satelliteLink=A7orbitSMA)^2)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna*
                  satelliteLink=A7groundDiameter^2*satelliteLink=A7power*
                  transmitter=A7efficiencyTransmitter))^0.5)*(-0.25 + \
(0.5079490874739279*dataBudget=A7requiredDownLinkRate^2*global=A7boltzmann^2*
                global=A7c^2*satelliteLink=A7EbN0^2*satelliteLink=A7linkMargin^2*
                satelliteLink=A7lossLine^2*
                satelliteLink=A7noiseTemperature^2*(global=A7earthRadius -
                   1.*satelliteLink=A7orbitSMA)^4)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna^2*
                satelliteLink=A7groundDiameter^4*
                satelliteLink=A7power^2*((dataBudget=A7requiredDownLinkRate*
                     global=A7boltzmann*global=A7c^2*satelliteLink=A7EbN0*
                     satelliteLink=A7linkMargin*satelliteLink=A7lossLine*
                     satelliteLink=A7noiseTemperature*(global=A7earthRadius-
                     1.*satelliteLink=A7orbitSMA)^2)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna*
                     satelliteLink=A7groundDiameter^2*satelliteLink=A7power*
                     transmitter=A7efficiencyTransmitter))^1.*
                transmitter=A7efficiencyTransmitter^2))^0.5*((0.35*global=A7c)/
             satelliteLink=A7carrierFrequency +
            zzhornAnt=A7thickness)*((0.7*global=A7c)/
             satelliteLink=A7carrierFrequency + zzhornAnt=A7thickness) +
        
0.3333333333333333*((-0.35*global=A7c)/satelliteLink=A7carrierFrequency +
            1.4254109407099804*((dataBudget=A7requiredDownLinkRate*
                  global=A7boltzmann*global=A7c^2*satelliteLink=A7EbN0*
                  satelliteLink=A7linkMargin*satelliteLink=A7lossLine*
                  satelliteLink=A7noiseTemperature*(global=A7earthRadius -
                     1.*satelliteLink=A7orbitSMA)^2)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna*
                  satelliteLink=A7groundDiameter^2*satelliteLink=A7power*
                  transmitter=A7efficiencyTransmitter))^0.5)*(-0.25 + \
(0.5079490874739279*dataBudget=A7requiredDownLinkRate^2*global=A7boltzmann^2*
                global=A7c^2*satelliteLink=A7EbN0^2*satelliteLink=A7linkMargin^2*
                satelliteLink=A7lossLine^2*
                satelliteLink=A7noiseTemperature^2*(global=A7earthRadius -
                   1.*satelliteLink=A7orbitSMA)^4)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna^2*
                satelliteLink=A7groundDiameter^4*
                satelliteLink=A7power^2*((dataBudget=A7requiredDownLinkRate*
                     global=A7boltzmann*global=A7c^2*satelliteLink=A7EbN0*
                     satelliteLink=A7linkMargin*satelliteLink=A7lossLine*
                     satelliteLink=A7noiseTemperature*(global=A7earthRadius-
                     1.*satelliteLink=A7orbitSMA)^2)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna*
                     satelliteLink=A7groundDiameter^2*satelliteLink=A7power*
                     transmitter=A7efficiencyTransmitter))^1.*
                transmitter=A7efficiencyTransmitter^2))^0.5*((-0.\
24499999999999997*global=A7c^2)/satelliteLink=A7carrierFrequency^2 -
           
0.7808110392505321*((global=A7c^2*((dataBudget=A7requiredDownLinkRate*
                     global=A7boltzmann*global=A7c^2*satelliteLink=A7EbN0*
                     satelliteLink=A7linkMargin*satelliteLink=A7lossLine*
                     satelliteLink=A7noiseTemperature*(global=A7earthRadius-
                     1.*satelliteLink=A7orbitSMA)^2)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna*
                     satelliteLink=A7groundDiameter^2*satelliteLink=A7power*
                     transmitter=A7efficiencyTransmitter))^1.)/
                satelliteLink=A7carrierFrequency^2)^0.5 -
            2.4884321592469227*((dataBudget=A7requiredDownLinkRate*
                  global=A7boltzmann*global=A7c^2*satelliteLink=A7EbN0*
                  satelliteLink=A7linkMargin*satelliteLink=A7lossLine*
                  satelliteLink=A7noiseTemperature*(global=A7earthRadius -
                     1.*satelliteLink=A7orbitSMA)^2)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna*
                  satelliteLink=A7groundDiameter^2*satelliteLink=A7power*
                  transmitter=A7efficiencyTransmitter))^1. + ((0.35*global=A7c)/
                satelliteLink=A7carrierFrequency +
               zzhornAnt=A7thickness)*((0.7*global=A7c)/
                satelliteLink=A7carrierFrequency +
               zzhornAnt=A7thickness) + \
(1.4254109407099804*((dataBudget=A7requiredDownLinkRate*global=A7boltzmann*
                     global=A7c^2*satelliteLink=A7EbN0*satelliteLink=A7linkMargin*
                     satelliteLink=A7lossLine*
                     satelliteLink=A7noiseTemperature*(global=A7earthRadius-
                     1.*satelliteLink=A7orbitSMA)^2)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna*
                     satelliteLink=A7groundDiameter^2*satelliteLink=A7power*
                     transmitter=A7efficiencyTransmitter))^0.5 +
               zzhornAnt=A7thickness)*(1.7457647392600089*((\
dataBudget=A7requiredDownLinkRate*global=A7boltzmann*global=A7c^2*
                     satelliteLink=A7EbN0*satelliteLink=A7linkMargin*
                     satelliteLink=A7lossLine*
                     satelliteLink=A7noiseTemperature*(global=A7earthRadius-
                     1.*satelliteLink=A7orbitSMA)^2)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna*
                     satelliteLink=A7groundDiameter^2*satelliteLink=A7power*
                     transmitter=A7efficiencyTransmitter))^0.5 +
               zzhornAnt=A7thickness) + (((0.35*global=A7c)/
                  satelliteLink=A7carrierFrequency +
                 zzhornAnt=A7thickness)*((0.7*global=A7c)/
                  satelliteLink=A7carrierFrequency +
                 zzhornAnt=A7thickness)*(1.4254109407099804*((\
dataBudget=A7requiredDownLinkRate*global=A7boltzmann*global=A7c^2*
                     satelliteLink=A7EbN0*satelliteLink=A7linkMargin*
                     satelliteLink=A7lossLine*
                     satelliteLink=A7noiseTemperature*(global=A7earthRadius-
                     1.*satelliteLink=A7orbitSMA)^2)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna*
                     satelliteLink=A7groundDiameter^2*satelliteLink=A7power*
                     transmitter=A7efficiencyTransmitter))^0.5 +
                 zzhornAnt=A7thickness)*(1.7457647392600089*((\
dataBudget=A7requiredDownLinkRate*global=A7boltzmann*global=A7c^2*
                     satelliteLink=A7EbN0*satelliteLink=A7linkMargin*
                     satelliteLink=A7lossLine*
                     satelliteLink=A7noiseTemperature*(global=A7earthRadius-
                     1.*satelliteLink=A7orbitSMA)^2)/(\
satelliteLink=A7carrierFrequency^2*satelliteLink=A7efficiencyGroundAntenna*
                     satelliteLink=A7groundDiameter^2*satelliteLink=A7power*
                     transmitter=A7efficiencyTransmitter))^0.5 +
                 zzhornAnt=A7thickness))^0.5)), Pi0 =
satelliteLink=A7lossLine,
    Pi1 =
global=A7c*global=A7earthRadius^-1*satelliteLink=A7carrierFrequency^-1,
    Pi2 = transmitter=A7efficiencyTransmitter,
    Pi3 = satelliteLink=A7efficiencyGroundAntenna,
    Pi4 = zzhornAnt=A7thickness*global=A7earthRadius^-1,
    Pi5 =
dataBudget=A7requiredDownLinkRate*satelliteLink=A7carrierFrequency^-1*
      satelliteLink=A7EbN0^1, Pi6 = satelliteLink=A7linkMargin,
    Pi7 = satelliteLink=A7noiseTemperature*satelliteLink=A7power^-1*
      global=A7boltzmann^1*satelliteLink=A7carrierFrequency^1,
    Pi8 = satelliteLink=A7orbitSMA*global=A7earthRadius^-1,
    Pi9 = satelliteLink=A7groundDiameter*global=A7earthRadius^-1,
    Pi10 = satelliteLink=A7mass*satelliteLink=A7power^-1*global=A7earthRadius^2*
      satelliteLink=A7carrierFrequency^3,
    Pi11 =
transmitter=A7baseMass*satelliteLink=A7power^-1*global=A7earthRadius^2*
      satelliteLink=A7carrierFrequency^3,
    Pi12 = transmitter=A7weightFactor*global=A7earthRadius^2*
      satelliteLink=A7carrierFrequency^3,
    Pi13 = zzhornAnt=A7density*satelliteLink=A7power^-1*global=A7earthRadius^5*
      satelliteLink=A7carrierFrequency^3} ;

In[19]:= exprs = Apply[Subtract, eqns, 1];

In[15]:= elimvars = {satelliteLink=A7carrierFrequency,
satelliteLink=A7linkMargin,
    zzhornAnt=A7density, satelliteLink=A7EbN0, satelliteLink=A7lossLine,
    transmitter=A7weightFactor, global=A7c, transmitter=A7efficiencyTransmitter,
    transmitter=A7baseMass, zzhornAnt=A7thickness, satelliteLink=A7mass,
    global=A7earthRadius, satelliteLink=A7power,
    satelliteLink=A7efficiencyGroundAntenna, satelliteLink=A7groundDiameter,
    dataBudget=A7requiredDownLinkRate, satelliteLink=A7orbitSMA,
    satelliteLink=A7noiseTemperature, global=A7boltzmann};
keepvars = {Pi0, Pi1, Pi10, Pi11, Pi12, Pi13, Pi2, Pi3, Pi4, Pi5, Pi6, Pi7,
    Pi8, Pi9};

In[17]:= InputForm[Timing[
   gb = GroebnerBasis[exprs, keepvars, elimvars,
     MonomialOrder -> EliminationOrder, CoefficientDomain ->
InexactNumbers]]]

Out[17]//InputForm=
{394.245, {}}


I could advance a bit in this case by giving the Pi-equations in a
slight different form:

satelliteLink=A7lossLine := Pi0
global=A7c :=
  Pi1*(global=A7earthRadius)^1.0*(satelliteLink=A7carrierFrequency)^1.0
transmitter=A7efficiencyTransmitter := Pi2
satelliteLink=A7efficiencyGroundAntenna := Pi3
zzhornAnt=A7thickness := Pi4*(global=A7earthRadius)^1.0
dataBudget=A7requiredDownLinkRate :=
  Pi5*(satelliteLink=A7carrierFrequency)^1.0*(satelliteLink=A7EbN0)^-1.0
satelliteLink=A7linkMargin := Pi6
satelliteLink=A7noiseTemperature :=
  Pi7*(satelliteLink=A7power)^1.0*(global=A7boltzmann)^-1.0*(\
satelliteLink=A7carrierFrequency)^-1.0
satelliteLink=A7orbitSMA := Pi8*(global=A7earthRadius)^1.0
satelliteLink=A7groundDiameter := Pi9*(global=A7earthRadius)^1.0
satelliteLink=A7mass :=
  Pi10*(satelliteLink=A7power)^1.0*(global=A7earthRadius)^-2.0*(\
satelliteLink=A7carrierFrequency)^-3.0
transmitter=A7baseMass :=
  Pi11*(satelliteLink=A7power)^1.0*(global=A7earthRadius)^-2.0*(\
satelliteLink=A7carrierFrequency)^-3.0
transmitter=A7weightFactor :=
  Pi12*(global=A7earthRadius)^-2.0*(satelliteLink=A7carrierFrequency)^-3.0
zzhornAnt=A7density :=
  Pi13*(satelliteLink=A7power)^1.0*(global=A7earthRadius)^-5.0*(\
satelliteLink=A7carrierFrequency)^-3.0

By this i could get the system down to a seemingly simple equation:


global=A7earthRadius^2 == (0.56 Pi1 Pi4 global=A7earthRadius^2 + 0.866667
Pi4^2 global=A7earthRadius^2 +
     1.05706 Pi4 global=A7earthRadius ((Pi0 Pi1^2 Pi5 Pi6 Pi7 (-1 + Pi8)^2
global=A7earthRadius^2)/(
       Pi2 Pi3 Pi9^2))^0.5 -
     0.26027 ((Pi0 Pi1^4 Pi5 Pi6 Pi7 (-1 + Pi8)^2 global=A7earthRadius^4)/(
       Pi2 Pi3 Pi9^2))^0.5 +
     0.333333 ((0.35 Pi1 + Pi4) (0.7 Pi1 + Pi4) global=A7earthRadius^2
(Pi4 global=A7earthRadius +
          1.42541 ((Pi0 Pi1^2 Pi5 Pi6 Pi7 (-1 + Pi8)^2
global=A7earthRadius^2)/(
            Pi2 Pi3 Pi9^2))^0.5) (Pi4 global=A7earthRadius +
          1.74576 ((Pi0 Pi1^2 Pi5 Pi6 Pi7 (-1 + Pi8)^2
global=A7earthRadius^2)/(
            Pi2 Pi3 Pi9^2))^0.5))^0.5)

I tried now to eliminate global=A7earthRadius with the eliminate function
but it didnt terminate within 4hours. Now again i assume the
case-by-case analysis of the roots is so time (and memory) consuming for
the system. Is there a way to avoid this by telling the system that all
variables are not zero and positive?
Do you have another idea why eliminate doesnt solve this equation (in
reasonable time)?

Thanks for any hints how i can get a stable way to solve my equations,

Johannes





  • Prev by Date: Re: Trouble using Eliminate and Reduce with big examples
  • Next by Date: Re: read CSV
  • Previous by thread: Re: Trouble using Eliminate and Reduce with big examples
  • Next by thread: CDF browser plugin and Wolfram library archive