MathGroup Archive 2001

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

Search the Archive

Help on solving simultaneous non-linear equations using FindRoot.

  • To: mathgroup at smc.vnet.net
  • Subject: [mg28505] Help on solving simultaneous non-linear equations using FindRoot.
  • From: Youyan Li <youyanli at acsu.buffalo.edu>
  • Date: Sun, 22 Apr 2001 21:03:21 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Hi,

I am trying to solve a 12-eqaution simultaneous non-linear equations using
FindRoot function in Mathematica. This system of equations has 9 given  
parameter values and I need to solve for 12 unknown variables. But I have
the problem in getting the system converged. If I take one endogenous   
variable out of the system and let it to be a given parameter, and also
reduce the system into 9 equations, I can get a solution that looks like
converged, but some of the variables have negative values, which are not
what I expected. I expect all the variables have non-negative values.
If I specify the range of the variables, usually I cannot get a solution  
at all. I wonder how to solve this problem. Or how to get an acceptable  
solution for this system? Is there any trick of solving large system of  
simultaneous non-linear equations using FindRoot?
  
Below is my problem that I converted from another program, because I don't
know how to save a mathematica program into a text file correctly. If you
could help, would you please take a look at it? Sorry it may look long. I
am trying to solve functions f[1] to f[12] simultaneously.




> M:=3/5; L:=1.0; c[1]:=1.0; c[2]:=1.0; mu:=2/5; sigma:=5; F[1]:=1.0;
F[2]:=1.0; T:=3/2;

                               M := 3/5


                               L := 1.0


                             c[1] := 1.0


                             c[2] := 1.0


                              mu := 2/5


                              sigma := 5


                             F[1] := 1.0


                             F[2] := 1.0


                               T := 3/2

>
f[1]:=(mu*Y[1]-w[1]*c[1]/p[11])*p[11]^(1-sigma)/(n[1]*p[11]^(1-sigma)+n[2]*p[21]^(1-sigma))+(mu*Y[2]-w[1]*c[1]*T/p[12])*p[12]^(1-sigma)/(n[1]*p[12]^(1-sigma)+n[2]*p[22]^(1-sigma))=w[1]*F[1];

                       1.0 w[1]                 1.500000000 w[1]
            2/5 Y[1] - --------      2/5 Y[2] - ----------------
                        p[11]                        p[12]
  f[1] := ------------------------ + --------------------------- =
               4 / n[1]     n[2] \         4 / n[1]     n[2] \
          p[11]  |------ + ------|    p[12]  |------ + ------|
                 |     4        4|           |     4        4|
                 \p[11]    p[21] /           \p[12]    p[22] /

        1.0 w[1]

> 

>
f[2]:=(mu*Y[1]-w[2]*c[2]*T/p[21])*p[21]^(1-sigma)/(n[1]*p[11]^(1-sigma)+n[2]*p[21]^(1-sigma))+(mu*Y[2]-w[2]*c[2]/p[22])*p[22]^(1-sigma)/(n[1]*p[12]^(1-sigma)+n[2]*p[22]^(1-sigma))=w[2]*F[2];

                     1.500000000 w[2]                1.0 w[2]
          2/5 Y[1] - ----------------     2/5 Y[2] - --------
                          p[21]                       p[22]
  f[2] := --------------------------- + ------------------------ =
                4 / n[1]     n[2] \          4 / n[1]     n[2] \
           p[21]  |------ + ------|     p[22]  |------ + ------|
                  |     4        4|            |     4        4|
                  \p[11]    p[21] /            \p[12]    p[22] /

        1.0 w[2]

>
f[3]:=n[1]*(c[1]*mu*(Y[1]*p[11]^(-sigma)/(n[1]*p[11]^(1-sigma)+n[2]*p[21]^(1-sigma))+T*Y[2]*p[12]^(-sigma)/(n[1]*p[12]^(1-sigma)+n[2]*p[22]^(1-sigma)))+F[1])=M*lambda;

               /                      Y[1]
  f[3] := n[1] |.4000000000 ------------------------
               |                 5 / n[1]     n[2] \
               |            p[11]  |------ + ------|
               |                   |     4        4|
               \                   \p[11]    p[21] /

               .6000000000 Y[2]          \
         + ------------------------ + 1.0| = 3/5 lambda
                5 / n[1]     n[2] \      |
           p[12]  |------ + ------|      |
                  |     4        4|      |
                  \p[12]    p[22] /      /

