<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
  <channel>
    <title>MaplePrimes - answers and comments on Question, Arbitrary Close Solutions in fsolve</title>
    <link>http://www.mapleprimes.com/questions/143324-Arbitrary-Close-Solutions-In-Fsolve</link>
    <language>en-us</language>
    <copyright>2026 Maplesoft, A Division of Waterloo Maple Inc.</copyright>
    <generator>Maplesoft Document System</generator>
    <lastBuildDate>Tue, 09 Jun 2026 11:18:49 GMT</lastBuildDate>
    <pubDate>Tue, 09 Jun 2026 11:18:49 GMT</pubDate>
    <itunes:subtitle />
    <itunes:summary />
    <description>The latest answers and comments added to the Question, Arbitrary Close Solutions in fsolve</description>
    <image>
      <url>http://www.mapleprimes.com/images/mapleprimeswhite.jpg</url>
      <title>MaplePrimes - answers and comments on Question, Arbitrary Close Solutions in fsolve</title>
      <link>http://www.mapleprimes.com/questions/143324-Arbitrary-Close-Solutions-In-Fsolve</link>
    </image>
    <item>
      <title>using avoid</title>
      <link>http://www.mapleprimes.com/questions/143324-Arbitrary-Close-Solutions-In-Fsolve?ref=Feed:MaplePrimes:Arbitrary Close Solutions in fsolve:Comments#answer143330</link>
      <itunes:summary>&lt;p&gt;If I understand the issue rightly, then you might be able to use fsolve's `avoid` option to find (potentially) up to all three roots. And then you could just pick whichever of those had the least `t` value.&lt;/p&gt;
&lt;p&gt;I'm not sure that I understand why Digits=180 is necessary.&lt;/p&gt;
&lt;p&gt;The method I've outlined will have to be allowed to fail out, by which I mean that at every iteration if will have to be allowed to search until it hits its own internal number-of-attempts-limit. This means that it will run slower as a whole.&lt;/p&gt;
&lt;p&gt;When using a type-check to test the return value from fsolve computed at the top-level, you should use eval(soln,1), If you don't then &lt;em&gt;in the case that fsolve failed&lt;/em&gt; the returned unevaluated `fsolve` call will get re-evaluated by virtue of its being an argument in the call to `type`.&lt;/p&gt;
&lt;p&gt;&lt;a href="/view.aspx?sf=143330/453615/billiard_simulatio_m.mw"&gt;billiard_simulatio_m.mw&lt;/a&gt;&lt;/p&gt;
&lt;!--break--&gt;
&lt;p&gt;Let me know if I've misunderstood.&lt;/p&gt;
&lt;p&gt;acer&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;If I understand the issue rightly, then you might be able to use fsolve's `avoid` option to find (potentially) up to all three roots. And then you could just pick whichever of those had the least `t` value.&lt;/p&gt;
&lt;p&gt;I'm not sure that I understand why Digits=180 is necessary.&lt;/p&gt;
&lt;p&gt;The method I've outlined will have to be allowed to fail out, by which I mean that at every iteration if will have to be allowed to search until it hits its own internal number-of-attempts-limit. This means that it will run slower as a whole.&lt;/p&gt;
&lt;p&gt;When using a type-check to test the return value from fsolve computed at the top-level, you should use eval(soln,1), If you don't then &lt;em&gt;in the case that fsolve failed&lt;/em&gt; the returned unevaluated `fsolve` call will get re-evaluated by virtue of its being an argument in the call to `type`.&lt;/p&gt;
&lt;p&gt;&lt;a href="/view.aspx?sf=143330/453615/billiard_simulatio_m.mw"&gt;billiard_simulatio_m.mw&lt;/a&gt;&lt;/p&gt;
&lt;!--break--&gt;
&lt;p&gt;Let me know if I've misunderstood.&lt;/p&gt;
&lt;p&gt;acer&lt;/p&gt;</description>
      <guid>143330</guid>
      <pubDate>Sun, 10 Feb 2013 07:57:17 Z</pubDate>
      <itunes:author>acer</itunes:author>
      <author>acer</author>
    </item>
    <item>
      <title>ps.</title>
      <link>http://www.mapleprimes.com/questions/143324-Arbitrary-Close-Solutions-In-Fsolve?ref=Feed:MaplePrimes:Arbitrary Close Solutions in fsolve:Comments#comment143331</link>
      <itunes:summary>&lt;p&gt;ps. If the suggested process makes sense, then you could tweak it a little so that it stopped looking when 3 roots were found (at a given iteration). That would save a bit of time. But it would still involve the costly fail-out for any &amp;nbsp;iteration at which there were only eactly 1 or 2 roots. This is all under the assumption that, as you wrote, there are 3 roots at most for each iteration.&lt;/p&gt;
&lt;!--break--&gt;
&lt;p&gt;acer&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;ps. If the suggested process makes sense, then you could tweak it a little so that it stopped looking when 3 roots were found (at a given iteration). That would save a bit of time. But it would still involve the costly fail-out for any &amp;nbsp;iteration at which there were only eactly 1 or 2 roots. This is all under the assumption that, as you wrote, there are 3 roots at most for each iteration.&lt;/p&gt;
&lt;!--break--&gt;
&lt;p&gt;acer&lt;/p&gt;</description>
      <guid>143331</guid>
      <pubDate>Sun, 10 Feb 2013 08:14:02 Z</pubDate>
      <itunes:author>acer</itunes:author>
      <author>acer</author>
    </item>
    <item>
      <title>Arbitrarily close</title>
      <link>http://www.mapleprimes.com/questions/143324-Arbitrary-Close-Solutions-In-Fsolve?ref=Feed:MaplePrimes:Arbitrary Close Solutions in fsolve:Comments#comment143334</link>
      <itunes:summary>&lt;p&gt;Acer said:&lt;br&gt;&amp;gt; I'm not sure that I understand why Digits=180 is necessary.&lt;/p&gt;
&lt;p&gt;Perhaps when the Asker said that the solutions were arbitrarily close, s/he meant that they could not be distinguished at a lower value of &lt;strong&gt;Digits&lt;/strong&gt;. Perhaps an approach is needed where &lt;strong&gt;Digits&lt;/strong&gt; is gradually pushed up until they can be distinguished. And perhaps this theorem will be useful:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;em&gt;r&lt;/em&gt; is a multiple root of&lt;em&gt; f(r)&lt;/em&gt; iff &lt;em&gt;D(f)(r)&lt;/em&gt; = 0.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So, if&lt;em&gt; D(f)(r)&lt;/em&gt; is close to 0 (say, it &lt;strong&gt;fnormal&lt;/strong&gt;s to &lt;strong&gt;0&lt;/strong&gt;), then increase &lt;strong&gt;Digits&lt;/strong&gt;, and redo the &lt;strong&gt;fsolve&lt;/strong&gt; in a very narrow window, whlle &lt;strong&gt;avoid&lt;/strong&gt;ing &lt;em&gt;r&lt;/em&gt;.&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;Acer said:&lt;br&gt;&amp;gt; I'm not sure that I understand why Digits=180 is necessary.&lt;/p&gt;
&lt;p&gt;Perhaps when the Asker said that the solutions were arbitrarily close, s/he meant that they could not be distinguished at a lower value of &lt;strong&gt;Digits&lt;/strong&gt;. Perhaps an approach is needed where &lt;strong&gt;Digits&lt;/strong&gt; is gradually pushed up until they can be distinguished. And perhaps this theorem will be useful:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;em&gt;r&lt;/em&gt; is a multiple root of&lt;em&gt; f(r)&lt;/em&gt; iff &lt;em&gt;D(f)(r)&lt;/em&gt; = 0.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So, if&lt;em&gt; D(f)(r)&lt;/em&gt; is close to 0 (say, it &lt;strong&gt;fnormal&lt;/strong&gt;s to &lt;strong&gt;0&lt;/strong&gt;), then increase &lt;strong&gt;Digits&lt;/strong&gt;, and redo the &lt;strong&gt;fsolve&lt;/strong&gt; in a very narrow window, whlle &lt;strong&gt;avoid&lt;/strong&gt;ing &lt;em&gt;r&lt;/em&gt;.&lt;/p&gt;</description>
      <guid>143334</guid>
      <pubDate>Sun, 10 Feb 2013 15:01:18 Z</pubDate>
      <itunes:author>Carl Love</itunes:author>
      <author>Carl Love</author>
    </item>
    <item>
      <title>three close roots</title>
      <link>http://www.mapleprimes.com/questions/143324-Arbitrary-Close-Solutions-In-Fsolve?ref=Feed:MaplePrimes:Arbitrary Close Solutions in fsolve:Comments#comment143337</link>
      <itunes:summary>&lt;p&gt;&lt;a href="http://www.mapleprimes.com/questions/143324-Arbitrary-Close-Solutions-In-Fsolve#comment143334"&gt;@Carl Love&lt;/a&gt;&amp;nbsp;I don't quite see how this guards against the situation that all three roots are close. If they are, then it might generate the 2nd and 3rd "highest-in-t" roots.&lt;/p&gt;
