| Author |
Topic  |
|
|
gnkarthik
Junior Member
USA
3 Posts |
Posted - 10/05/2007 : 09:42:05
|
I have an equation I am trying to feed into excel.
E = a*p^c +b*p^d
I want the equation to be transformed such that I can express p in terms of E. Any expertise in the forum?? |
 |
|
|
tkhunny
Advanced Member
USA
1001 Posts |
Posted - 10/05/2007 : 11:02:05
|
There is expertise, but you are not going to like the answer.
There is no such general solution. For specific values of c and d, there can be solutions, but not for arbitrary c and d.
So, there are a couple of ways to go...
1) What is the nature of the process. What are c and d likely to be? If they are sufficiently consistent and useful, there may be an answer to your question. For example, if c is always twice d (c = 2d), that would be useful.
2) In MS Excel you can use the "Goal Seek" function for one-time solutions or you can write a Visual Basic function to handle larger numbers of cases.
Where does that leave us? |
 |
|
|
gnkarthik
Junior Member
USA
3 Posts |
Posted - 10/05/2007 : 12:22:51
|
Thanks for the quick turn around.
I know c and d are constants. So are a and b. I know the values for all a,b,c and d. Since this is a speicific problem, I can take ratios c/d and a/b. p and E are variables.
Where do I go from there? |
 |
|
|
gnkarthik
Junior Member
USA
3 Posts |
Posted - 10/05/2007 : 14:34:01
|
OK.
My question would nowbe... What is a good resource to learn about multinomial equations?? If someone wants to help me......here is my real problem
a =1124/211000 b=0.37495 c=-0.10853 d=-0.63541
E varies from 0.0164637 to 0.00103254. Please look at the table below. I need to design for a particular value of p for multiple situations. Goalseek in MS excel is an additional step which I preferably want to avoid (because it is a manual operation unless I write a macro).
p E 100 0.0164637 112.202 0.0155073 125.893 0.0146157 141.254 0.0137846 158.489 0.0130095 177.828 0.0122867 199.526 0.0116125 223.872 0.0109835 251.188 0.0103964 281.838 0.00984845 316.227 0.00933684 354.813 0.00885904 398.107 0.00841271 446.683 0.00799564 501.187 0.00760581 562.34 0.0072413 630.956 0.00690038 707.944 0.0065814 794.327 0.00628283 891.249 0.00600327 999.998 0.0057414 1122.02 0.005496 1258.92 0.00526592 1412.53 0.00505012 1584.89 0.00484761 1778.27 0.00465747 1995.26 0.00447886 2238.72 0.00431099 2511.88 0.00415312 2818.37 0.00400458 3162.27 0.00386472 3548.12 0.00373295 3981.06 0.00360873 4466.82 0.00349154 5011.85 0.00338092 5623.39 0.00327641 6309.55 0.00317762 7079.43 0.00308415 7943.25 0.00299565 8912.47 0.00291179 9999.96 0.00283226 11220.1 0.00275678 12589.2 0.00268508 14125.3 0.00261691 15848.9 0.00255205 17782.8 0.00249028 19952.6 0.00243139 22387.2 0.00237521 25118.8 0.00232156 28183.8 0.00227028 31622.8 0.00222122 35481.4 0.00217425 39810.8 0.00212922 44668.4 0.00208602 50118.8 0.00204455 56234.3 0.00200468 63095.9 0.00196634 70794.8 0.00192941 79433.1 0.00189383 89125.4 0.00185951 100000 0.00182638 112202 0.00179437 125893 0.00176342 141255 0.00173346 158490 0.00170444 177829 0.00167631 199528 0.00164902 223874 0.00162253 251191 0.00159679 281841 0.00157176 316231 0.00154741 354817 0.00152371 398111 0.00150061 446688 0.0014781 501193 0.00145614 562348 0.00143471 630965 0.00141378 707954 0.00139333 794338 0.00137333 891262 0.00135378 1.00E+06 0.00133464 1.12E+06 0.00131591 1.26E+06 0.00129756 1.41E+06 0.00127958 1.58E+06 0.00126196 1.78E+06 0.00124468 2.00E+06 0.00122772 2.24E+06 0.00121109 2.51E+06 0.00119475 2.82E+06 0.00117871 3.16E+06 0.00116296 3.55E+06 0.00114748 3.98E+06 0.00113226 4.47E+06 0.0011173 5.01E+06 0.0011026 5.62E+06 0.00108813 6.31E+06 0.0010739 7.08E+06 0.00105989 7.94E+06 0.00104611 8.91E+06 0.00103254
|
 |
|
|
tkhunny
Advanced Member
USA
1001 Posts |
Posted - 10/05/2007 : 15:54:30
|
I set up a simple example like this:
a 0.0053270 b 0.3749500 c (0.1085300) d (0.6354100) E 0.0164637 p 188.2338165
a is in a1 b is in a2 etc.
The value for a is in b1 The value for b is in b2 etc.
The formula for p in b6 is =FindP(b1,b2,b3,b4,b5)
FindP is defined in Visual Basic as:
Function FindP(aVal, bVal, cVal, dVal, EVal) Static HoldVal, BackVal, TolVal, FofP, FPrimeofP As Double TolVal = 0.000001 BackVal = EVal / (aVal + bVal) ' Surrogate Initial p-value For CountVal = 1 To 15 FofP=EVal-(aVal*(BackVal^cVal))-(bVal*(BackVal^dVal)) FPrimeofP=0-(aVal*(cVal*(BackVal^(cVal-1))))-(bVal*(dVal*(BackVal^(dVal-1)))) HoldVal=BackVal-FofP/FPrimeofP If Abs(HoldVal - BackVal) < TolVal Then Exit For Else BackVal = HoldVal End If Next FindP = HoldVal End Function
It's just Newton's method and should work most of the time. I found 15 iterations to be sufficient im many cases.
Be warned. I don't get anywhere near your values. I would have to question the values you provided.
I get E = 0.164637 and p = 188.233816
Be additionally warned, I don't know what you are doing, here. I know only that you asked a decent question, although you could have provided better information. If you are doing something dangerous, don't blame me. I can't be held responsible for your coding errors or for your behavior.
Note: This is one of the reasons tutors should offer only hints, rather than complete solutions. Liability. Just something to think about. It's a crazy world we live in. |
 |
|
|
Jason
Advanced Member
USA
1235 Posts |
Posted - 10/11/2007 : 12:11:09
|
I get what tkhunny gets
When E = .0164637 then p = 188.233816465834272926 When E = .00103254 then p = 4495384.844865500925
|
 |
|
| |
Topic  |
|