>
f[4]:=n[2]*(c[1]*mu*(T*Y[1]*p[21]^(-sigma)/(n[1]*p[11]^(1-sigma)+n[2]*p[21]^(1-sigma))+Y[2]*p[22]^(-sigma)/(n[1]*p[12]^(1-sigma)+n[2]*p[22]^(1-sigma)))+F[2])=M*(1-lambda);

               /                      Y[1]
  f[4] := n[2] |.6000000000 ------------------------
               |                 5 / n[1]     n[2] \
               |            p[21]  |------ + ------|
               |                   |     4        4|
               \                   \p[11]    p[21] /

               .4000000000 Y[2]          \
         + ------------------------ + 1.0| = 3/5 - 3/5 lambda
                5 / n[1]     n[2] \      |
           p[22]  |------ + ------|      |
                  |     4        4|      |
                  \p[12]    p[22] /      /

>
f[5]:=(1+(n[1]*p[11]^(1-sigma)+n[2]*p[21]^(1-sigma))/((sigma-1)*(n[1]*p[11]^(1-sigma)+n[2]*p[21]^(1-sigma)-p[11]^(1-sigma))))*w[1]*c[1]=p[11];

                   /         / n[1]     n[2] \  \
                   |     1/4 |------ + ------|  |
                   |         |     4        4|  |
                   |         \p[11]    p[21] /  |
       f[5] := 1.0 |1 + ------------------------| w[1] = p[11]
                   |     n[1]     n[2]      1   |
                   |    ------ + ------ - ------|
                   |         4        4        4|
                   \    p[11]    p[21]    p[11] /

>
f[6]:=(1+(n[1]*p[12]^(1-sigma)+n[2]*p[22]^(1-sigma))/((sigma-1)*(n[1]*p[12]^(1-sigma)+n[2]*p[22]^(1-sigma)-p[12]^(1-sigma))))*w[1]*c[1]*T=p[12];

                       /         / n[1]     n[2] \  \
                       |     1/4 |------ + ------|  |
                       |         |     4        4|  |
                       |         \p[12]    p[22] /  |
   f[6] := 1.500000000 |1 + ------------------------| w[1] = p[12]
                       |     n[1]     n[2]      1   |
                       |    ------ + ------ - ------|
                       |         4        4        4|
                       \    p[12]    p[22]    p[12] /

>
f[7]:=(1+(n[1]*p[11]^(1-sigma)+n[2]*p[21]^(1-sigma))/((sigma-1)*(n[1]*p[11]^(1-sigma)+n[2]*p[21]^(1-sigma)-p[21]^(1-sigma))))*w[2]*c[2]*T=p[21];

                       /         / n[1]     n[2] \  \
                       |     1/4 |------ + ------|  |
                       |         |     4        4|  |
                       |         \p[11]    p[21] /  |
   f[7] := 1.500000000 |1 + ------------------------| w[2] = p[21]
                       |     n[1]     n[2]      1   |
                       |    ------ + ------ - ------|
                       |         4        4        4|
                       \    p[11]    p[21]    p[21] /

>
f[8]:=(1+(n[1]*p[12]^(1-sigma)+n[2]*p[22]^(1-sigma))/((sigma-1)*(n[1]*p[12]^(1-sigma)+n[2]*p[22]^(1-sigma)-p[22]^(1-sigma))))*w[2]*c[2]=p[22];

                   /         / n[1]     n[2] \  \
                   |     1/4 |------ + ------|  |
                   |         |     4        4|  |
                   |         \p[12]    p[22] /  |
       f[8] := 1.0 |1 + ------------------------| w[2] = p[22]
                   |     n[1]     n[2]      1   |
                   |    ------ + ------ - ------|
                   |         4        4        4|
                   \    p[12]    p[22]    p[22] /

> f[9]:=M*lambda*w[1]+(L-M)/2*p[A]=Y[1];

          f[9] := 3/5 lambda w[1] + .2000000000 p[A] = Y[1]

> f[10]:=M*(1-lambda)*w[2]+(L-M)/2*p[A]=Y[2];

       f[10] := 3/5 (1 - lambda) w[2] + .2000000000 p[A] = Y[2]

> f[11]:=(1-mu)*(Y[1]+Y[2])/p[A]=L-M;

                             Y[1] + Y[2]
                f[11] := 3/5 ----------- = .4000000000
                                p[A]

>
f[12]:=w[1]/(n[1]*p[11]^(1-sigma)+n[2]*p[21]^(1-sigma))^(mu/(1-sigma))=w[2]/(n[1]*p[12]^(1-sigma)+n[2]*p[22]^(1-sigma))^(mu/(1-sigma));

  f[12] :=

             / n[1]     n[2] \(1/10)        / n[1]     n[2] \(1/10)
        w[1] |------ + ------|       = w[2] |------ + ------|
             |     4        4|              |     4        4|
             \p[11]    p[21] /              \p[12]    p[22] /

>
sol:=fsolve({f[1],f[2],f[3],f[4],f[5],f[6],f[7],f[8],f[9],f[10],f[11],f[12]},{p[A],p[11],p[12],p[21],p[22],n[1],n[2],w[1],w[2],Y[1],Y[2],lambda},{p[A]=0..1.5,p[11]=0.5..infinity,p[12]=0.5..infinity,p[21]=0.5..infinity,p[22]=0.5..infinity,n[1]=0..2,n[2]=0..2,w[1]=0..infinity,w[2]=0..infinity,Y[1]=0..infinity,Y[2]=0..infinity,lambda=0..1});

  sol =FindRoot[{

             /              Y[1]      .4000000000 Y[2]      \
        n[2] |.6000000000 --------- + ---------------- + 1.0| =
             |                 5              5             |
             \            p[21]  %1      p[22]  %2          /

        3/5 - 3/5 lambda,

                  1.0 w[1]             1.50 w[1]
        .4 Y[1] - --------   .4 Y[2] - ---------
                   p[11]                 p[12]
        ------------------ + ------------------- = 1.0 w[1],
                 4                     4
            p[11]  %1             p[12]  %2

                   1.500000000 w[2]              1.0 w[2]
        2/5 Y[1] - ----------------   2/5 Y[2] - --------
                        p[21]                     p[22]
        --------------------------- + ------------------- = 1.0 w[2],
                      4                         4
                 p[21]  %1                 p[22]  %2

             /              Y[1]      .6000000000 Y[2]      \
        n[1] |.4000000000 --------- + ---------------- + 1.0| =
             |                 5              5             |
             \            p[11]  %1      p[12]  %2          /

                        /             1/4 %1         \
        3/5 lambda, 1.0 |1 + ------------------------| w[1] = p[11],
                        |     n[1]     n[2]      1   |
                        |    ------ + ------ - ------|
                        |         4        4        4|
                        \    p[11]    p[21]    p[11] /

                    /             1/4 %2         \
        1.500000000 |1 + ------------------------| w[1] = p[12],
                    |     n[1]     n[2]      1   |
                    |    ------ + ------ - ------|
                    |         4        4        4|
                    \    p[12]    p[22]    p[12] /

                    /             1/4 %1         \
        1.500000000 |1 + ------------------------| w[2] = p[21],
                    |     n[1]     n[2]      1   |
                    |    ------ + ------ - ------|
                    |         4        4        4|
                    \    p[11]    p[21]    p[21] /

            /             1/4 %2         \
        1.0 |1 + ------------------------| w[2] = p[22],
            |     n[1]     n[2]      1   |
            |    ------ + ------ - ------|
            |         4        4        4|
            \    p[12]    p[22]    p[22] /

        3/5 lambda w[1] + .2000000000 p[A] = Y[1],

        3/5 (1 - lambda) w[2] + .2000000000 p[A] = Y[2],

            Y[1] + Y[2]                       (1/10)          (1/10)
        3/5 ----------- = .4000000000, w[1] %1       = w[2] %2      }
               p[A]

        , {Y[1], 1},{w[1],1} {p[11],1}, {n[1], 0.5},{n[2],0.5}, {p[21],1},
{Y[2],1}, {p[12],1},{p[22],1},

        {w[2],1},{lambda,0.5}, {p[A],1}]


> 




  • Prev by Date: Re: cylindrical vector plot
  • Next by Date: Re: Algebraic Integers
  • Previous by thread: RE: Two questions concerning ListDensityPlot ...
  • Next by thread: Help on solving simultaneous non-linear equations using FindRoot.