Message Boards Message Boards

0
|
3976 Views
|
4 Replies
|
3 Total Likes
View groups...
Share
Share this post:

Can RSolve handle 4 simultaneous 1st-Order non-linear difference equations?

Posted 7 years ago

Hello everyone

I couldn't find a lot on the documentation about limitations to the RSolve functionality. In particular, I have a set of 4 simultaneous 1st-Order non-linear Difference equations and 4 initial conditions, but keep getting the message that one of my equations "appears with no arguments". Even when I take the equation and corresponding IC away, it just returns the same code I typed, but no solution.

Here's the code:

eqn1 = V1[t + 1] == 
        (1/2)*((-(E1*(-1)^(t + 1) - E1 - 2)*(beta1*gamma2 + beta2*gamma1)*
         Y1[t] - (-1 + (-1)^(t + 1))*(1 + E1)*(-beta1*gamma2 + beta2*gamma1)*
         V1[t] - (1 + (-1)^(t + 1))*(-beta1*gamma2 + beta2*gamma1)*
         V2[t] + beta2*(E1*(-1)^(t + 1) - E1 - 2)*
         YT*((-1 + b)*gamma1 - beta1))*
      X1[t] + (-gamma1 + beta1*(-1 + a))*
      XT*(E1*(-1)^(t + 1) - E1 - 2)*Y1 (t)*gamma2)*
   E1/((1 + E1)*(-beta2*gamma1*X1[t] + gamma2*XT*(-gamma1 + beta1*(-1 + a))));

eqn2 = V1[0] == 0;

eqn3 = V2[t + 1] == 
        (1/ 2)*(((1 + (-1)^(t + 1))*(1 + E2)*(-beta1*gamma2 + beta2*gamma1)*
             V2[t] - (E2*(-1)^(t + 1) + E2 + 2)*(beta1*gamma2 + beta2*gamma1)*
             Y1[t] + (-1 + (-1)^(t + 1))*(-beta1*gamma2 + beta2*gamma1)*
             V1[t] + YT*beta2*(E2*(-1)^(t + 1) + E2 + 2)*(b*gamma1 - beta1))*X1[t] + 
         XT*(-(1 + (-1)^(t + 1))*(1 + E2)*(-beta1*gamma2 + beta2*gamma1)*
             V2[t] + gamma2*(E2*(-1)^(t + 1) + E2 + 2)*(a*beta1 - gamma1)*
             Y1[t] - (-1 + (-1)^(t + 1))*(-beta1*gamma2 + beta2*gamma1)*
             V1[t] - ((-gamma1 + beta1*(-1 + a))*gamma2 + beta2*((-1 + b)*gamma1 - beta1))*(E2*(-1)^(t + 1) + E2 + 2)*YT))*
       E2/((1 + E2)*(-beta2*gamma1*X1[t] + gamma2*XT*(-gamma1 + beta1*(-1 + a)))) ;

 eqn4 = V2[0] == 0;

 eqn5 = X1[t + 1] ==
             -(1/2)*(1 + (-1)^(2 + t))*beta1*(((beta1*gamma2 + beta2*gamma1)*X1[t] - 
       gamma2*XT*(-gamma1 + beta1*(-1 + a)))*Y1[t] - 
       X1[t]*(beta1*gamma2 - beta2*gamma1)*V1[t] - 
       beta2*(gamma1*V2[t + 1] + ((-1 + b)*gamma1 - beta1)*YT)*X1[t] +
       gamma2*XT*(-gamma1 + beta1*(-1 + a))*
        V2[t + 1])/((-beta1*gamma2*
       Y1[t] + (beta1*gamma2 - beta2*gamma1)*V1[t] + beta2*((-1 + b)*gamma1 - beta1)*YT)*(beta1 + gamma1)) +
     (1/2)*(((-beta1*gamma2 - beta2*gamma1)*X1[t] + 
      gamma2*XT*(-gamma1 + beta1*(-1 + a)))*Y1[t] - 
      X1[t]*(beta1*gamma2 - beta2*gamma1)*V2[t] + 
      beta2*(-gamma1*V1[t + 1] + ((-1 + b)*gamma1 - beta1)*YT)*X1[t] +
      XT*(-gamma1 + beta1*(-1 + a))*V1[t + 1]*gamma2)*
      beta1*((-1)^(t + 1) + 1)/((-beta1*gamma2*Y1[t] + (-beta1*gamma2 + beta2*gamma1)*
      V2[t] + beta2*((-1 + b)*gamma1 - beta1)*YT)*(beta1 + gamma1));

 eqn6 = X1[0] == a*XT;

 eqn7 = Y1[t + 1] ==
             -(1/2)*(((2*beta1*gamma2 + 2*beta2*gamma1)*
         Y1[t] + ((-1)^(t + 1) - 1)*(beta1*gamma2 - beta2*gamma1)*
         V1[t] + ((-1)^(t + 1) + 1)*(beta1*gamma2 - beta2*gamma1)*
         V2[t] - (gamma1*(V1[t + 1] + V2[t + 1])*(-1)^(t + 1) + gamma1*V1[t + 1] - 
         gamma1*V2[t + 1] + (2*((-1 + b)*gamma1 - beta1))*YT)*beta2)*X1[t] + gamma2*(-gamma1 + 
        beta1*(-1 + a))*(-2*Y1[t] + (V1[t + 1] + V2[t + 1])*(-1)^(t + 1) + V1[t + 1] - V2[t + 1])*XT)*
       gamma1/((-beta2*gamma1*X1 (t) + gamma2*XT*(-gamma1 + beta1*(-1 + a)))*(beta1 + gamma1));

  eqn8 = Y1[0] == b*YT;

Followed by:

RSolve[{eqn1, eqn2, eqn3, eqn4, eqn5, eqn6, eqn7, eqn8}, {V1, V2, X1,Y1}, t]

To which I get "RSolve::dvnoarg: The function Y1 appears with no arguments."

Any thoughts are appreciated. Many thanks!

4 Replies

Can't get rid of the quotients and that's as simplified as it gets, unfortunately...thanks for the suggestions though! :)

Posted 7 years ago

More on a level of superstition than anything else, you might see if you could justify cross multiplying to get rid of those denominators. I have a feeling from some experience that denominators sometimes make finding solutions much more difficult.

Similar superstition, you might see if you could get all the f[1+t] neatly pushed over to the left hand side and the f[t] to the right hand side of your equations.

Would it be possible to use Simplify or Collect the same f[t] together on the right hand side and see if there is any way to simplify the forest of coefficients that you have?

POSTED BY: Bill Simpson
Posted 7 years ago

Notice that you have

Y1(t)

instead of

Y1[t]

in eqn1 and

X1(t)

instead of

X1[t]

in eqn7

POSTED BY: Bill Simpson

Thanks for that! The error disappeared, but the program still can't solve the system...

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