MathGroup Archive 2008

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

Search the Archive

Re: Solve and parametric nonlinear equations

  • To: mathgroup at smc.vnet.net
  • Subject: [mg93833] Re: Solve and parametric nonlinear equations
  • From: dh <dh at metrohm.com>
  • Date: Wed, 26 Nov 2008 07:22:53 -0500 (EST)
  • References: <gggqe5$30b$1@smc.vnet.net>


Hi Allesandro,

there are equations whose solution can not be given in a closed formula. 

E.g. there is no explicite formula for the solution of: Sin[x]==x.

But you may still use numerical methods.

In your case, you could numerical calculate the value of the solution 

for some specific values of the parameters and then make a numerical fit 

to this points. However, note that there may be more than one solution 

(you may even have infinite many solutions, see example above). This 

will give you the solution of the original equation as a function of the 

parameters.

hope this helps, Daniel



alessandro tavoni wrote:

> Hello, I am newbie to Mathematica 6, and I am having some difficulties with

> Solve.

> 

> 

> 

> I have a two algebraic equations in two variables and two parameters and I

> need to numerically solve the system over an interval of values for the

> parameters.

> 

> 

> 

> When using Solve, I get the message: Solve::tdep: The equations appear to

> involve the variables to be solved for in an essentially non-algebraic way.

> 

> 

> 

> I tried several alternative approaches, but no one worked. Findroot works

> fine, but I need the symbolic solution since I am interested in the values

> of the solutions when the parameters alfa and beta change. To simplify

> matters, I assign a numerical value to lambda, but that's not enough to make

> it analytically solvable apparently. Here's the code:  

> 

> 

> 

> \[Lambda] = .43

> 

> \!\(\*OverscriptBox["U1",

> 

> RowBox[{"\[IndentingNewLine]", "DifR"}]]\) = 14 - 6 \[Beta]

> 

> 

> 

> \!\(\*OverscriptBox["U1", "UifR"]\) = 4 - 18 \[Alpha]

> 

> 

> 

> \!\(\*OverscriptBox["U1", "UifL"]\) = 10 - 2 \[Alpha]

> 

> 

> 

> \!\(\*OverscriptBox["U1", "DifL"]\) = 9

> 

> 

> 

> \!\(\*OverscriptBox["U2", "LifD"]\) = 9

> 

> 

> 

> \!\(\*OverscriptBox["U2", "RifD"]\) = 8 - 6 \[Alpha]

> 

> 

> 

> \!\(\*OverscriptBox["U2", "RifU"]\) = 22 - 18 \[Beta]

> 

> 

> 

> \!\(\*OverscriptBox["U2", "LifU"]\) = 12 - 2 \[Beta]

> 

> 

> 

> eq1 = Pu == \[ExponentialE]^(\[Lambda] (

> 

> \!\(\*OverscriptBox["U1", "UifL"]\) Ql +

> 

> \!\(\*OverscriptBox["U1",

> 

>         "UifR"]\) (1 - Ql)))/(\[ExponentialE]^(\[Lambda] (

> 

> \!\(\*OverscriptBox["U1", "UifL"]\) Ql +

> 

> \!\(\*OverscriptBox["U1",

> 

>           "UifR"]\) (1 - Ql))) + \[ExponentialE]^(\[Lambda] (

> 

> \!\(\*OverscriptBox["U1", "DifL"]\) Ql +

> 

> \!\(\*OverscriptBox["U1", "DifR"]\) (1 - Ql))))

> 

> eq2 = Ql == \[ExponentialE]^(\[Lambda] (

> 

> \!\(\*OverscriptBox["U2", "LifU"]\) Pu +

> 

> \!\(\*OverscriptBox["U2",

> 

>         "LifD"]\) (1 - Pu)))/(\[ExponentialE]^(\[Lambda] (

> 

> \!\(\*OverscriptBox["U2", "LifU"]\) Pu +

> 

> \!\(\*OverscriptBox["U2",

> 

>           "LifD"]\) (1 - Pu))) + \[ExponentialE]^(\[Lambda] (

> 

> \!\(\*OverscriptBox["U2", "RifU"]\) Pu +

> 

> \!\(\*OverscriptBox["U2", "RifD"]\) (1 - Pu))))

> 

> Solve[{eq1, eq2}, {Pu, Ql}]

> 

> 

> 

> Any suggestions would be much appreciated,

> 

> 

> 

> Alessandro

> 

> 

> 

> --

> 

> Alessandro Tavoni

> 

> Ph.D. candidate

> 

> Advanced School of Economics, University of Venice "C=E0 Foscari"

> 

>  <http://venus.unive.it/alessandro.tavoni>

> http://venus.unive.it/alessandro.tavoni

> 

> LevinLab member <http://www.eeb.princeton.edu/~slevin/Labdirectory.html> 

>  at

> Princeton University

> 

> 

> 

> 




  • Prev by Date: Re: Mathematica 7.0 slow on OS X
  • Next by Date: Re: A problem in Pi digits as Lattice space filling
  • Previous by thread: Solve and parametric nonlinear equations
  • Next by thread: CUDA support in 7.0?