Message Boards Message Boards

0
|
4727 Views
|
3 Replies
|
2 Total Likes
View groups...
Share
Share this post:

Solving four recurrence relations simultaneously

Posted 10 years ago
Hello,

I have four recurrence equations which I would like to solve simultanously but, Mathematica keeps giving me the input line in the output. does anyone know how to solve this problem. Is it a bug or am I writing something wrong in the code. This is the code I am writing in the input:

RSolve[{a[
m + 1] == (a[m] *0.3*(x[m]/800)) - (a[m]*0.2) - (a[m]*0.5) + (0.4*c[m + 1]),    c[m + 1] == (c[m] *0.6*(z[m]/300)) - (c[m]*0.8) - (c[m] 0.9) + (0.1*
a[m + 1]),    x[m + 1] == ((x[m]* 0.3*(a[m]/800)) + (x[m]*0.2)) + (0.7*z[m + 1]),
  z[m + 1] == ((z[m] *0.6*(c[m]/300)) + (z[m]*0.8) ) + (0.9*
x[m + 1])} , {a[m], x[m], c[m], z[m]}, m]
3 Replies
Posted 10 years ago
I changed the way you wrote a,x,c,z to the way that Mathematica requires. This misunderstanding is very common for new users of DSolve and RSolve. I tested my changes with the simplified system to verify that it worked. When it did not work with your full system that tells me that there may be no closed form solution to your system or that Mathematica does not know how to solve that kind of system or there is perhaps a bug in Mathematica.

If you can show by hand how there is a closed form solution to your system which Mathematica is not finding then it is possible that they would improve Mathematica to include this at some time in the future, but that often takes years or infinity to happen.
POSTED BY: Bill Simpson
Posted 10 years ago
This greatly simplified system of equations with the syntax changed
In[1]:= RSolve[{a[m + 1] == (a[m]*0.3) - (a[m]*0.2) - (a[m]*0.5) + (0.4*c[m + 1]),
  c[m + 1] == (c[m]*0.6) - (c[m]*0.8) - (c[m] 0.9) + (0.1*a[m + 1])}, {a[m], c[m]}, m]

Out[1]= {{a[m] -> 0.0324598 2.^(-2. m)8.44425*10^14^(-1. m) (1. (-3.95578*10^15)^m +
29.8074 (-1.32188*10^15)^m) C[1] - 0.587765 (-1.)^m 2.^(-2. m)8.44425*10^14^(-1. m)
(1.32188*10^15^m - 1. 3.95578*10^15^m) C[2], c[m] -> -0.0534332 (-1.)^m 2.^(-2. m)
8.44425*10^14^(-1. m) (1.32188*10^15^m - 1. 3.95578*10^15^m) C[1] + 0.96754 2.^(-2. m)
8.44425*10^14^(-1. m) (1. (-3.95578*10^15)^m + 0.0335488 (-1.32188*10^15)^m) C[2]}}
finds a solution.

This full system of equations with the same syntax changes
RSolve[{a[m + 1] == (a[m]*0.3*(x[m]/800)) - (a[m]*0.2) - (a[m]*0.5) + (0.4*c[m + 1]),
  c[m + 1] == (c[m]*0.6*(z[m]/300)) - (c[m]*0.8) - (c[m] 0.9) + (0.1*a[m + 1]),
  x[m + 1] == ((x[m]*0.3*(a[m]/800)) + (x[m]*0.2)) + (0.7*z[m + 1]),
  z[m + 1] == ((z[m]*0.6*(c[m]/300)) + (z[m]*0.8)) + (0.9*x[m + 1])}, {a[m], x[m], c[m], z[m]}, m]
doesn't have a solution the system can find.

Sometimes using exact fractions instead of decimals can help you get answers, or better answers,
but that doesn't seem to help in this particular problem.
POSTED BY: Bill Simpson
so, do you think this is a problem in the system or mathematica? 
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract