Trouble understanding MUPAD output.... solving a non-linear system analytically.

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

Note that you have
assumeAls0(z>0):
ay-el-ess-zero instead of ay-el-ess-oh
Side note: for Maple equivalent, replace DOM::Interval() with RealRange(), and replace assumeAlso() with additionally(), and replace solve(...,Real) with RealDomain:-solve(...)
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.
Interestingly, I divided the system through by n where applicable, redefined scaled versions of endogenous variables (except for pk, pn, qk, qn since these are already ratios of endogenous variables) and solved the system by hand quite easily. Assuming I didn't make an algebraic mistake, an analytic solution exists, with all variables taking on real values for a reasonable parameterization (the parameterization here is nests the parameterization yielding this solution).
In light of this, it's hard to understand why I've had so much trouble confirming the results in MATLAB. I've tried rewriting the system in various forms, to no avail...
Also, as you may or may not have found yourself, finding a solution to this numerically is nontrivial, and seems fairly sensitive to the initial point chosen. Any ideas how to proceed?

Sign in to comment.

Answers (0)

Asked:

on 31 May 2013

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!