Trouble understanding MUPAD output.... solving a non-linear system analytically.
Show older comments
Hi everyone,
I'm trying to solve a relatively small non-linear system of 15 eqns in 15 unknowns, and keep getting output that (as far as I can tell) doesn't seem helpful. Basically, the output just seems to reduce the system, and rewrites "solve([.....])". Any idea what is causing me to get this output? Any help would be great, thanks!
Assumptions:
A:=Dom::Interval(0,1):
assume(w>0 and r>0):
assumeAlso(mk<min(vk,l) and mn<min(vn,(1-n))):
assumeAlso(chin>0 and chik>0):
assumeAlso(n in A):
assumeAlso(dele>=delu and dele in A and delu in A):
assumeAlso(bet in A):
assumeAlso(lamn in A and lamk in A):
assumeAlso(an>=0 and ak>=0):
assumeAlso(thetk>0 and thetn>0):
assumeAlso(c>0):
assumeAlso(alph in A):
assumeAlso(epk in A and epn in A):
assumeAls0(z>0):
System:
fpi_sys:=[
w*n+r*ke+lamk*(1-dele)*ke+ku=c+l-d,
d=y-w*n-r*ke-an*vn-ak*vk,
ke=(1-dele)*(1-lamk)*ke+mk,
ku=(l-mk)*(1-delu),
n=(1-lamn)*n+mn,
(ak/qk)=bet*(alph*z*ke^(alph-1)*n^(1-alph)-r+(1-lamk)*(1-dele)*(ak/qk)),
(an/qn)=bet*((1-alph)*z*ke^(alph)*n^(-alph)-w+(1-lamn)*(an/qn)),
y=z*ke^alph*n^(1-alph),
(uc-(1-pk)*(1-delu)*bet*uc)/pk=bet*(uc*(r+lamk*(1-dele))+(1-dele)*(1-lamk)*((uc-(1-pk)*(1-delu)*bet*uc)/pk)),
mk=chik*vk^epk*l^(1-epk),
mn=chin*vn^epn*(1-n)^(1-epn),
pk=mk/l,
pn=mn/(1-n),
qk=mk/vk,
qn=mn/vn]:
solve(fpi_sys,[n,ke,ku,c,l,d,y,vn,vk,mk,mn,pk,pn,qk,qn],Real)
6 Comments
Walter Roberson
on 31 May 2013
Note that you have
assumeAls0(z>0):
ay-el-ess-zero instead of ay-el-ess-oh
Walter Roberson
on 31 May 2013
Side note: for Maple equivalent, replace DOM::Interval() with RealRange(), and replace assumeAlso() with additionally(), and replace solve(...,Real) with RealDomain:-solve(...)
Tristan
on 31 May 2013
Walter Roberson
on 31 May 2013
I have not figured out exactly what the problem is yet, but it appears the first four equations in fpi_sys are inconsistent between the variables ke, ku, and c.
If you discard the assumptions and remove the Real for solve() and just look at the more general solutions, then if you extract fpi_sys[1..4] then solve() with respect to [n, ke, ku, c] gives [] . It isn't the fact of solving for the 4th variable, it has to do with "c"; if you substitute in other of the variables, you will get non-empty results for most (but not all) of the rest.
You have a few variables that are self-dependent: ke is defined in terms of ke, n is defined in terms of n. If you solve() the defining single equation for the variable then you come up with a definition that can be substituted into the rest of the expressions, thus reducing the system by a variable.
Tristan
on 31 May 2013
Tristan
on 3 Jun 2013
Answers (0)
Categories
Find more on Numeric Solvers in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!