Re: Solve weirdness again

• To: mathgroup at smc.vnet.net
• Subject: [mg35043] Re: Solve weirdness again
• From: "David W. Cantrell" <DWCantrell at sigmaxi.org>
• Date: Thu, 20 Jun 2002 23:54:42 -0400 (EDT)
• References: <aerrte\$3ef\$1@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```"Joshua A. Solomon" <J.A.Solomon at city.ac.uk> wrote:
> There was a transcription error in my original message.
> Allow me to try again.
> Why doesn't
>
> Solve[{k*.01^p==10,k*.1^p==1},{k,p}]
>
> produce
>
> {{k->10.,p->-1.}}
>
> ?

There appears to be another error remaining. If your equations are now
correct, then I presume you meant to ask why {{k->0.1,p->-1.0}} is not
produced.

I would say that Mathematica _should_ be able to solve the system. The
equations do not really "involve variables in an essentially nonalgebraic
way", as Mathematica uses that phrase.

Here's one way to help Mathematica:

In[1]:=
Eliminate[{k*a^p==b,k*c^p==d},k]

Out[1]=
a^p*d == b*c^p

In[2]:=
Solve[%,p]

Solve::ifun: Inverse functions are being used by Solve, so some solutions
may not be found.

Out[2]=
{{p -> -(Log[b/d]/(-Log[a] + Log[c]))}}

Then to get k, just substitute the value obtained for p in either of the
original equations.

It's unfortunate that Mathematica can't do this on its own under just the
Solve command. It really should be able to do so, it seems to me.

Regards,
David

--