Re: My problem when solving a system of equations
- To: mathgroup at smc.vnet.net
- Subject: [mg78061] Re: My problem when solving a system of equations
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Fri, 22 Jun 2007 06:35:42 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <f5dkv7$13j$1@smc.vnet.net>
loveinla at gmail.com wrote:
> Hi, guys,
>
> I was trying to solve a system of nonlinear equations. However,
> whenever I run it, Mathematica always returns:
> " ReplaceAll::reps: {-0.04\(-24 + 5\pA)\((25 - 4\p1)\(-2 + p1) - (24 -
> \
> 5\pA)\(-3 + pA) + (-3 - disA + pA)\(24 - 5\(-disA + pA))) + 0.4\(\
> \[LeftSkeleton]1\[RightSkeleton])\(\[LeftSkeleton]1\[RightSkeleton])
> == 0, \
> \[LeftSkeleton]3\[RightSkeleton]} is neither a list of replacement
> rules nor \
> a valid dispatch table, and so cannot be used for replacing. "
>
> I don't know what this means and how to deal with it.
>
> Below is my code for your reference:
>
> a = 24;
> b = 5;
> c = 25;
> d = 4;
> cA = 3;
> cB = 2;
> t = 5;
> alpha = 0;
> bta = 0.6;
> NB = NSolve[{-d(p - cB) + c - d*p == (p - cB)(c - d*p)^2/t}, {p}];
> SNB = DeleteCases[NB, {p -> _Complex}]
> B = NSolve[{(alpha + (1 - alpha - bta)*(0.5 - ((d/
> 2)*(p1^2 - p2^2) - c*(p1 - p2))/(2t) - ((b/2)*((
> pA - disA)^2 - pA^2) + a*disA)/(2t)))*(a - b*pA - b*(pA -
> cA)) - (1 - alpha - bta)*((p1 - cB)*(c - d*
> p1) + (pA - disA - cA)*(a - b*(pA -
> disA)) - (pA - cA)*(a - b*pA))*(-(
> a - b*pA)/(
> 2t)) == 0, (1 - alpha - bta)*((a - b*(pA -
> disA) -
> b(pA - disA - cA))*(0.5 + ((d/2)*(
> p1^2 - p2^2) - c*(
> p1 - p2))/(2t) + ((b/2)*((pA -
> disA)^2 - pA^2) + a*disA)/(2t)) +
> ((
> p1 - cB)*(c -
> d*p1) + (pA - disA - cA)(a - b*(pA - disA)) - (pA -
> cA)(a - b*pA))*(-(a - b*(pA - disA))/(
> 2t))) == 0, (1 - alpha)*((c - d*p1 - d*(p1 -
> cB))*(0.5 + ((d/2)*(p1^2 - p2^2) - c*(p1 -
> p2))/(2t)) + (p1 - cB)*(c - d*p1)*(-
> c + d*p1)/(2t)) + (1 -
> alpha - bta)*(((pA - disA - cA)*(a -
>
> b*(pA - disA)) - (pA - cA)*(a - b*
> pA))*(-c + d*p1)/(2t) + (c - d*p1 - d(
> p1 - cB))*((
> b/2)((pA - disA)^2 - pA^2) + a*disA)/(2t)) ==
> 0, (1 - alpha)*((c - d*p2 - d(p2 - cB))*(
> 0.5 - ((d/
> 2)*(p1^2 - p2^2) - c*(p1 - p2))/(2t)) + (
> p2 - cB)*(c - d*p2)*(-c + d*p2)/(
> 2t)) - (1 - alpha - bta)*(c - d*p2 - d(p2 -
> cB))*((
> b/2)*((pA - disA)^2 - pA^2) + a*disA)/(
> 2t) == 0}, {pA, p1, p2, disA}];
> BR = DeleteCases[B, {pA -> _Complex, p1 -> _Complex,
> p2 -> _Complex, disA -> _Complex}];
> SB = Select[BR, And @@ (({pA > 0, p1 > 0, p2 >
> 0, disA > 0, pA - disA > 0} /. #)) &]
>
>
You should try the above code with a fresh session of Mathematica (it
works fine on my system; see below); however since all your variables,
parameters, constants, etx are define globaly, I am rather condident
that some of the name clashed after few attempts. You should have a
look, and use, constructs such as *With* and *Module*.
In[1]:= a = 24;
b = 5;
c = 25;
d = 4;
cA = 3;
cB = 2;
t = 5;
alpha = 0;
bta = 0.6;
NB = NSolve[{(-d)*(p - cB) + c - d*p == (p - cB)*((c - d*p)^2/t)},
{p}];
SNB = DeleteCases[NB, {p -> _Complex}]
{{p -> 2.292510833366451}}
B = NSolve[
{(alpha + (1 - alpha - bta)*(0.5 - ((d/2)*(p1^2 - p2^2) -
c*(p1 - p2))/(2*
t) - ((b/2)*((pA - disA)^2 - pA^2) +
a*disA)/(2*t)))*(a - b*pA -
b*(pA - cA)) -
(1 - alpha -
bta)*((p1 - cB)*(c - d*p1) + (pA - disA - cA)*
(a - b*(pA - disA)) - (pA - cA)*(a - b*pA))*
(-(a - b*pA)/(2*t)) == 0,
(1 - alpha - bta)*((a - b*(pA - disA) - b*(pA - disA - cA))*
(0.5 + ((d/2)*(p1^2 - p2^2) - c*(p1 - p2))/(2*t) +
((b/2)*((pA - disA)^2 - pA^2) + a*disA)/(2*
t)) +
((p1 - cB)*(c - d*p1) + (pA - disA - cA)*(a -
b*(pA - disA)) -
(pA - cA)*(a - b*pA))*(-(a - b*(pA - disA))/(2*
t))) == 0,
(1 - alpha)*((c - d*p1 - d*(p1 - cB))*
(0.5 + ((d/2)*(p1^2 - p2^2) - c*(p1 - p2))/(2*
t)) +
(p1 - cB)*(c - d*p1)*((-c + d*p1)/(2*t))) +
(1 - alpha -
bta)*(((pA - disA - cA)*(a - b*(pA - disA)) -
(pA - cA)*(a - b*pA))*((-c + d*p1)/(2*t)) +
(c - d*p1 -
d*(p1 - cB))*(((b/2)*((pA - disA)^2 - pA^2) +
a*disA)/(2*t))) == 0,
(1 - alpha)*((c - d*p2 - d*(p2 - cB))*
(0.5 - ((d/2)*(p1^2 - p2^2) - c*(p1 - p2))/(2*
t)) +
(p2 - cB)*(c - d*p2)*((-c + d*p2)/(2*t))) -
(1 - alpha - bta)*(c - d*p2 - d*(p2 - cB))*
(((b/2)*((pA - disA)^2 - pA^2) + a*disA)/(2*t)) ==
0},
{pA, p1, p2, disA}];
BR = DeleteCases[B, {pA -> _Complex, p1 -> _Complex, p2 -> _Complex,
disA -> _Complex}];
SB = Select[BR, And @@ ({pA > 0, p1 > 0, p2 > 0, disA > 0,
pA - disA > 0} /. #1) & ]
Out[11]= {{p -> 2.292510833366451}}
Out[12]= {{p -> 2.292510833366451}}
Out[15]= {{pA -> 4.445374169873915, p1 -> 2.319154459353897,
p2 -> 2.253920244654226, disA -> 0.9966066375970366},
{pA -> 3.9732432024842192, p1 -> 4.958302022957722,
p2 -> 2.9492043120806235, disA -> 1.7317345079613626}}
Regards,
Jean-Marc