<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
  <channel>
    <title>MaplePrimes - answers and comments on Question, How do I write efficient codes using symbolic computation?</title>
    <link>http://www.mapleprimes.com/questions/96451-How-Do-I-Write-Efficient-Codes-Using</link>
    <language>en-us</language>
    <copyright>2026 Maplesoft, A Division of Waterloo Maple Inc.</copyright>
    <generator>Maplesoft Document System</generator>
    <lastBuildDate>Fri, 12 Jun 2026 21:17:11 GMT</lastBuildDate>
    <pubDate>Fri, 12 Jun 2026 21:17:11 GMT</pubDate>
    <itunes:subtitle />
    <itunes:summary />
    <description>The latest answers and comments added to the Question, How do I write efficient codes using symbolic computation?</description>
    <image>
      <url>http://www.mapleprimes.com/images/mapleprimeswhite.jpg</url>
      <title>MaplePrimes - answers and comments on Question, How do I write efficient codes using symbolic computation?</title>
      <link>http://www.mapleprimes.com/questions/96451-How-Do-I-Write-Efficient-Codes-Using</link>
    </image>
    <item>
      <title>coding such a logistic recursion</title>
      <link>http://www.mapleprimes.com/questions/96451-How-Do-I-Write-Efficient-Codes-Using?ref=Feed:MaplePrimes:How do I write efficient codes using symbolic computation?:Comments#answer96462</link>
      <itunes:summary>&lt;pre&gt;I do not think the approach to the problem makes sense beyond examples,&lt;br&gt;but here is a way:&lt;br&gt;&lt;br&gt;Your recursion is x(n+1) = a(n)*(1-x(n))*x(n), a(n+1) = w+a(n) and you&lt;br&gt;let it start in 0.&lt;br&gt;&lt;br&gt;Then you have initial values a(0) = alpha, x(0) = xi and some w.&lt;br&gt;&lt;br&gt;The recursion for a is shifting by w and has a closed form&lt;br&gt;&lt;br&gt;&amp;nbsp; rsolve({a(n+1) = w+a(n), a(0)=alpha}, {a}); &lt;br&gt;&amp;nbsp; simplify(%);&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {a(n) = alpha + w n}&lt;br&gt;&lt;br&gt;and therefore your recursion is x(n+1) = (alpha + w*n)*(1-x(n))*x(n),&lt;br&gt;which can be written as procedure to give you results after n steps:&lt;br&gt;&lt;br&gt;For saver coding first express x(n) in terms of x(n-1)&lt;br&gt;&lt;br&gt;&amp;nbsp; x(n+1) = (alpha + w*n)*(1-x(n))*x(n);&lt;br&gt;&amp;nbsp; eval(%, n=n-1);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x(n) = ((n - 1) w + alpha) (1 - x(n - 1)) x(n - 1)&lt;br&gt;&lt;br&gt;and then write the recursion down as&lt;br&gt;&lt;br&gt;&amp;nbsp; R:= proc(xi,alpha, w , n::nonnegint)&lt;br&gt;&amp;nbsp; local x0, x1;&lt;br&gt;&amp;nbsp; option remember;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # look up the help for this option&lt;br&gt;&amp;nbsp; if n=0 then return xi end if;&amp;nbsp;&amp;nbsp; # initial value&lt;br&gt;&amp;nbsp; x0:= R(xi,alpha, w, n-1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # this stands for x(n-1);&lt;br&gt;&amp;nbsp; x1:= ((n-1)*w+alpha)*(1-x0)*x0; # we just did that&lt;br&gt;&amp;nbsp; return x1; &lt;br&gt;&amp;nbsp; end proc;&lt;br&gt;&lt;br&gt;Do a check for the first few steps, to check for coding errors by&lt;br&gt;&lt;br&gt;&amp;nbsp; R(xi,alpha, w , 1);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alpha (1 - xi) xi&lt;br&gt;&lt;br&gt;&amp;nbsp; R(xi,alpha, w , 2);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (w + alpha) (1 - alpha (1 - xi) xi) alpha (1 - xi) xi&lt;br&gt;&lt;br&gt;But be aware, that it will 'explode' in size very soon, for = 20:&lt;br&gt;&lt;br&gt;&amp;nbsp; 'R(xi,alpha, w , 20)';&lt;br&gt;&amp;nbsp; length(%);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # length in characters&lt;br&gt;&amp;nbsp; evalf[2](%/80/60);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # ~size in printed pages&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5900.&lt;br&gt;&lt;br&gt;This says: after already 20 steps the expression would be 5900 pages&lt;br&gt;long, covering several books. And trying to handle it with Maple is&lt;br&gt;likely to crash it soon, for n=25 you get 190000 pages. Forget n=100.&lt;br&gt;You need Math for that (do not ask me), not a computer system.&lt;/pre&gt;</itunes:summary>
      <description>&lt;pre&gt;I do not think the approach to the problem makes sense beyond examples,&lt;br&gt;but here is a way:&lt;br&gt;&lt;br&gt;Your recursion is x(n+1) = a(n)*(1-x(n))*x(n), a(n+1) = w+a(n) and you&lt;br&gt;let it start in 0.&lt;br&gt;&lt;br&gt;Then you have initial values a(0) = alpha, x(0) = xi and some w.&lt;br&gt;&lt;br&gt;The recursion for a is shifting by w and has a closed form&lt;br&gt;&lt;br&gt;&amp;nbsp; rsolve({a(n+1) = w+a(n), a(0)=alpha}, {a}); &lt;br&gt;&amp;nbsp; simplify(%);&lt;br&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {a(n) = alpha + w n}&lt;br&gt;&lt;br&gt;and therefore your recursion is x(n+1) = (alpha + w*n)*(1-x(n))*x(n),&lt;br&gt;which can be written as procedure to give you results after n steps:&lt;br&gt;&lt;br&gt;For saver coding first express x(n) in terms of x(n-1)&lt;br&gt;&lt;br&gt;&amp;nbsp; x(n+1) = (alpha + w*n)*(1-x(n))*x(n);&lt;br&gt;&amp;nbsp; eval(%, n=n-1);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x(n) = ((n - 1) w + alpha) (1 - x(n - 1)) x(n - 1)&lt;br&gt;&lt;br&gt;and then write the recursion down as&lt;br&gt;&lt;br&gt;&amp;nbsp; R:= proc(xi,alpha, w , n::nonnegint)&lt;br&gt;&amp;nbsp; local x0, x1;&lt;br&gt;&amp;nbsp; option remember;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # look up the help for this option&lt;br&gt;&amp;nbsp; if n=0 then return xi end if;&amp;nbsp;&amp;nbsp; # initial value&lt;br&gt;&amp;nbsp; x0:= R(xi,alpha, w, n-1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # this stands for x(n-1);&lt;br&gt;&amp;nbsp; x1:= ((n-1)*w+alpha)*(1-x0)*x0; # we just did that&lt;br&gt;&amp;nbsp; return x1; &lt;br&gt;&amp;nbsp; end proc;&lt;br&gt;&lt;br&gt;Do a check for the first few steps, to check for coding errors by&lt;br&gt;&lt;br&gt;&amp;nbsp; R(xi,alpha, w , 1);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alpha (1 - xi) xi&lt;br&gt;&lt;br&gt;&amp;nbsp; R(xi,alpha, w , 2);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (w + alpha) (1 - alpha (1 - xi) xi) alpha (1 - xi) xi&lt;br&gt;&lt;br&gt;But be aware, that it will 'explode' in size very soon, for = 20:&lt;br&gt;&lt;br&gt;&amp;nbsp; 'R(xi,alpha, w , 20)';&lt;br&gt;&amp;nbsp; length(%);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # length in characters&lt;br&gt;&amp;nbsp; evalf[2](%/80/60);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # ~size in printed pages&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5900.&lt;br&gt;&lt;br&gt;This says: after already 20 steps the expression would be 5900 pages&lt;br&gt;long, covering several books. And trying to handle it with Maple is&lt;br&gt;likely to crash it soon, for n=25 you get 190000 pages. Forget n=100.&lt;br&gt;You need Math for that (do not ask me), not a computer system.&lt;/pre&gt;</description>
      <guid>96462</guid>
      <pubDate>Sat, 28 Aug 2010 12:59:49 Z</pubDate>
      <itunes:author>Axel Vogt</itunes:author>
      <author>Axel Vogt</author>
    </item>
    <item>
      <title>thanks axel</title>
      <link>http://www.mapleprimes.com/questions/96451-How-Do-I-Write-Efficient-Codes-Using?ref=Feed:MaplePrimes:How do I write efficient codes using symbolic computation?:Comments#comment96463</link>
      <itunes:summary>&lt;p&gt;writing a code wasnt the problem, the main issue was how to get rid of such a huge expression if any? &amp;nbsp;Does maple provide any method to carry out such a calculation?&lt;/p&gt;
&lt;!--break--&gt;
&lt;p&gt;hyder&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;writing a code wasnt the problem, the main issue was how to get rid of such a huge expression if any? &amp;nbsp;Does maple provide any method to carry out such a calculation?&lt;/p&gt;
&lt;!--break--&gt;
&lt;p&gt;hyder&lt;/p&gt;</description>
      <guid>96463</guid>
      <pubDate>Sat, 28 Aug 2010 14:36:05 Z</pubDate>
      <itunes:author>haider</itunes:author>
      <author>haider</author>
    </item>
  </channel>
</rss>