Additional-kinsol-notes.html 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html401/loose.dtd">
  2. <html>
  3. <!-- Created on November 8, 2012 by texi2html 1.82
  4. texi2html was written by:
  5. Lionel Cons <[email protected]> (original author)
  6. Karl Berry <[email protected]>
  7. Olaf Bachmann <[email protected]>
  8. and many others.
  9. Maintained by: Many creative people.
  10. Send bugs and suggestions to <[email protected]>
  11. -->
  12. <head>
  13. <title>avram - a virtual machine code interpreter: D.9.4 Additional kinsol notes</title>
  14. <meta name="description" content="avram - a virtual machine code interpreter: D.9.4 Additional kinsol notes">
  15. <meta name="keywords" content="avram - a virtual machine code interpreter: D.9.4 Additional kinsol notes">
  16. <meta name="resource-type" content="document">
  17. <meta name="distribution" content="global">
  18. <meta name="Generator" content="texi2html 1.82">
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  20. <style type="text/css">
  21. <!--
  22. a.summary-letter {text-decoration: none}
  23. blockquote.smallquotation {font-size: smaller}
  24. pre.display {font-family: serif}
  25. pre.format {font-family: serif}
  26. pre.menu-comment {font-family: serif}
  27. pre.menu-preformatted {font-family: serif}
  28. pre.smalldisplay {font-family: serif; font-size: smaller}
  29. pre.smallexample {font-size: smaller}
  30. pre.smallformat {font-family: serif; font-size: smaller}
  31. pre.smalllisp {font-size: smaller}
  32. span.roman {font-family:serif; font-weight:normal;}
  33. span.sansserif {font-family:sans-serif; font-weight:normal;}
  34. ul.toc {list-style: none}
  35. -->
  36. </style>
  37. </head>
  38. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  39. <a name="Additional-kinsol-notes"></a>
  40. <table cellpadding="1" cellspacing="1" border="0">
  41. <tr><td valign="middle" align="left">[<a href="kinsol-exceptions.html#kinsol-exceptions" title="Previous section in reading order"> &lt; </a>]</td>
  42. <td valign="middle" align="left">[<a href="lapack.html#lapack" title="Next section in reading order"> &gt; </a>]</td>
  43. <td valign="middle" align="left"> &nbsp; </td>
  44. <td valign="middle" align="left">[<a href="External-Libraries.html#External-Libraries" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
  45. <td valign="middle" align="left">[<a href="kinsol.html#kinsol" title="Up section"> Up </a>]</td>
  46. <td valign="middle" align="left">[<a href="Copying.html#Copying" title="Next chapter"> &gt;&gt; </a>]</td>
  47. <td valign="middle" align="left"> &nbsp; </td>
  48. <td valign="middle" align="left"> &nbsp; </td>
  49. <td valign="middle" align="left"> &nbsp; </td>
  50. <td valign="middle" align="left"> &nbsp; </td>
  51. <td valign="middle" align="left">[<a href="avram.html#Top" title="Cover (top) of document">Top</a>]</td>
  52. <td valign="middle" align="left">[<a href="avram_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
  53. <td valign="middle" align="left">[<a href="Function-Index.html#Function-Index" title="Index">Index</a>]</td>
  54. <td valign="middle" align="left">[<a href="avram_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
  55. </tr></table>
  56. <hr size="1">
  57. <a name="Additional-kinsol-notes-1"></a>
  58. <h3 class="subsection">D.9.4 Additional <code>kinsol</code> notes</h3>
  59. <p>When a user supplied Jacobian function <var>j</var> is specified, the
  60. <a name="index-Jacobian-1"></a>
  61. solution is likely to be found faster and more accurately. The
  62. Jacobian should be given if an analytical form for <var>f</var> is known,
  63. from which the Jacobian can be obtained easily by partial
  64. differentiation. If the Jacobian is unavailable, a finite difference
  65. method implemented internally by <code>kinsol</code> is used as a substitute
  66. and will usually yield acceptable results.
  67. </p>
  68. <p>Tolerances are not explicitly specified on the virtual side of the
  69. interface although the native <code>kinsol</code> API requires them. A range
  70. of tolerances over ten orders of magnitude is automatically tried
  71. before giving up.
  72. </p>
  73. <p>Similarly to the <code>glpk</code> and <code>lpsolve</code> library interfaces
  74. (<a href="glpk.html#glpk"><code>glpk</code></a> and <a href="lpsolve.html#lpsolve"><code>lpsolve</code></a>), the only expressible constraint through
  75. <a name="index-constraints-1"></a>
  76. the virtual code interface is that all variables are
  77. non-negative. Arbitrary upper and lower bounds can be simulated by
  78. appropriate variable substitutions in the formulation of the problem.
  79. </p>
  80. <p>The <code>kinsol</code> library natively requires a system function <var>f</var>
  81. with equally many inputs as outputs, and will search only for the
  82. input associated with an output vector of all zeros, but the virtual
  83. code interface relaxes these requirements by allowing a function that
  84. transforms between lists of unequal lengths, and will search for the
  85. input of <var>f</var> causing it to match any given &ldquo;optimal&rdquo; output
  86. <var>o</var>. These effects are achieved by padding the shorter of the two
  87. vectors transparently and subtracting the specified optimum from the
  88. result.
  89. </p>
  90. <p>The <code>kinsol</code> library can be configured to use single precision,
  91. double precision, or extended precision arithmetic, but only a double
  92. precision configuration is compatible with <code>avram</code>. This
  93. condition is checked when <code>avram</code> is configured and it will not
  94. interface with alternative <code>kinsol</code> configurations.
  95. </p>
  96. <p>The <code>kinsol</code> library has some more advanced features to which
  97. this interface doesn&rsquo;t do justice, such as preconditioning, scaling,
  98. solution of systems with band limited Jacobians, and concurrent
  99. computation.
  100. </p>
  101. <hr size="1">
  102. <table cellpadding="1" cellspacing="1" border="0">
  103. <tr><td valign="middle" align="left">[<a href="kinsol-exceptions.html#kinsol-exceptions" title="Previous section in reading order"> &lt; </a>]</td>
  104. <td valign="middle" align="left">[<a href="lapack.html#lapack" title="Next section in reading order"> &gt; </a>]</td>
  105. <td valign="middle" align="left"> &nbsp; </td>
  106. <td valign="middle" align="left">[<a href="External-Libraries.html#External-Libraries" title="Beginning of this chapter or previous chapter"> &lt;&lt; </a>]</td>
  107. <td valign="middle" align="left">[<a href="kinsol.html#kinsol" title="Up section"> Up </a>]</td>
  108. <td valign="middle" align="left">[<a href="Copying.html#Copying" title="Next chapter"> &gt;&gt; </a>]</td>
  109. <td valign="middle" align="left"> &nbsp; </td>
  110. <td valign="middle" align="left"> &nbsp; </td>
  111. <td valign="middle" align="left"> &nbsp; </td>
  112. <td valign="middle" align="left"> &nbsp; </td>
  113. <td valign="middle" align="left">[<a href="avram.html#Top" title="Cover (top) of document">Top</a>]</td>
  114. <td valign="middle" align="left">[<a href="avram_toc.html#SEC_Contents" title="Table of contents">Contents</a>]</td>
  115. <td valign="middle" align="left">[<a href="Function-Index.html#Function-Index" title="Index">Index</a>]</td>
  116. <td valign="middle" align="left">[<a href="avram_abt.html#SEC_About" title="About (help)"> ? </a>]</td>
  117. </tr></table>
  118. <p>
  119. <font size="-1">
  120. This document was generated on <i>November 8, 2012</i> using <a href="http://www.nongnu.org/texi2html/"><i>texi2html 1.82</i></a>.
  121. </font>
  122. <br>
  123. </p>
  124. </body>
  125. </html>