&lt;p&gt;I don't see how to compute safely which narrow `t` range to use, either, or how high Digtit has to be at the nth step. Unless there is some more knowledge, such as (making this up now) that the close root pairs get closer from iteration to iteration, the Digits from the nth is always enough to resolve the (n+1)th close pair, the 3rd root is not as close, etc, then I don't see much that is as safe as trying to find (potentially) all three roots.&lt;/p&gt;
&lt;p&gt;I haven't studied the modeling though. There may be justifications, based on the math.&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;&lt;a href="http://www.mapleprimes.com/questions/143324-Arbitrary-Close-Solutions-In-Fsolve#comment143334"&gt;@Carl Love&lt;/a&gt;&amp;nbsp;I don't quite see how this guards against the situation that all three roots are close. If they are, then it might generate the 2nd and 3rd "highest-in-t" roots.&lt;/p&gt;
&lt;p&gt;I don't see how to compute safely which narrow `t` range to use, either, or how high Digtit has to be at the nth step. Unless there is some more knowledge, such as (making this up now) that the close root pairs get closer from iteration to iteration, the Digits from the nth is always enough to resolve the (n+1)th close pair, the 3rd root is not as close, etc, then I don't see much that is as safe as trying to find (potentially) all three roots.&lt;/p&gt;
&lt;p&gt;I haven't studied the modeling though. There may be justifications, based on the math.&lt;/p&gt;</description>
      <guid>143337</guid>
      <pubDate>Sun, 10 Feb 2013 19:47:11 Z</pubDate>
      <itunes:author>acer</itunes:author>
      <author>acer</author>
    </item>
    <item>
      <title>@Carl Love&amp;nbsp;your right, as far as I can</title>
      <link>http://www.mapleprimes.com/questions/143324-Arbitrary-Close-Solutions-In-Fsolve?ref=Feed:MaplePrimes:Arbitrary Close Solutions in fsolve:Comments#comment143338</link>
      <itunes:summary>&lt;p&gt;&lt;a href="http://www.mapleprimes.com/questions/143324-Arbitrary-Close-Solutions-In-Fsolve#comment143334"&gt;@Carl Love&lt;/a&gt;&amp;nbsp;your right, as far as I can tell, the solutions may be so close together fsolve cant tell them apart. So &lt;br&gt;if I start at a solution of:&lt;br&gt;t=0.00005, theta=0.00005 and the REAL next solution is&lt;br&gt;t=0.0000500001, theta= 0.0000500001,&lt;/p&gt;
&lt;p&gt;fsolve may skip it to find something like&amp;nbsp;&lt;br&gt;t=0.003, theta=0.003&lt;/p&gt;
&lt;p&gt;(I call this teleporting) This only occurs when there exist more than one solution. In my case there are either 1 or 3 solutions which partially depend on the time (t). (Even if time allows for mulitple solutions, the trajectory of the ball may not)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;&lt;a href="http://www.mapleprimes.com/questions/143324-Arbitrary-Close-Solutions-In-Fsolve#comment143334"&gt;@Carl Love&lt;/a&gt;&amp;nbsp;your right, as far as I can tell, the solutions may be so close together fsolve cant tell them apart. So &lt;br&gt;if I start at a solution of:&lt;br&gt;t=0.00005, theta=0.00005 and the REAL next solution is&lt;br&gt;t=0.0000500001, theta= 0.0000500001,&lt;/p&gt;
&lt;p&gt;fsolve may skip it to find something like&amp;nbsp;&lt;br&gt;t=0.003, theta=0.003&lt;/p&gt;
&lt;p&gt;(I call this teleporting) This only occurs when there exist more than one solution. In my case there are either 1 or 3 solutions which partially depend on the time (t). (Even if time allows for mulitple solutions, the trajectory of the ball may not)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>143338</guid>
      <pubDate>Sun, 10 Feb 2013 19:57:09 Z</pubDate>
      <itunes:author>jschulzb</itunes:author>
      <author>jschulzb</author>
    </item>
  </channel>
</rss>