<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
  <channel>
    <title>MaplePrimes - answers and comments on Question, Finding solutions with less accuracy</title>
    <link>http://www.mapleprimes.com/questions/143112-Finding-Solutions-With-Less-Accuracy</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 12:18:05 GMT</lastBuildDate>
    <pubDate>Tue, 09 Jun 2026 12:18:05 GMT</pubDate>
    <itunes:subtitle />
    <itunes:summary />
    <description>The latest answers and comments added to the Question, Finding solutions with less accuracy</description>
    <image>
      <url>http://www.mapleprimes.com/images/mapleprimeswhite.jpg</url>
      <title>MaplePrimes - answers and comments on Question, Finding solutions with less accuracy</title>
      <link>http://www.mapleprimes.com/questions/143112-Finding-Solutions-With-Less-Accuracy</link>
    </image>
    <item>
      <title>precision and accuracy</title>
      <link>http://www.mapleprimes.com/questions/143112-Finding-Solutions-With-Less-Accuracy?ref=Feed:MaplePrimes:Finding solutions with less accuracy:Comments#answer143126</link>
      <itunes:summary>&lt;p&gt;It's not clear, right now, that you know for sure that there is in fact a root with&amp;nbsp;&lt;span&gt;a1:=1.514 and a2:=5.049. Perhaps you are willing to allow a small violation of the equations, in which case those could be constraints of an optimization problem for which you'd likely need a global solver.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;It might be interesting to see how the other variables change, w.r.t. a1 and a2, near the previous full precision root you cited.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In your earlier thread, Carl Love mentioned controlling accuracy and precision separately. I too had been working along those lines, to investigate. I did not find a root, but it's not clear whether that is because the ranges are so great, or the functions are so nonlinear, or perhaps there is no root for those chopped a1 and a2 values.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Anyway, here is one way to have the evaluations done at higher precision while still allowing fsolve to do its usual thing and compute an accuracy tolerance based on the inbound Digits value.&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;restart:

read "Cvector_with_a.m":

Cnew:=eval(C,[a1=1.514,a2=5.049]):

for i from 1 to 9 do
   Cproc[i]:=codegen[optimize](
                unapply(Cnew[i],[indets(Cnew[5],name)[]])):
end do:

save Cproc, "Cproc.m":  # you only ever want to do this once
&lt;/pre&gt;
&lt;p&gt;And then,&lt;/p&gt;
&lt;pre&gt;restart:

read "Cproc.m":

for i from 1 to 9 do
   f[i]:=subs(counter=i,proc(cc,C1,C2,C3,C4,C5,C6,C7,HB)
      Digits:=100:
      Cproc[counter](cc,C1,C2,C3,C4,C5,C6,C7,HB);
   end proc);
end do:

Cproc[5](1.0,
         246.851, 9.597, 7.153, 56.14, 18.91, 2.656, 7.73,
         0.012);

                                              11
                              -0.9931016321 10

f[5](1.0,
     246.851, 9.597, 7.153, 56.14, 18.91, 2.656, 7.73,
     0.012);

-0.992357302391520534067512587085549339330928664664135982173091890590934784\

                                   11
    6556567851795358311687275614 10
&lt;/pre&gt;
&lt;p&gt;and so on. Of course not all those decimal digits in the result from f[5](...) above are correct. But hopefully there are enough correct (more than from Cproc[5] called at default working precision, anyway) to allow a numerical solver to get a grip and converge if it can.&lt;/p&gt;
&lt;p&gt;The procedures f[i] use the codegen[optimized] procedures's formulas -- by virtue of calling Cproc[i] -- but they each temporarily raise Digits to 100 before making those calls.&lt;/p&gt;
&lt;p&gt;You can then try feeding those to a rootfinder (or global optimization scheme, if that's what you want). And you could replace the hard-coded 100 by some name, so that the higher working precision was under your control.&lt;/p&gt;
&lt;!--break--&gt;
&lt;p&gt;acer&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;It's not clear, right now, that you know for sure that there is in fact a root with&amp;nbsp;&lt;span&gt;a1:=1.514 and a2:=5.049. Perhaps you are willing to allow a small violation of the equations, in which case those could be constraints of an optimization problem for which you'd likely need a global solver.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;It might be interesting to see how the other variables change, w.r.t. a1 and a2, near the previous full precision root you cited.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;In your earlier thread, Carl Love mentioned controlling accuracy and precision separately. I too had been working along those lines, to investigate. I did not find a root, but it's not clear whether that is because the ranges are so great, or the functions are so nonlinear, or perhaps there is no root for those chopped a1 and a2 values.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Anyway, here is one way to have the evaluations done at higher precision while still allowing fsolve to do its usual thing and compute an accuracy tolerance based on the inbound Digits value.&lt;/span&gt;&lt;/p&gt;
&lt;pre&gt;restart:

read "Cvector_with_a.m":

Cnew:=eval(C,[a1=1.514,a2=5.049]):

for i from 1 to 9 do
   Cproc[i]:=codegen[optimize](
                unapply(Cnew[i],[indets(Cnew[5],name)[]])):
end do:

save Cproc, "Cproc.m":  # you only ever want to do this once
&lt;/pre&gt;
&lt;p&gt;And then,&lt;/p&gt;
&lt;pre&gt;restart:

read "Cproc.m":

for i from 1 to 9 do
   f[i]:=subs(counter=i,proc(cc,C1,C2,C3,C4,C5,C6,C7,HB)
      Digits:=100:
      Cproc[counter](cc,C1,C2,C3,C4,C5,C6,C7,HB);
   end proc);
end do:

Cproc[5](1.0,
         246.851, 9.597, 7.153, 56.14, 18.91, 2.656, 7.73,
         0.012);

                                              11
                              -0.9931016321 10

f[5](1.0,
     246.851, 9.597, 7.153, 56.14, 18.91, 2.656, 7.73,
     0.012);

-0.992357302391520534067512587085549339330928664664135982173091890590934784\

                                   11
    6556567851795358311687275614 10
&lt;/pre&gt;
&lt;p&gt;and so on. Of course not all those decimal digits in the result from f[5](...) above are correct. But hopefully there are enough correct (more than from Cproc[5] called at default working precision, anyway) to allow a numerical solver to get a grip and converge if it can.&lt;/p&gt;
&lt;p&gt;The procedures f[i] use the codegen[optimized] procedures's formulas -- by virtue of calling Cproc[i] -- but they each temporarily raise Digits to 100 before making those calls.&lt;/p&gt;
&lt;p&gt;You can then try feeding those to a rootfinder (or global optimization scheme, if that's what you want). And you could replace the hard-coded 100 by some name, so that the higher working precision was under your control.&lt;/p&gt;
&lt;!--break--&gt;
&lt;p&gt;acer&lt;/p&gt;</description>
      <guid>143126</guid>
      <pubDate>Wed, 06 Feb 2013 05:02:05 Z</pubDate>
      <itunes:author>acer</itunes:author>
      <author>acer</author>
    </item>
    <item>
      <title>A Start with Optimization</title>
      <link>http://www.mapleprimes.com/questions/143112-Finding-Solutions-With-Less-Accuracy?ref=Feed:MaplePrimes:Finding solutions with less accuracy:Comments#answer143162</link>
      <itunes:summary>&lt;p&gt;Sometimes Optimization is able to do something with overconstrained systems. One way to try this is:&lt;/p&gt;
&lt;pre&gt;   read("Cvector_with_a.m"):
   infolevel[Optimization]:=4;
   Optimization:-Minimize(1,{seq(C[i]=0, i=1..9), c1&amp;gt;=1,c&amp;lt;=900,c2&amp;gt;=1,c2&amp;lt;=900,
c3&amp;gt;=1,c3&amp;lt;=900,c4&amp;gt;=1,c4&amp;lt;=900,c5&amp;gt;=1,c5&amp;lt;=900,c6&amp;gt;=1,c6&amp;lt;=900,c7&amp;gt;=1,
c7&amp;lt;=900,hb&amp;gt;=0.01,hb&amp;lt;=900, a1&amp;gt;=1.5, a1&amp;lt;=1.6, a2&amp;gt;=5,a2&amp;lt;=5.1},
feasibilitytolerance=10^(-3), iterationlimit=1000, initialpoint=[a1=1.52, a2=5.04,
c=1,hb=0.012,c1=46.9, c2=9.60, c3=7.15,c4=56.1,c5=18.9,c6=2.65,c7=7.74]);
&lt;/pre&gt;
&lt;p&gt;Unfortunately, that does not appear to converge on a solution. You could play around with the various &lt;a href='http://www.maplesoft.com/support/help/search.aspx?term=Optimization,Minimize' target='_new'&gt;?Optimization,Minimize&lt;/a&gt; options, the linear constraints on the variables, and the precision of the initial point.&amp;nbsp; You can also move the C[i]=0 constraints to the objective function and try that instead.&amp;nbsp; One of these might work for you.&lt;br&gt;&lt;br&gt;Good Luck,&lt;/p&gt;
&lt;p&gt;John&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;Sometimes Optimization is able to do something with overconstrained systems. One way to try this is:&lt;/p&gt;
&lt;pre&gt;   read("Cvector_with_a.m"):
   infolevel[Optimization]:=4;
   Optimization:-Minimize(1,{seq(C[i]=0, i=1..9), c1&amp;gt;=1,c&amp;lt;=900,c2&amp;gt;=1,c2&amp;lt;=900,
c3&amp;gt;=1,c3&amp;lt;=900,c4&amp;gt;=1,c4&amp;lt;=900,c5&amp;gt;=1,c5&amp;lt;=900,c6&amp;gt;=1,c6&amp;lt;=900,c7&amp;gt;=1,
c7&amp;lt;=900,hb&amp;gt;=0.01,hb&amp;lt;=900, a1&amp;gt;=1.5, a1&amp;lt;=1.6, a2&amp;gt;=5,a2&amp;lt;=5.1},
feasibilitytolerance=10^(-3), iterationlimit=1000, initialpoint=[a1=1.52, a2=5.04,
c=1,hb=0.012,c1=46.9, c2=9.60, c3=7.15,c4=56.1,c5=18.9,c6=2.65,c7=7.74]);
&lt;/pre&gt;
&lt;p&gt;Unfortunately, that does not appear to converge on a solution. You could play around with the various &lt;a href='http://www.maplesoft.com/support/help/search.aspx?term=Optimization,Minimize' target='_new'&gt;?Optimization,Minimize&lt;/a&gt; options, the linear constraints on the variables, and the precision of the initial point.&amp;nbsp; You can also move the C[i]=0 constraints to the objective function and try that instead.&amp;nbsp; One of these might work for you.&lt;br&gt;&lt;br&gt;Good Luck,&lt;/p&gt;
&lt;p&gt;John&lt;/p&gt;</description>
      <guid>143162</guid>
      <pubDate>Wed, 06 Feb 2013 18:45:17 Z</pubDate>
      <itunes:author>John May</itunes:author>
      <author>John May</author>
    </item>
    <item>
      <title>Lack of procedure knowledge</title>
      <link>http://www.mapleprimes.com/questions/143112-Finding-Solutions-With-Less-Accuracy?ref=Feed:MaplePrimes:Finding solutions with less accuracy:Comments#comment143181</link>
      <itunes:summary>&lt;p&gt;Acer, thanks for the reply. However Maple procedures are very new to me and I would like a little clarification. In the first set of code I don't understand what this means within the unapply brackets:&lt;/p&gt;
&lt;pre&gt;[indets(Cnew[5],name)[]] I personnally would have gone along the lines of [c, c1, c2, c3, c4, c5, c6, c7, hb].&lt;br&gt;&lt;br&gt;Also, for the second set of code, I have no idea what is going on here:&lt;br&gt;&lt;br&gt;&lt;/pre&gt;
&lt;pre&gt;Cproc[5](1.0,
         246.851, 9.597, 7.153, 56.14, 18.91, 2.656, 7.73,
         0.012);

                                              11
                              -0.9931016321 10

f[5](1.0,
     246.851, 9.597, 7.153, 56.14, 18.91, 2.656, 7.73,
     0.012);

-0.992357302391520534067512587085549339330928664664135982173091890590934784\

                                   11
    6556567851795358311687275614 10&lt;br&gt;&lt;br&gt;Thanks!&lt;br&gt;&lt;br&gt;Pat&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;</itunes:summary>
      <description>&lt;p&gt;Acer, thanks for the reply. However Maple procedures are very new to me and I would like a little clarification. In the first set of code I don't understand what this means within the unapply brackets:&lt;/p&gt;
&lt;pre&gt;[indets(Cnew[5],name)[]] I personnally would have gone along the lines of [c, c1, c2, c3, c4, c5, c6, c7, hb].&lt;br&gt;&lt;br&gt;Also, for the second set of code, I have no idea what is going on here:&lt;br&gt;&lt;br&gt;&lt;/pre&gt;
&lt;pre&gt;Cproc[5](1.0,
         246.851, 9.597, 7.153, 56.14, 18.91, 2.656, 7.73,
         0.012);

                                              11
                              -0.9931016321 10

f[5](1.0,
     246.851, 9.597, 7.153, 56.14, 18.91, 2.656, 7.73,
     0.012);

-0.992357302391520534067512587085549339330928664664135982173091890590934784\

                                   11
    6556567851795358311687275614 10&lt;br&gt;&lt;br&gt;Thanks!&lt;br&gt;&lt;br&gt;Pat&lt;/pre&gt;
&lt;pre&gt;&amp;nbsp;&lt;/pre&gt;</description>
      <guid>143181</guid>
      <pubDate>Wed, 06 Feb 2013 21:12:38 Z</pubDate>
      <itunes:author>PatD</itunes:author>
      <author>PatD</author>
    </item>
    <item>
      <title>raising working precision</title>
      <link>http://www.mapleprimes.com/questions/143112-Finding-Solutions-With-Less-Accuracy?ref=Feed:MaplePrimes:Finding solutions with less accuracy:Comments#comment143187</link>
      <itunes:summary>&lt;p&gt;&lt;a href="http://www.mapleprimes.com/questions/143112-Finding-Solutions-With-Less-Accuracy#comment143181"&gt;@PatD&lt;/a&gt; The procedure Cproc[5] evaluates the 5th expression from your `C` (for those fixed a1 and a2 values you gave), following production from that of an optimized procedure. When Cproc[5] is called, its arguments are used as values for the remaining varaibles (given that a1 and a2 have been fixed).&lt;/p&gt;
&lt;p&gt;The procedure f[5] also accepts the same kind of arguments as Cproc[5]. In fact, all that f[5] does is raise the working precision (Digits) and then pass the arguments on to a call to Cproc[5].&lt;/p&gt;
&lt;p&gt;Digits is an environment variable, and as such will be inherited in the call to Cproc[5] done within f[5]. So f[5] is just a slick way to get Cproc[5] to compute at higher working precision &lt;em&gt;without having to raise Digits at the top level&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I gave an example, where one can see that f[5] and Cproc[5] return results that differ in something like the 3rd decimal digit. This shows what you said, that the expressions are sensitive to working precision. Hopefully the result from f[5] is accurate enough.&lt;/p&gt;
&lt;p&gt;And similarly, for all the f[i] and Cproc[i] for i=1..9.&lt;/p&gt;
&lt;p&gt;I created such f[i] because of what Carl mentioned about fsolve. When you call fsolve it has to figure out its stopping/acceptance criteria. It bases that on the number of variables and on Digits. If you want your expressions to get evaluated at high working precision (b/c of roundoff error or numerical instability) then the temptation is to just raise Digits high at the level from which you call fsolve. But raising Digits high at that level will cause fsolve to use a much tighter accuracy/acceptance, which again does not get met. It's a push-me/pull-me dichotomy. What fsolve does not offer are options to raise its working precision to a user-specified value while also forcibly keeping the accuracy requirements low. A problematic scenario is one in which the value of Digits where fsolve is called is never high enough a working precision for the expression evaluations to allow the accuracy tolerance of fsolve (based on that same Digits value) to be met.&lt;/p&gt;
&lt;p&gt;And that's where the f[i] come in. Using them as replacements to the Cproc[i] we can cause the expressions to be evaluated numerically at high working precision while allowing fsolve to still use the lower Digits setting (at the outer level at which its called) and thus make far less demands for acceptance of a root.&lt;/p&gt;
&lt;p&gt;The idea is to leave Digits as it is, say 10 the default value. Then call fsolve and use the f[i]. Internally, fsolve will try and meet an accuracy acceptance tolerance based on Digits=10. And that will likely never succeed unless the individual expressions can be numerically evaluated as something near 10-digits accurate or so. And such accuracy for the numerical evaluations of the expressions may require a very high working precision indeed. (You make wish to experiment with that formation of the f[i], to see just high they have to locally set Digits.)&lt;/p&gt;
&lt;p&gt;This all assumes that fsolve is being called with its first argument as a set of procedures, rather than a set of expressions. Hence the parameter ranges are supplied like [...,1..900,...] instead of [...,c3=1..900,...] etc. This is similar to how `plot` and `Optimization` routines differ for ranges, according to input in procedure or expression form.&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/143112-Finding-Solutions-With-Less-Accuracy#comment143181"&gt;@PatD&lt;/a&gt; The procedure Cproc[5] evaluates the 5th expression from your `C` (for those fixed a1 and a2 values you gave), following production from that of an optimized procedure. When Cproc[5] is called, its arguments are used as values for the remaining varaibles (given that a1 and a2 have been fixed).&lt;/p&gt;
&lt;p&gt;The procedure f[5] also accepts the same kind of arguments as Cproc[5]. In fact, all that f[5] does is raise the working precision (Digits) and then pass the arguments on to a call to Cproc[5].&lt;/p&gt;
&lt;p&gt;Digits is an environment variable, and as such will be inherited in the call to Cproc[5] done within f[5]. So f[5] is just a slick way to get Cproc[5] to compute at higher working precision &lt;em&gt;without having to raise Digits at the top level&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I gave an example, where one can see that f[5] and Cproc[5] return results that differ in something like the 3rd decimal digit. This shows what you said, that the expressions are sensitive to working precision. Hopefully the result from f[5] is accurate enough.&lt;/p&gt;
&lt;p&gt;And similarly, for all the f[i] and Cproc[i] for i=1..9.&lt;/p&gt;
&lt;p&gt;I created such f[i] because of what Carl mentioned about fsolve. When you call fsolve it has to figure out its stopping/acceptance criteria. It bases that on the number of variables and on Digits. If you want your expressions to get evaluated at high working precision (b/c of roundoff error or numerical instability) then the temptation is to just raise Digits high at the level from which you call fsolve. But raising Digits high at that level will cause fsolve to use a much tighter accuracy/acceptance, which again does not get met. It's a push-me/pull-me dichotomy. What fsolve does not offer are options to raise its working precision to a user-specified value while also forcibly keeping the accuracy requirements low. A problematic scenario is one in which the value of Digits where fsolve is called is never high enough a working precision for the expression evaluations to allow the accuracy tolerance of fsolve (based on that same Digits value) to be met.&lt;/p&gt;
&lt;p&gt;And that's where the f[i] come in. Using them as replacements to the Cproc[i] we can cause the expressions to be evaluated numerically at high working precision while allowing fsolve to still use the lower Digits setting (at the outer level at which its called) and thus make far less demands for acceptance of a root.&lt;/p&gt;
&lt;p&gt;The idea is to leave Digits as it is, say 10 the default value. Then call fsolve and use the f[i]. Internally, fsolve will try and meet an accuracy acceptance tolerance based on Digits=10. And that will likely never succeed unless the individual expressions can be numerically evaluated as something near 10-digits accurate or so. And such accuracy for the numerical evaluations of the expressions may require a very high working precision indeed. (You make wish to experiment with that formation of the f[i], to see just high they have to locally set Digits.)&lt;/p&gt;
&lt;p&gt;This all assumes that fsolve is being called with its first argument as a set of procedures, rather than a set of expressions. Hence the parameter ranges are supplied like [...,1..900,...] instead of [...,c3=1..900,...] etc. This is similar to how `plot` and `Optimization` routines differ for ranges, according to input in procedure or expression form.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <guid>143187</guid>
      <pubDate>Wed, 06 Feb 2013 23:34:30 Z</pubDate>
      <itunes:author>acer</itunes:author>
      <author>acer</author>
    </item>
    <item>
      <title>Hey John,
&amp;nbsp;
Thanks for the procedure,</title>
      <link>http://www.mapleprimes.com/questions/143112-Finding-Solutions-With-Less-Accuracy?ref=Feed:MaplePrimes:Finding solutions with less accuracy:Comments#comment143278</link>
      <itunes:summary>&lt;p&gt;Hey John,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks for the procedure, I have been testing it with only 1 equation. It would appear that the optimization algorithm is having trouble because it is trying to minimize to the smallest possible value and for maple that is the largest negative value it can find. Whereas I am trying to find the values which produce a solution as close to zero as possible regardless of whether or not that solution is positive or negative. Here is my code, suggestions? Also it is inclear to me what "infolevel" does exactly.&lt;/p&gt;
&lt;p&gt;read "Cvector_with_a.m";&lt;br&gt;infolevel[Optimization] := 4;&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; 4&lt;br&gt;Digits := 30;&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; 30&lt;br&gt;a1 := 1.514; a2 := 5.049;&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; 1.514&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; 5.049&lt;br&gt;Optimization[Minimize](C[2], {c &amp;gt;= 0, c1 &amp;gt;= 1, c2 &amp;gt;= 1, c3 &amp;gt;= 1, c4 &amp;gt;= 1, c5 &amp;gt;= 1, c6 &amp;gt;= 1, c7 &amp;gt;= 1, hb &amp;gt;= 0.1e-1, c &amp;lt;= 2, c1 &amp;lt;= 900, c2 &amp;lt;= 900, c3 &amp;lt;= 900, c4 &amp;lt;= 900, c5 &amp;lt;= 900, c6 &amp;lt;= 900, c7 &amp;lt;= 900, hb &amp;lt;= 0.2e-1}, iterationlimit = 1000000, initialpoint = [c = 1, hb = 0.1e-1, c1 = 1, c2 = 1, c3 = 1, c4 = 1, c5 = 1, c6 = 1, c7 = 1]);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: calling NLP solver&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: using method=sqp&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: number of problem variables 9&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: number of nonlinear inequality constraints 0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: number of nonlinear equality constraints 0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: number of general linear constraints 18&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: feasibility tolerance set to 0.1e-14&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: optimality tolerance set to 0.2511886432e-21&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: iteration limit set to 1000000&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: infinite bound set to 0.10e21&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: trying evalf mode&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; attemptsolution: iterates did not converge, but first-order conditions have been met&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; attemptsolution: number of major iterations taken 7&lt;/p&gt;
&lt;p&gt;[-1.23389380823272547574498378184 10^24&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; c = 2.00000000000000000000000000000, &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; c1 = 900.000000000000000000000000000, &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; c2 = 900.000000000000000000000000000, &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; c3 = 900.000000000000000000000000000, &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; c4 = 900.000000000000000000000000000, &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; c5 = 900.000000000000000000000000000, &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; c6 = 900.000000000000000000000000000, &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; c7 = 900.000000000000000000000000000,&lt;/p&gt;
&lt;p&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; hb = 0.0200000000000000000000000000000]]&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Pat&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;Hey John,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks for the procedure, I have been testing it with only 1 equation. It would appear that the optimization algorithm is having trouble because it is trying to minimize to the smallest possible value and for maple that is the largest negative value it can find. Whereas I am trying to find the values which produce a solution as close to zero as possible regardless of whether or not that solution is positive or negative. Here is my code, suggestions? Also it is inclear to me what "infolevel" does exactly.&lt;/p&gt;
&lt;p&gt;read "Cvector_with_a.m";&lt;br&gt;infolevel[Optimization] := 4;&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; 4&lt;br&gt;Digits := 30;&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; 30&lt;br&gt;a1 := 1.514; a2 := 5.049;&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; 1.514&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; 5.049&lt;br&gt;Optimization[Minimize](C[2], {c &amp;gt;= 0, c1 &amp;gt;= 1, c2 &amp;gt;= 1, c3 &amp;gt;= 1, c4 &amp;gt;= 1, c5 &amp;gt;= 1, c6 &amp;gt;= 1, c7 &amp;gt;= 1, hb &amp;gt;= 0.1e-1, c &amp;lt;= 2, c1 &amp;lt;= 900, c2 &amp;lt;= 900, c3 &amp;lt;= 900, c4 &amp;lt;= 900, c5 &amp;lt;= 900, c6 &amp;lt;= 900, c7 &amp;lt;= 900, hb &amp;lt;= 0.2e-1}, iterationlimit = 1000000, initialpoint = [c = 1, hb = 0.1e-1, c1 = 1, c2 = 1, c3 = 1, c4 = 1, c5 = 1, c6 = 1, c7 = 1]);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: calling NLP solver&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: using method=sqp&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: number of problem variables 9&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: number of nonlinear inequality constraints 0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: number of nonlinear equality constraints 0&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: number of general linear constraints 18&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: feasibility tolerance set to 0.1e-14&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: optimality tolerance set to 0.2511886432e-21&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: iteration limit set to 1000000&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: infinite bound set to 0.10e21&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NLPSolve: trying evalf mode&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; attemptsolution: iterates did not converge, but first-order conditions have been met&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; attemptsolution: number of major iterations taken 7&lt;/p&gt;
&lt;p&gt;[-1.23389380823272547574498378184 10^24&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; c = 2.00000000000000000000000000000, &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; c1 = 900.000000000000000000000000000, &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; c2 = 900.000000000000000000000000000, &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; c3 = 900.000000000000000000000000000, &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; c4 = 900.000000000000000000000000000, &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; c5 = 900.000000000000000000000000000, &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; c6 = 900.000000000000000000000000000, &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; c7 = 900.000000000000000000000000000,&lt;/p&gt;
&lt;p&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; hb = 0.0200000000000000000000000000000]]&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Pat&lt;/p&gt;</description>
      <guid>143278</guid>
      <pubDate>Fri, 08 Feb 2013 20:04:30 Z</pubDate>
      <itunes:author>PatD</itunes:author>
      <author>PatD</author>
    </item>
  </channel>
</rss>