MathGroup Archive 2012

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

Search the Archive

Re: Mathematica issue

I am a PhD student from the University of Melbourne Australia. My question is;

I need solve this equation [A +  B  +  x^(a)  (C - D x^(b) ]=0,

A,B,C,D,a and b are constants.

I need analytical expression for the x in terms of A,B,C,D and a,b,

I was wondering is this can be done using Mathematica? if so how would i do that? I hope to hearing from you soon.

Many thanks,

Hi, Kash,

You have here two problems.

1. Your equation has no exact analytical solution, independent of using Mathematica or using only a pen.

2. You made errors in Mathematica syntax.

1. The first problem one can address as follows. After correction of errors, I guess the original equation looks like the following:

eq = x^a* (c - D x^b) == F (*F=-A-B*)

x^a (c - D x^b) == F

Now I make its transformations to simplify it. I do it step-by-step by intention, so that you can follow them more easily:

Step1: substitution x -> y^(1/a):

eq2 = Simplify[eq /. x -> y^(1/a), {a > 0, b > 0}] // PowerExpand

y (c - D y^(b/a)) == F

Step 2: Introduction of a new parameter, k, rescaling the variable:

eq3 = Map[Times[1/(c*k), #] &, eq2] /. y -> k*z // Expand

z - (D z (k z)^(b/a))/c == F/(c k)

Step3: k is chosen such that it engulfs one of the variables:

eq4 = eq3 /. k -> c^(a/b)/D^(a/b) // PowerExpand

z - z^(1 + b/a) == c^(-1 - a/b) D^(a/b) F

Step 4: the final change of variables is made to simplify the form of equation:

eq5 = eq4 /. {b -> alfa*a, F -> beta/(c^(-1 - 1/alfa) D^(1/alfa))}

z - z^(1 + alfa) == beta

The last equation in terms of the unknown z is the one that you may try to somehow solve. It has only two control parameters: alfa and beta. I do not see any way to make it easier.

Now, if you have some numeric values of alfa and beta you could solve it numerically.

If alfa and beta are some variables, but you know numerical intervals to which they belong (typical for engineering and physics problems, say, alfa is from 1 to 10, while beta is from 1000 to 10000) you may tabulate them.

Alternatively, you may, say, fix beta to some numeric value from its interval, and numerically solve the equation with different alfa. Like this you get a table with pairs {alfa, z(alfa)}. Using this table you can find some suitable function to approximate z=z(alfa). That may be done by using the Fit or FindFit functions.

You may continue this for different beta values and try to find a universal approximation function z=z(alfa, beta) this way. This, of course, will be a piece of work.

You may also try to find asymptotic solutions with large or small alfa or beta, or both or z.

All those methods (or some others) are up to you: you know, where your equation comes from, while I do not know, and after all, it is your job.

2. To address the second problem, I advise you to invest some time in reading documentation on Mathematica, if I may. It takes time, but then it pays off. There are also good books on the subject. All this you may find on the site of Wolfram and in Menu/Help of your Mathematica version, as well as in old discussions of this group.

Have fun, Alexei 

Alexei BOULBITCH, Dr., habil.
ZAE Weiergewan,
11, rue Edmond Reuter,
L-5326 Contern, LUXEMBOURG

Office phone :  +352-2454-2566
Office fax:       +352-2454-3566
mobile phone:  +49 151 52 40 66 44

e-mail: alexei.boulbitch at

  • Prev by Date: Re: Landau letter, Re: Mathematica as a New Approach...
  • Next by Date: Luke's list of mathematica questions
  • Previous by thread: Re: Mathematica issue
  • Next by thread: A problem with Manipulate