Group Abstract Group Abstract

Message Boards Message Boards

0
|
229 Views
|
5 Replies
|
3 Total Likes
View groups...
Share
Share this post:

Why is it impossible to derive the general term formula for this difference equation?

Posted 17 days ago
RSolve[{a[1] == 19/6, a[n] == (3 (a[n - 1])^2 + 2)/(6 a[n - 1] - 5)}, 
      a[n], n] // FullSimplify

enter image description here

Why is it impossible to derive the general term formula for this difference equation?

The manual calculation process is as follows:

enter image description here

enter image description here

enter image description here

POSTED BY: Bill Blair
5 Replies

One thing to realize is that Simplify[] and FullSimplify[] are discrete optimization functions that try to minimize the "complexity" of an expression according to a ComplexityFunction. With respect to the default complexity function, the Coth expression is the simplest. To get rid of it, construct a ComplexityFunction that counts Coth as more complex. With trig, you tend to have to penalize all the trig functions, and Log if there is inverse trig, since there are many transformations from one to the other.

Here is the default ComplexityFunction values on three possible answers:

(1 + 2 3^(1 + 2^(-1 + n)))/(3 (-1 + 3^2^(-1 + n))) // Simplify`SimplifyCount
(6*3^2^(-1 + n) + 1)/(3*3^2^(-1 + n) - 3) // Simplify`SimplifyCount
1/6 (5 + 7 Coth[2^(-1 + n) ArcCoth[2]]) // Simplify`SimplifyCount
(*
32
31
18
*)

Here is a way to get rid of the trig functions:

1/6 (5 + 7 Coth[2^(-1 + n) ArcCoth[2]]) //
 FullSimplify[#, n \[Element] Integers,
   ComplexityFunction -> (LeafCount[#] + 
       20 Count[#, Coth | Tanh | Cosh | Sinh | Log, Infinity, 
         Heads -> True] &)
   ] &
(*  2 + 7/(3 (-1 + 3^2^(-1 + n)))  *)

% // Simplify`SimplifyCount
(*  20  *)

This answer is slightly more complex, by the default complexity function, than the Coth answer.

POSTED BY: Michael Rogers
Posted 15 days ago

From this specific example, I learned that the complexity of operations even has a ranking in Mathematica. It seems that there is still a great deal to master to learn this powerful software. Thank you for your help.

POSTED BY: Bill Blair

It's in the name: it converts trigonometric expressions into equivalent exponential expressions.enter code here

POSTED BY: Gianluca Gorni

You can use TrigToExp:

RSolve[{a[1] == 19/6,
    a[n] == (3 (a[n - 1])^2 + 2)/(6 a[n - 1] - 5)},
   a[n], n] // TrigToExp // Simplify
POSTED BY: Gianluca Gorni
Posted 16 days ago

Why is the desired result form achievable through the application of the TrigToExp function?

POSTED BY: Bill Blair
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard