summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarpreet2015-12-11 12:51:00 +0530
committerHarpreet2015-12-11 12:51:00 +0530
commit436f0daf6e4f241b8fa582a943bad09ddc091f59 (patch)
treea3f0899e5fb0542c69c4aae469c0c5bf0a04b542
parent6cc967755bb135d656fba0523b4eb206581492ca (diff)
downloadFOSSEE-Optimization-toolbox-436f0daf6e4f241b8fa582a943bad09ddc091f59.tar.gz
FOSSEE-Optimization-toolbox-436f0daf6e4f241b8fa582a943bad09ddc091f59.tar.bz2
FOSSEE-Optimization-toolbox-436f0daf6e4f241b8fa582a943bad09ddc091f59.zip
lsqnonneg added
-rw-r--r--demos/lsqnonneg.dem.sce20
-rw-r--r--demos/symphonymat.dem.sce7
-rw-r--r--help/en_US/lsqlin.xml11
-rw-r--r--help/en_US/lsqnonneg.xml102
-rw-r--r--help/en_US/master_help.xml2
-rw-r--r--help/en_US/qpipopt.xml2
-rw-r--r--help/en_US/qpipoptmat.xml8
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/DOCSbin7351 -> 7489 bytes
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TABbin850 -> 862 bytes
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETSbin266 -> 273 bytes
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONSbin35734 -> 36150 bytes
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA2
-rw-r--r--help/en_US/scilab_en_US_help/JavaHelpSearch/TMAPbin16384 -> 16384 bytes
-rw-r--r--help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_1.pngbin0 -> 1508 bytes
-rw-r--r--help/en_US/scilab_en_US_help/index.html6
-rw-r--r--help/en_US/scilab_en_US_help/jhelpmap.jhm1
-rw-r--r--help/en_US/scilab_en_US_help/jhelptoc.xml1
-rw-r--r--help/en_US/scilab_en_US_help/lsqlin.html17
-rw-r--r--help/en_US/scilab_en_US_help/lsqnonneg.html106
-rw-r--r--help/en_US/scilab_en_US_help/qpipopt.html6
-rw-r--r--help/en_US/scilab_en_US_help/qpipoptmat.html8
-rw-r--r--help/en_US/scilab_en_US_help/section_19f4f1e5726c01d683e8b82be0a7e910.html6
-rw-r--r--help/en_US/scilab_en_US_help/symphony.html2
-rw-r--r--help/en_US/scilab_en_US_help/symphonymat.html12
-rw-r--r--help/en_US/symphony.xml2
-rw-r--r--help/en_US/symphonymat.xml12
-rw-r--r--jar/scilab_en_US_help.jarbin209125 -> 214010 bytes
-rw-r--r--macros/libbin528 -> 528 bytes
-rw-r--r--macros/lsqlin.binbin51024 -> 51108 bytes
-rw-r--r--macros/lsqlin.sci10
-rw-r--r--macros/lsqnonneg.binbin0 -> 23532 bytes
-rw-r--r--macros/lsqnonneg.sci186
-rw-r--r--macros/names2
-rw-r--r--macros/qpipopt.binbin49496 -> 49368 bytes
-rw-r--r--macros/qpipopt.sci2
-rw-r--r--macros/qpipoptmat.binbin51124 -> 50868 bytes
-rw-r--r--macros/qpipoptmat.sci4
-rw-r--r--macros/symphony.binbin54860 -> 54708 bytes
-rw-r--r--macros/symphony.sci2
-rw-r--r--macros/symphonymat.binbin60860 -> 60820 bytes
-rw-r--r--macros/symphonymat.sci7
41 files changed, 491 insertions, 55 deletions
diff --git a/demos/lsqnonneg.dem.sce b/demos/lsqnonneg.dem.sce
new file mode 100644
index 0000000..f9d5d78
--- /dev/null
+++ b/demos/lsqnonneg.dem.sce
@@ -0,0 +1,20 @@
+mode(1)
+//
+// Demo of lsqnonneg.sci
+//
+
+A basic lsqnonneg problem
+C = [
+0.0372 0.2869
+0.6861 0.7071
+0.6233 0.6245
+0.6344 0.6170];
+d = [
+0.8587
+0.1781
+0.0747
+0.8405];
+[xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg(C,d)
+halt() // Press return to continue
+
+//========= E N D === O F === D E M O =========//
diff --git a/demos/symphonymat.dem.sce b/demos/symphonymat.dem.sce
index f069d38..553cd99 100644
--- a/demos/symphonymat.dem.sce
+++ b/demos/symphonymat.dem.sce
@@ -4,7 +4,7 @@ mode(1)
//
// Objective function
-c = [350*5,330*3,310*4,280*6,500,450,400,100]'
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
// Lower Bound of variable
lb = repmat(0,1,8);
// Upper Bound of variables
@@ -36,8 +36,7 @@ objCoef = -1*[ 504 803 667 1103 834 585 811 856 690 832 846 813 868 793 ..
959 668 507 855 986 831 821 825 868 852 832 828 799 686 ..
510 671 575 740 510 675 996 636 826 1022 1140 654 909 799 ..
1162 653 814 625 599 476 767 954 906 904 649 873 565 853 1008 632]';
-//Constraint Matrix
-
+//Constraint Matrix
conMatrix = [ //Constraint 1
42 41 523 215 819 551 69 193 582 375 367 478 162 898 ..
550 553 298 577 493 183 260 224 852 394 958 282 402 604 ..
@@ -79,7 +78,7 @@ conMatrix = [ //Constraint 1
483 336 765 637 981 980 202 35 594 689 602 76 767 693 ..
893 160 785 311 417 748 375 362 617 553 474 915 457 261 350 635 ;
];
-nbVar = size(objCoef,1)
+nbVar = size(objCoef,2)
conUB=[11927 13727 11551 13056 13460 ];
// Lower Bound of variables
lb = repmat(0,1,nbVar)
diff --git a/help/en_US/lsqlin.xml b/help/en_US/lsqlin.xml
index 92dbd91..1216bae 100644
--- a/help/en_US/lsqlin.xml
+++ b/help/en_US/lsqlin.xml
@@ -50,17 +50,19 @@
<varlistentry><term>beq :</term>
<listitem><para> a vector of doubles, represents the linear coefficients in the equality constraints</para></listitem></varlistentry>
<varlistentry><term>LB :</term>
- <listitem><para> a vector of doubles, where n is number of variables, contains lower bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> a vector of doubles, contains lower bounds of the variables.</para></listitem></varlistentry>
<varlistentry><term>UB :</term>
- <listitem><para> a vector of doubles, where n is number of variables, contains upper bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> a vector of doubles, contains upper bounds of the variables.</para></listitem></varlistentry>
<varlistentry><term>x0 :</term>
<listitem><para> a vector of doubles, contains initial guess of variables.</para></listitem></varlistentry>
<varlistentry><term>param :</term>
<listitem><para> a list containing the the parameters to be set.</para></listitem></varlistentry>
<varlistentry><term>xopt :</term>
<listitem><para> a vector of doubles, the computed solution of the optimization problem.</para></listitem></varlistentry>
- <varlistentry><term>fopt :</term>
- <listitem><para> a double, the function value at x.</para></listitem></varlistentry>
+ <varlistentry><term>resnorm :</term>
+ <listitem><para> a double, objective value returned as the scalar value norm(C*x-d)^2.</para></listitem></varlistentry>
+ <varlistentry><term>residual :</term>
+ <listitem><para> a vector of doubles, solution residuals returned as the vector C*x-d.</para></listitem></varlistentry>
<varlistentry><term>exitflag :</term>
<listitem><para> Integer identifying the reason the algorithm terminated.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
@@ -74,7 +76,6 @@
<title>Description</title>
<para>
Search the minimum of a constrained linear least square problem specified by :
-find the minimum of f(x) such that
</para>
<para>
<latex>
diff --git a/help/en_US/lsqnonneg.xml b/help/en_US/lsqnonneg.xml
new file mode 100644
index 0000000..95c8da1
--- /dev/null
+++ b/help/en_US/lsqnonneg.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ *
+ * This help file was generated from lsqnonneg.sci using help_from_sci().
+ *
+ -->
+
+<refentry version="5.0-subset Scilab" xml:id="lsqnonneg" xml:lang="en"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:ns3="http://www.w3.org/1999/xhtml"
+ xmlns:mml="http://www.w3.org/1998/Math/MathML"
+ xmlns:scilab="http://www.scilab.org"
+ xmlns:db="http://docbook.org/ns/docbook">
+
+ <refnamediv>
+ <refname>lsqnonneg</refname>
+ <refpurpose>Solves nonnegative least-squares curve fitting problems.</refpurpose>
+ </refnamediv>
+
+
+<refsynopsisdiv>
+ <title>Calling Sequence</title>
+ <synopsis>
+ x = lsqnonneg(C,d)
+ x = lsqnonneg(C,d,param)
+ [xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg( ... )
+
+ </synopsis>
+</refsynopsisdiv>
+
+<refsection>
+ <title>Parameters</title>
+ <variablelist>
+ <varlistentry><term>C :</term>
+ <listitem><para> a matrix of doubles, represents the multiplier of the solution x in the expression C*x - d. C is M-by-N, where M is the number of equations, and N is the number of elements of x.</para></listitem></varlistentry>
+ <varlistentry><term>d :</term>
+ <listitem><para> a vector of doubles, represents the additive constant term in the expression C*x - d. d is M-by-1, where M is the number of equations.</para></listitem></varlistentry>
+ <varlistentry><term>xopt :</term>
+ <listitem><para> a vector of doubles, the computed solution of the optimization problem.</para></listitem></varlistentry>
+ <varlistentry><term>resnorm :</term>
+ <listitem><para> a double, objective value returned as the scalar value norm(C*x-d)^2.</para></listitem></varlistentry>
+ <varlistentry><term>residual :</term>
+ <listitem><para> a vector of doubles, solution residuals returned as the vector C*x-d.</para></listitem></varlistentry>
+ <varlistentry><term>exitflag :</term>
+ <listitem><para> Integer identifying the reason the algorithm terminated.</para></listitem></varlistentry>
+ <varlistentry><term>output :</term>
+ <listitem><para> Structure containing information about the optimization.</para></listitem></varlistentry>
+ <varlistentry><term>lambda :</term>
+ <listitem><para> Structure containing the Lagrange multipliers at the solution x (separated by constraint type).</para></listitem></varlistentry>
+ </variablelist>
+</refsection>
+
+<refsection>
+ <title>Description</title>
+ <para>
+Solves nonnegative least-squares curve fitting problems specified by :
+ </para>
+ <para>
+<latex>
+\begin{eqnarray}
+&amp;\mbox{min}_{x}
+&amp; 1/2||C*x - d||_2^2 \\
+&amp; &amp; x \geq 0 \\
+\end{eqnarray}
+</latex>
+ </para>
+ <para>
+We are calling IPOpt for solving the nonnegative least-squares curve fitting problems, IPOpt is a library written in C++. The code has been written by ​Andreas Wächter and ​Carl Laird.
+ </para>
+ <para>
+</para>
+</refsection>
+
+<refsection>
+ <title>Examples</title>
+ <programlisting role="example"><![CDATA[
+A basic lsqnonneg problem
+C = [
+0.0372 0.2869
+0.6861 0.7071
+0.6233 0.6245
+0.6344 0.6170];
+d = [
+0.8587
+0.1781
+0.0747
+0.8405];
+[xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg(C,d)
+
+ ]]></programlisting>
+</refsection>
+
+<refsection>
+ <title>Authors</title>
+ <simplelist type="vert">
+ <member>Harpreet Singh</member>
+ </simplelist>
+</refsection>
+</refentry>
diff --git a/help/en_US/master_help.xml b/help/en_US/master_help.xml
index 05f5acd..999a2d7 100644
--- a/help/en_US/master_help.xml
+++ b/help/en_US/master_help.xml
@@ -2,6 +2,7 @@
<!DOCTYPE book [
<!--Begin Entities-->
<!ENTITY a3d4ec65684b561d91f7a255acd23f51c SYSTEM "/home/harpreet/symphony_work/symphony/help/en_US/lsqlin.xml">
+<!ENTITY aa4a031935f5eed6cfc8fc4a49823b00b SYSTEM "/home/harpreet/symphony_work/symphony/help/en_US/lsqnonneg.xml">
<!ENTITY a6b85f6e0c98751f20b68663a23cb4cd2 SYSTEM "/home/harpreet/symphony_work/symphony/help/en_US/qpipopt.xml">
<!ENTITY a44928acec52adf395379e18fcff06730 SYSTEM "/home/harpreet/symphony_work/symphony/help/en_US/qpipopt_mat.xml">
<!ENTITY a8549a3935858ed104f4749ca2243456a SYSTEM "/home/harpreet/symphony_work/symphony/help/en_US/qpipoptmat.xml">
@@ -83,6 +84,7 @@
<part xml:id='section_19f4f1e5726c01d683e8b82be0a7e910'>
<title>Symphony Toolbox</title>
&a3d4ec65684b561d91f7a255acd23f51c;
+&aa4a031935f5eed6cfc8fc4a49823b00b;
&a6b85f6e0c98751f20b68663a23cb4cd2;
&a44928acec52adf395379e18fcff06730;
&a8549a3935858ed104f4749ca2243456a;
diff --git a/help/en_US/qpipopt.xml b/help/en_US/qpipopt.xml
index 2edd0ec..c0756f8 100644
--- a/help/en_US/qpipopt.xml
+++ b/help/en_US/qpipopt.xml
@@ -46,7 +46,7 @@
<varlistentry><term>LB :</term>
<listitem><para> a vector of doubles, contains lower bounds of the variables.</para></listitem></varlistentry>
<varlistentry><term>UB :</term>
- <listitem><para> a vector of doubles, where n is number of variables, contains upper bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> a vector of doubles, contains upper bounds of the variables.</para></listitem></varlistentry>
<varlistentry><term>conMatrix :</term>
<listitem><para> a matrix of doubles, contains matrix representing the constraint matrix</para></listitem></varlistentry>
<varlistentry><term>conLB :</term>
diff --git a/help/en_US/qpipoptmat.xml b/help/en_US/qpipoptmat.xml
index 3c9e6a4..f3830f4 100644
--- a/help/en_US/qpipoptmat.xml
+++ b/help/en_US/qpipoptmat.xml
@@ -39,9 +39,9 @@
<title>Parameters</title>
<variablelist>
<varlistentry><term>H :</term>
- <listitem><para> a vector of doubles, where n is number of variables, represents coefficients of quadratic in the quadratic problem.</para></listitem></varlistentry>
+ <listitem><para> a symmetric matrix of doubles, represents coefficients of quadratic in the quadratic problem.</para></listitem></varlistentry>
<varlistentry><term>f :</term>
- <listitem><para> a vector of doubles, where n is number of variables, represents coefficients of linear in the quadratic problem</para></listitem></varlistentry>
+ <listitem><para> a vector of doubles, represents coefficients of linear in the quadratic problem</para></listitem></varlistentry>
<varlistentry><term>A :</term>
<listitem><para> a vector of doubles, represents the linear coefficients in the inequality constraints</para></listitem></varlistentry>
<varlistentry><term>b :</term>
@@ -51,9 +51,9 @@
<varlistentry><term>beq :</term>
<listitem><para> a vector of doubles, represents the linear coefficients in the equality constraints</para></listitem></varlistentry>
<varlistentry><term>LB :</term>
- <listitem><para> a vector of doubles, where n is number of variables, contains lower bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> a vector of doubles, contains lower bounds of the variables.</para></listitem></varlistentry>
<varlistentry><term>UB :</term>
- <listitem><para> a vector of doubles, where n is number of variables, contains upper bounds of the variables.</para></listitem></varlistentry>
+ <listitem><para> a vector of doubles, contains upper bounds of the variables.</para></listitem></varlistentry>
<varlistentry><term>x0 :</term>
<listitem><para> a vector of doubles, contains initial guess of variables.</para></listitem></varlistentry>
<varlistentry><term>param :</term>
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS
index d7917b0..2aa9c2c 100644
--- a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB
index 1359fb5..954ffd9 100644
--- a/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/DOCS.TAB
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS b/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS
index ae82060..d5a0fd6 100644
--- a/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/OFFSETS
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS b/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS
index a0643a5..1fbf883 100644
--- a/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/POSITIONS
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA b/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA
index c32f6ae..93aea58 100644
--- a/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/SCHEMA
@@ -1,2 +1,2 @@
JavaSearch 1.0
-TMAP bs=2048 rt=1 fl=-1 id1=1413 id2=1
+TMAP bs=2048 rt=1 fl=-1 id1=1435 id2=1
diff --git a/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP b/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP
index dd780c5..141985f 100644
--- a/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP
+++ b/help/en_US/scilab_en_US_help/JavaHelpSearch/TMAP
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_1.png b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_1.png
new file mode 100644
index 0000000..b923eeb
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/_LaTeX_lsqnonneg.xml_1.png
Binary files differ
diff --git a/help/en_US/scilab_en_US_help/index.html b/help/en_US/scilab_en_US_help/index.html
index af31f16..c942e96 100644
--- a/help/en_US/scilab_en_US_help/index.html
+++ b/help/en_US/scilab_en_US_help/index.html
@@ -38,6 +38,12 @@
+<li><a href="lsqnonneg.html" class="refentry">lsqnonneg</a> &#8212; <span class="refentry-description">Solves nonnegative least-squares curve fitting problems.</span></li>
+
+
+
+
+
<li><a href="qpipopt.html" class="refentry">qpipopt</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
diff --git a/help/en_US/scilab_en_US_help/jhelpmap.jhm b/help/en_US/scilab_en_US_help/jhelpmap.jhm
index 8950140..f046f8a 100644
--- a/help/en_US/scilab_en_US_help/jhelpmap.jhm
+++ b/help/en_US/scilab_en_US_help/jhelpmap.jhm
@@ -4,6 +4,7 @@
<mapID target="index" url="index.html"/>
<mapID target="section_19f4f1e5726c01d683e8b82be0a7e910" url="section_19f4f1e5726c01d683e8b82be0a7e910.html"/>
<mapID target="lsqlin" url="lsqlin.html"/>
+<mapID target="lsqnonneg" url="lsqnonneg.html"/>
<mapID target="qpipopt" url="qpipopt.html"/>
<mapID target="qpipopt_mat" url="qpipopt_mat.html"/>
<mapID target="qpipoptmat" url="qpipoptmat.html"/>
diff --git a/help/en_US/scilab_en_US_help/jhelptoc.xml b/help/en_US/scilab_en_US_help/jhelptoc.xml
index 5cac88f..7722be3 100644
--- a/help/en_US/scilab_en_US_help/jhelptoc.xml
+++ b/help/en_US/scilab_en_US_help/jhelptoc.xml
@@ -4,6 +4,7 @@
<tocitem target="index" text="Symphony Toolbox">
<tocitem target="section_19f4f1e5726c01d683e8b82be0a7e910" text="Symphony Toolbox">
<tocitem target="lsqlin" text="lsqlin"/>
+<tocitem target="lsqnonneg" text="lsqnonneg"/>
<tocitem target="qpipopt" text="qpipopt"/>
<tocitem target="qpipopt_mat" text="qpipopt_mat"/>
<tocitem target="qpipoptmat" text="qpipoptmat"/>
diff --git a/help/en_US/scilab_en_US_help/lsqlin.html b/help/en_US/scilab_en_US_help/lsqlin.html
index 96c6de1..bf5a259 100644
--- a/help/en_US/scilab_en_US_help/lsqlin.html
+++ b/help/en_US/scilab_en_US_help/lsqlin.html
@@ -20,7 +20,7 @@
</td>
<td width="30%" class="next">
- <span class="next"><a href="qpipopt.html">qpipopt &gt;&gt;</a></span>
+ <span class="next"><a href="lsqnonneg.html">lsqnonneg &gt;&gt;</a></span>
</td>
</tr></table>
@@ -58,17 +58,19 @@
<dt><span class="term">beq :</span>
<dd><p class="para">a vector of doubles, represents the linear coefficients in the equality constraints</p></dd></dt>
<dt><span class="term">LB :</span>
- <dd><p class="para">a vector of doubles, where n is number of variables, contains lower bounds of the variables.</p></dd></dt>
+ <dd><p class="para">a vector of doubles, contains lower bounds of the variables.</p></dd></dt>
<dt><span class="term">UB :</span>
- <dd><p class="para">a vector of doubles, where n is number of variables, contains upper bounds of the variables.</p></dd></dt>
+ <dd><p class="para">a vector of doubles, contains upper bounds of the variables.</p></dd></dt>
<dt><span class="term">x0 :</span>
<dd><p class="para">a vector of doubles, contains initial guess of variables.</p></dd></dt>
<dt><span class="term">param :</span>
<dd><p class="para">a list containing the the parameters to be set.</p></dd></dt>
<dt><span class="term">xopt :</span>
<dd><p class="para">a vector of doubles, the computed solution of the optimization problem.</p></dd></dt>
- <dt><span class="term">fopt :</span>
- <dd><p class="para">a double, the function value at x.</p></dd></dt>
+ <dt><span class="term">resnorm :</span>
+ <dd><p class="para">a double, objective value returned as the scalar value norm(C*x-d)^2.</p></dd></dt>
+ <dt><span class="term">residual :</span>
+ <dd><p class="para">a vector of doubles, solution residuals returned as the vector C*x-d.</p></dd></dt>
<dt><span class="term">exitflag :</span>
<dd><p class="para">Integer identifying the reason the algorithm terminated.</p></dd></dt>
<dt><span class="term">output :</span>
@@ -77,8 +79,7 @@
<dd><p class="para">Structure containing the Lagrange multipliers at the solution x (separated by constraint type).</p></dd></dt></dl></div>
<div class="refsection"><h3 class="title">Description</h3>
- <p class="para">Search the minimum of a constrained linear least square problem specified by :
-find the minimum of f(x) such that</p>
+ <p class="para">Search the minimum of a constrained linear least square problem specified by :</p>
<p class="para"><span><img src='./_LaTeX_lsqlin.xml_1.png' style='position:relative;top:41px;width:234px;height:90px'/></span></p>
<p class="para">We are calling IPOpt for solving the linear least square problem, IPOpt is a library written in C++. The code has been written by ​Andreas Wächter and ​Carl Laird.</p>
<p class="para"></p></div>
@@ -143,7 +144,7 @@ find the minimum of f(x) such that</p>
</td>
<td width="30%" class="next">
- <span class="next"><a href="qpipopt.html">qpipopt &gt;&gt;</a></span>
+ <span class="next"><a href="lsqnonneg.html">lsqnonneg &gt;&gt;</a></span>
</td>
</tr></table>
diff --git a/help/en_US/scilab_en_US_help/lsqnonneg.html b/help/en_US/scilab_en_US_help/lsqnonneg.html
new file mode 100644
index 0000000..4f2f661
--- /dev/null
+++ b/help/en_US/scilab_en_US_help/lsqnonneg.html
@@ -0,0 +1,106 @@
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <title>lsqnonneg</title>
+ <style type="text/css" media="all">
+ @import url("scilab_code.css");
+ @import url("xml_code.css");
+ @import url("c_code.css");
+ @import url("style.css");
+ </style>
+ </head>
+ <body>
+ <div class="manualnavbar">
+ <table width="100%"><tr>
+ <td width="30%">
+ <span class="previous"><a href="lsqlin.html">&lt;&lt; lsqlin</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_19f4f1e5726c01d683e8b82be0a7e910.html">Symphony Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+ <span class="next"><a href="qpipopt.html">qpipopt &gt;&gt;</a></span>
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+
+
+
+ <span class="path"><a href="index.html">Symphony Toolbox</a> &gt;&gt; <a href="section_19f4f1e5726c01d683e8b82be0a7e910.html">Symphony Toolbox</a> &gt; lsqnonneg</span>
+
+ <br /><br />
+ <div class="refnamediv"><h1 class="refname">lsqnonneg</h1>
+ <p class="refpurpose">Solves nonnegative least-squares curve fitting problems.</p></div>
+
+
+<div class="refsynopsisdiv"><h3 class="title">Calling Sequence</h3>
+ <div class="synopsis"><pre><span class="default">x</span><span class="default"> = </span><span class="functionid">lsqnonneg</span><span class="default">(</span><span class="default">C</span><span class="default">,</span><span class="default">d</span><span class="default">)</span>
+<span class="default">x</span><span class="default"> = </span><span class="functionid">lsqnonneg</span><span class="default">(</span><span class="default">C</span><span class="default">,</span><span class="default">d</span><span class="default">,</span><span class="default">param</span><span class="default">)</span>
+<span class="default">[</span><span class="default">xopt</span><span class="default">,</span><span class="default">resnorm</span><span class="default">,</span><span class="default">residual</span><span class="default">,</span><span class="default">exitflag</span><span class="default">,</span><span class="default">output</span><span class="default">,</span><span class="default">lambda</span><span class="default">] = </span><span class="functionid">lsqnonneg</span><span class="default">( ... )</span></pre></div></div>
+
+<div class="refsection"><h3 class="title">Parameters</h3>
+ <dl><dt><span class="term">C :</span>
+ <dd><p class="para">a matrix of doubles, represents the multiplier of the solution x in the expression C*x - d. C is M-by-N, where M is the number of equations, and N is the number of elements of x.</p></dd></dt>
+ <dt><span class="term">d :</span>
+ <dd><p class="para">a vector of doubles, represents the additive constant term in the expression C*x - d. d is M-by-1, where M is the number of equations.</p></dd></dt>
+ <dt><span class="term">xopt :</span>
+ <dd><p class="para">a vector of doubles, the computed solution of the optimization problem.</p></dd></dt>
+ <dt><span class="term">resnorm :</span>
+ <dd><p class="para">a double, objective value returned as the scalar value norm(C*x-d)^2.</p></dd></dt>
+ <dt><span class="term">residual :</span>
+ <dd><p class="para">a vector of doubles, solution residuals returned as the vector C*x-d.</p></dd></dt>
+ <dt><span class="term">exitflag :</span>
+ <dd><p class="para">Integer identifying the reason the algorithm terminated.</p></dd></dt>
+ <dt><span class="term">output :</span>
+ <dd><p class="para">Structure containing information about the optimization.</p></dd></dt>
+ <dt><span class="term">lambda :</span>
+ <dd><p class="para">Structure containing the Lagrange multipliers at the solution x (separated by constraint type).</p></dd></dt></dl></div>
+
+<div class="refsection"><h3 class="title">Description</h3>
+ <p class="para">Solves nonnegative least-squares curve fitting problems specified by :</p>
+ <p class="para"><span><img src='./_LaTeX_lsqnonneg.xml_1.png' style='position:relative;top:19px;width:197px;height:46px'/></span></p>
+ <p class="para">We are calling IPOpt for solving the nonnegative least-squares curve fitting problems, IPOpt is a library written in C++. The code has been written by ​Andreas Wächter and ​Carl Laird.</p>
+ <p class="para"></p></div>
+
+<div class="refsection"><h3 class="title">Examples</h3>
+ <div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabid">A</span> <span class="scilabid">basic</span> <span class="scilabid">lsqnonneg</span> <span class="scilabid">problem</span>
+<span class="scilabid">C</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span>
+<span class="scilabnumber">0.0372</span> <span class="scilabnumber">0.2869</span>
+<span class="scilabnumber">0.6861</span> <span class="scilabnumber">0.7071</span>
+<span class="scilabnumber">0.6233</span> <span class="scilabnumber">0.6245</span>
+<span class="scilabnumber">0.6344</span> <span class="scilabnumber">0.6170</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabid">d</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span>
+<span class="scilabnumber">0.8587</span>
+<span class="scilabnumber">0.1781</span>
+<span class="scilabnumber">0.0747</span>
+<span class="scilabnumber">0.8405</span><span class="scilabopenclose">]</span><span class="scilabdefault">;</span>
+<span class="scilabopenclose">[</span><span class="scilabid">xopt</span><span class="scilabdefault">,</span><span class="scilabid">resnorm</span><span class="scilabdefault">,</span><span class="scilabid">residual</span><span class="scilabdefault">,</span><span class="scilabid">exitflag</span><span class="scilabdefault">,</span><span class="scilabid">output</span><span class="scilabdefault">,</span><span class="scilabid">lambda</span><span class="scilabopenclose">]</span> <span class="scilaboperator">=</span> <span class="scilabid">lsqnonneg</span><span class="scilabopenclose">(</span><span class="scilabid">C</span><span class="scilabdefault">,</span><span class="scilabid">d</span><span class="scilabopenclose">)</span></pre></td><td valign="top"><a href="scilab://scilab.execexample/"><img src="ScilabExecute.png" border="0"/></a></td><td valign="top"><a href="scilab://scilab.editexample/"><img src="ScilabEdit.png" border="0"/></a></td><td></td></tr></table></div></div>
+
+<div class="refsection"><h3 class="title">Authors</h3>
+ <ul class="itemizedlist"><li class="member">Harpreet Singh</li></ul></div>
+ <br />
+
+ <div class="manualnavbar">
+ <table width="100%">
+ <tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
+<tr>
+ <td width="30%">
+ <span class="previous"><a href="lsqlin.html">&lt;&lt; lsqlin</a></span>
+
+ </td>
+ <td width="40%" class="center">
+ <span class="top"><a href="section_19f4f1e5726c01d683e8b82be0a7e910.html">Symphony Toolbox</a></span>
+
+ </td>
+ <td width="30%" class="next">
+ <span class="next"><a href="qpipopt.html">qpipopt &gt;&gt;</a></span>
+
+ </td>
+ </tr></table>
+ <hr />
+ </div>
+ </body>
+</html>
diff --git a/help/en_US/scilab_en_US_help/qpipopt.html b/help/en_US/scilab_en_US_help/qpipopt.html
index c0e1b71..7588c1d 100644
--- a/help/en_US/scilab_en_US_help/qpipopt.html
+++ b/help/en_US/scilab_en_US_help/qpipopt.html
@@ -12,7 +12,7 @@
<div class="manualnavbar">
<table width="100%"><tr>
<td width="30%">
- <span class="previous"><a href="lsqlin.html">&lt;&lt; lsqlin</a></span>
+ <span class="previous"><a href="lsqnonneg.html">&lt;&lt; lsqnonneg</a></span>
</td>
<td width="40%" class="center">
@@ -54,7 +54,7 @@
<dt><span class="term">LB :</span>
<dd><p class="para">a vector of doubles, contains lower bounds of the variables.</p></dd></dt>
<dt><span class="term">UB :</span>
- <dd><p class="para">a vector of doubles, where n is number of variables, contains upper bounds of the variables.</p></dd></dt>
+ <dd><p class="para">a vector of doubles, contains upper bounds of the variables.</p></dd></dt>
<dt><span class="term">conMatrix :</span>
<dd><p class="para">a matrix of doubles, contains matrix representing the constraint matrix</p></dd></dt>
<dt><span class="term">conLB :</span>
@@ -130,7 +130,7 @@ find the minimum of f(x) such that</p>
<tr><td colspan="3" class="next"><a href="http://bugzilla.scilab.org/enter_bug.cgi?product=Scilab%20software&component=Documentation%20pages" class="ulink">Report an issue</a></td></tr>
<tr>
<td width="30%">
- <span class="previous"><a href="lsqlin.html">&lt;&lt; lsqlin</a></span>
+ <span class="previous"><a href="lsqnonneg.html">&lt;&lt; lsqnonneg</a></span>
</td>
<td width="40%" class="center">
diff --git a/help/en_US/scilab_en_US_help/qpipoptmat.html b/help/en_US/scilab_en_US_help/qpipoptmat.html
index 10cb590..e1d301a 100644
--- a/help/en_US/scilab_en_US_help/qpipoptmat.html
+++ b/help/en_US/scilab_en_US_help/qpipoptmat.html
@@ -47,9 +47,9 @@
<div class="refsection"><h3 class="title">Parameters</h3>
<dl><dt><span class="term">H :</span>
- <dd><p class="para">a vector of doubles, where n is number of variables, represents coefficients of quadratic in the quadratic problem.</p></dd></dt>
+ <dd><p class="para">a symmetric matrix of doubles, represents coefficients of quadratic in the quadratic problem.</p></dd></dt>
<dt><span class="term">f :</span>
- <dd><p class="para">a vector of doubles, where n is number of variables, represents coefficients of linear in the quadratic problem</p></dd></dt>
+ <dd><p class="para">a vector of doubles, represents coefficients of linear in the quadratic problem</p></dd></dt>
<dt><span class="term">A :</span>
<dd><p class="para">a vector of doubles, represents the linear coefficients in the inequality constraints</p></dd></dt>
<dt><span class="term">b :</span>
@@ -59,9 +59,9 @@
<dt><span class="term">beq :</span>
<dd><p class="para">a vector of doubles, represents the linear coefficients in the equality constraints</p></dd></dt>
<dt><span class="term">LB :</span>
- <dd><p class="para">a vector of doubles, where n is number of variables, contains lower bounds of the variables.</p></dd></dt>
+ <dd><p class="para">a vector of doubles, contains lower bounds of the variables.</p></dd></dt>
<dt><span class="term">UB :</span>
- <dd><p class="para">a vector of doubles, where n is number of variables, contains upper bounds of the variables.</p></dd></dt>
+ <dd><p class="para">a vector of doubles, contains upper bounds of the variables.</p></dd></dt>
<dt><span class="term">x0 :</span>
<dd><p class="para">a vector of doubles, contains initial guess of variables.</p></dd></dt>
<dt><span class="term">param :</span>
diff --git a/help/en_US/scilab_en_US_help/section_19f4f1e5726c01d683e8b82be0a7e910.html b/help/en_US/scilab_en_US_help/section_19f4f1e5726c01d683e8b82be0a7e910.html
index 14e8136..7219261 100644
--- a/help/en_US/scilab_en_US_help/section_19f4f1e5726c01d683e8b82be0a7e910.html
+++ b/help/en_US/scilab_en_US_help/section_19f4f1e5726c01d683e8b82be0a7e910.html
@@ -37,6 +37,12 @@
+<li><a href="lsqnonneg.html" class="refentry">lsqnonneg</a> &#8212; <span class="refentry-description">Solves nonnegative least-squares curve fitting problems.</span></li>
+
+
+
+
+
<li><a href="qpipopt.html" class="refentry">qpipopt</a> &#8212; <span class="refentry-description">Solves a linear quadratic problem.</span></li>
diff --git a/help/en_US/scilab_en_US_help/symphony.html b/help/en_US/scilab_en_US_help/symphony.html
index 48ea705..14e9118 100644
--- a/help/en_US/scilab_en_US_help/symphony.html
+++ b/help/en_US/scilab_en_US_help/symphony.html
@@ -48,7 +48,7 @@
<dt><span class="term">nbCon :</span>
<dd><p class="para">a double, number of constraints.</p></dd></dt>
<dt><span class="term">objCoeff :</span>
- <dd><p class="para">a 1 x n matrix of doubles, where n is number of variables, represents coefficients of the variables in the objective.</p></dd></dt>
+ <dd><p class="para">a vector of doubles, represents coefficients of the variables in the objective.</p></dd></dt>
<dt><span class="term">isInt :</span>
<dd><p class="para">a vector of boolean, represents wether a variable is constrained to be an integer.</p></dd></dt>
<dt><span class="term">LB :</span>
diff --git a/help/en_US/scilab_en_US_help/symphonymat.html b/help/en_US/scilab_en_US_help/symphonymat.html
index b559c8a..2e89728 100644
--- a/help/en_US/scilab_en_US_help/symphonymat.html
+++ b/help/en_US/scilab_en_US_help/symphonymat.html
@@ -45,7 +45,7 @@
<div class="refsection"><h3 class="title">Parameters</h3>
<dl><dt><span class="term">f :</span>
- <dd><p class="para">a vector of doubles, where n is number of variables, contains coefficients of the variables in the objective</p></dd></dt>
+ <dd><p class="para">a vector of doubles, contains coefficients of the variables in the objective</p></dd></dt>
<dt><span class="term">intcon :</span>
<dd><p class="para">Vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 through number of variable.</p></dd></dt>
<dt><span class="term">A :</span>
@@ -63,9 +63,11 @@
<dt><span class="term">options :</span>
<dd><p class="para">a list containing the the parameters to be set.</p></dd></dt>
<dt><span class="term">xopt :</span>
- <dd><p class="para">a 1xn matrix of doubles, the computed solution of the optimization problem</p></dd></dt>
+ <dd><p class="para">a vector of double, the computed solution of the optimization problem</p></dd></dt>
<dt><span class="term">fopt :</span>
- <dd><p class="para">a 1x1 matrix of doubles, the function value at x</p></dd></dt>
+ <dd><p class="para">a doubles, the function value at x</p></dd></dt>
+ <dt><span class="term">status :</span>
+ <dd><p class="para">status flag from symphony.</p></dd></dt>
<dt><span class="term">output :</span>
<dd><p class="para">The output data structure contains detailed informations about the optimization process.</p></dd></dt></dl></div>
@@ -78,7 +80,7 @@ find the minimum or maximum of f(x) such that</p>
<div class="refsection"><h3 class="title">Examples</h3>
<div class="programlisting"><table border="0" width="100%"><tr><td width="98%"><pre class="scilabcode"><span class="scilabcomment">// Objective function</span>
-<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span>
+<span class="scilabid">c</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span><span class="scilabnumber">350</span><span class="scilaboperator">*</span><span class="scilabnumber">5</span><span class="scilabdefault">,</span><span class="scilabnumber">330</span><span class="scilaboperator">*</span><span class="scilabnumber">3</span><span class="scilabdefault">,</span><span class="scilabnumber">310</span><span class="scilaboperator">*</span><span class="scilabnumber">4</span><span class="scilabdefault">,</span><span class="scilabnumber">280</span><span class="scilaboperator">*</span><span class="scilabnumber">6</span><span class="scilabdefault">,</span><span class="scilabnumber">500</span><span class="scilabdefault">,</span><span class="scilabnumber">450</span><span class="scilabdefault">,</span><span class="scilabnumber">400</span><span class="scilabdefault">,</span><span class="scilabnumber">100</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
<span class="scilabcomment">// Lower Bound of variable</span>
<span class="scilabid">lb</span> <span class="scilaboperator">=</span> <a class="scilabmacro" href="scilab://repmat">repmat</a><span class="scilabopenclose">(</span><span class="scilabnumber">0</span><span class="scilabdefault">,</span><span class="scilabnumber">1</span><span class="scilabdefault">,</span><span class="scilabnumber">8</span><span class="scilabopenclose">)</span><span class="scilabdefault">;</span>
<span class="scilabcomment">// Upper Bound of variables</span>
@@ -109,7 +111,7 @@ find the minimum or maximum of f(x) such that</p>
<span class="scilabnumber">957</span> <span class="scilabnumber">798</span> <span class="scilabnumber">669</span> <span class="scilabnumber">625</span> <span class="scilabnumber">467</span> <span class="scilabnumber">1051</span> <span class="scilabnumber">552</span> <span class="scilabnumber">717</span> <span class="scilabnumber">654</span> <span class="scilabnumber">388</span> <span class="scilabnumber">559</span> <span class="scilabnumber">555</span> <span class="scilabnumber">1104</span> <span class="scilabnumber">783</span> <span class="scilabspecial">..</span>
<span class="scilabnumber">959</span> <span class="scilabnumber">668</span> <span class="scilabnumber">507</span> <span class="scilabnumber">855</span> <span class="scilabnumber">986</span> <span class="scilabnumber">831</span> <span class="scilabnumber">821</span> <span class="scilabnumber">825</span> <span class="scilabnumber">868</span> <span class="scilabnumber">852</span> <span class="scilabnumber">832</span> <span class="scilabnumber">828</span> <span class="scilabnumber">799</span> <span class="scilabnumber">686</span> <span class="scilabspecial">..</span>
<span class="scilabnumber">510</span> <span class="scilabnumber">671</span> <span class="scilabnumber">575</span> <span class="scilabnumber">740</span> <span class="scilabnumber">510</span> <span class="scilabnumber">675</span> <span class="scilabnumber">996</span> <span class="scilabnumber">636</span> <span class="scilabnumber">826</span> <span class="scilabnumber">1022</span> <span class="scilabnumber">1140</span> <span class="scilabnumber">654</span> <span class="scilabnumber">909</span> <span class="scilabnumber">799</span> <span class="scilabspecial">..</span>
-<span class="scilabnumber">1162</span> <span class="scilabnumber">653</span> <span class="scilabnumber">814</span> <span class="scilabnumber">625</span> <span class="scilabnumber">599</span> <span class="scilabnumber">476</span> <span class="scilabnumber">767</span> <span class="scilabnumber">954</span> <span class="scilabnumber">906</span> <span class="scilabnumber">904</span> <span class="scilabnumber">649</span> <span class="scilabnumber">873</span> <span class="scilabnumber">565</span> <span class="scilabnumber">853</span> <span class="scilabnumber">1008</span> <span class="scilabnumber">632</span><span class="scilabopenclose">]</span>
+<span class="scilabnumber">1162</span> <span class="scilabnumber">653</span> <span class="scilabnumber">814</span> <span class="scilabnumber">625</span> <span class="scilabnumber">599</span> <span class="scilabnumber">476</span> <span class="scilabnumber">767</span> <span class="scilabnumber">954</span> <span class="scilabnumber">906</span> <span class="scilabnumber">904</span> <span class="scilabnumber">649</span> <span class="scilabnumber">873</span> <span class="scilabnumber">565</span> <span class="scilabnumber">853</span> <span class="scilabnumber">1008</span> <span class="scilabnumber">632</span><span class="scilabopenclose">]</span><span class="scilaboperator">&#0039;</span><span class="scilabdefault">;</span>
<span class="scilabcomment">//Constraint Matrix</span>
<span class="scilabid">conMatrix</span> <span class="scilaboperator">=</span> <span class="scilabopenclose">[</span> <span class="scilabcomment">//Constraint 1</span>
<span class="scilabnumber">42</span> <span class="scilabnumber">41</span> <span class="scilabnumber">523</span> <span class="scilabnumber">215</span> <span class="scilabnumber">819</span> <span class="scilabnumber">551</span> <span class="scilabnumber">69</span> <span class="scilabnumber">193</span> <span class="scilabnumber">582</span> <span class="scilabnumber">375</span> <span class="scilabnumber">367</span> <span class="scilabnumber">478</span> <span class="scilabnumber">162</span> <span class="scilabnumber">898</span> <span class="scilabspecial">..</span>
diff --git a/help/en_US/symphony.xml b/help/en_US/symphony.xml
index 972bfc1..a80f022 100644
--- a/help/en_US/symphony.xml
+++ b/help/en_US/symphony.xml
@@ -40,7 +40,7 @@
<varlistentry><term>nbCon :</term>
<listitem><para> a double, number of constraints.</para></listitem></varlistentry>
<varlistentry><term>objCoeff :</term>
- <listitem><para> a 1 x n matrix of doubles, where n is number of variables, represents coefficients of the variables in the objective.</para></listitem></varlistentry>
+ <listitem><para> a vector of doubles, represents coefficients of the variables in the objective.</para></listitem></varlistentry>
<varlistentry><term>isInt :</term>
<listitem><para> a vector of boolean, represents wether a variable is constrained to be an integer.</para></listitem></varlistentry>
<varlistentry><term>LB :</term>
diff --git a/help/en_US/symphonymat.xml b/help/en_US/symphonymat.xml
index 1328167..881092b 100644
--- a/help/en_US/symphonymat.xml
+++ b/help/en_US/symphonymat.xml
@@ -37,7 +37,7 @@
<title>Parameters</title>
<variablelist>
<varlistentry><term>f :</term>
- <listitem><para> a vector of doubles, where n is number of variables, contains coefficients of the variables in the objective</para></listitem></varlistentry>
+ <listitem><para> a vector of doubles, contains coefficients of the variables in the objective</para></listitem></varlistentry>
<varlistentry><term>intcon :</term>
<listitem><para> Vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 through number of variable.</para></listitem></varlistentry>
<varlistentry><term>A :</term>
@@ -55,9 +55,11 @@
<varlistentry><term>options :</term>
<listitem><para> a list containing the the parameters to be set.</para></listitem></varlistentry>
<varlistentry><term>xopt :</term>
- <listitem><para> a 1xn matrix of doubles, the computed solution of the optimization problem</para></listitem></varlistentry>
+ <listitem><para> a vector of double, the computed solution of the optimization problem</para></listitem></varlistentry>
<varlistentry><term>fopt :</term>
- <listitem><para> a 1x1 matrix of doubles, the function value at x</para></listitem></varlistentry>
+ <listitem><para> a doubles, the function value at x</para></listitem></varlistentry>
+ <varlistentry><term>status :</term>
+ <listitem><para> status flag from symphony.</para></listitem></varlistentry>
<varlistentry><term>output :</term>
<listitem><para> The output data structure contains detailed informations about the optimization process.</para></listitem></varlistentry>
</variablelist>
@@ -91,7 +93,7 @@ We are calling SYMPHONY written in C by gateway files for the actual computation
<title>Examples</title>
<programlisting role="example"><![CDATA[
// Objective function
-c = [350*5,330*3,310*4,280*6,500,450,400,100]
+c = [350*5,330*3,310*4,280*6,500,450,400,100]';
// Lower Bound of variable
lb = repmat(0,1,8);
// Upper Bound of variables
@@ -127,7 +129,7 @@ objCoef = -1*[ 504 803 667 1103 834 585 811 856 690 832 846 813 868 793 ..
957 798 669 625 467 1051 552 717 654 388 559 555 1104 783 ..
959 668 507 855 986 831 821 825 868 852 832 828 799 686 ..
510 671 575 740 510 675 996 636 826 1022 1140 654 909 799 ..
-1162 653 814 625 599 476 767 954 906 904 649 873 565 853 1008 632]
+1162 653 814 625 599 476 767 954 906 904 649 873 565 853 1008 632]';
//Constraint Matrix
conMatrix = [ //Constraint 1
42 41 523 215 819 551 69 193 582 375 367 478 162 898 ..
diff --git a/jar/scilab_en_US_help.jar b/jar/scilab_en_US_help.jar
index 1487f17..1af3f90 100644
--- a/jar/scilab_en_US_help.jar
+++ b/jar/scilab_en_US_help.jar
Binary files differ
diff --git a/macros/lib b/macros/lib
index b846940..60efd81 100644
--- a/macros/lib
+++ b/macros/lib
Binary files differ
diff --git a/macros/lsqlin.bin b/macros/lsqlin.bin
index ec9e6ef..d86e0e1 100644
--- a/macros/lsqlin.bin
+++ b/macros/lsqlin.bin
Binary files differ
diff --git a/macros/lsqlin.sci b/macros/lsqlin.sci
index 003edc5..b990c08 100644
--- a/macros/lsqlin.sci
+++ b/macros/lsqlin.sci
@@ -28,19 +28,19 @@ function [xopt,resnorm,residual,exitflag,output,lambda] = lsqlin (varargin)
// b : a vector of doubles, represents the linear coefficients in the inequality constraints
// Aeq : a matrix of doubles, represents the linear coefficients in the equality constraints
// beq : a vector of doubles, represents the linear coefficients in the equality constraints
- // LB : a vector of doubles, where n is number of variables, contains lower bounds of the variables.
- // UB : a vector of doubles, where n is number of variables, contains upper bounds of the variables.
+ // LB : a vector of doubles, contains lower bounds of the variables.
+ // UB : a vector of doubles, contains upper bounds of the variables.
// x0 : a vector of doubles, contains initial guess of variables.
// param : a list containing the the parameters to be set.
// xopt : a vector of doubles, the computed solution of the optimization problem.
- // fopt : a double, the function value at x.
+ // resnorm : a double, objective value returned as the scalar value norm(C*x-d)^2.
+ // residual : a vector of doubles, solution residuals returned as the vector C*x-d.
// exitflag : Integer identifying the reason the algorithm terminated.
// output : Structure containing information about the optimization.
// lambda : Structure containing the Lagrange multipliers at the solution x (separated by constraint type).
//
// Description
// Search the minimum of a constrained linear least square problem specified by :
- // find the minimum of f(x) such that
//
// <latex>
// \begin{eqnarray}
@@ -212,7 +212,7 @@ function [xopt,resnorm,residual,exitflag,output,lambda] = lsqlin (varargin)
x0=x0';
end
- //Check the size of f which should equal to the number of variable
+ //Check the size of d which should equal to the number of variable
if ( size(d,1) ~= size(C,1)) then
errmsg = msprintf(gettext("%s: The number of rows in C must be equal the number of elements of d"), "lsqlin");
error(errmsg);
diff --git a/macros/lsqnonneg.bin b/macros/lsqnonneg.bin
new file mode 100644
index 0000000..e9e1295
--- /dev/null
+++ b/macros/lsqnonneg.bin
Binary files differ
diff --git a/macros/lsqnonneg.sci b/macros/lsqnonneg.sci
new file mode 100644
index 0000000..c65b1ba
--- /dev/null
+++ b/macros/lsqnonneg.sci
@@ -0,0 +1,186 @@
+// Copyright (C) 2015 - IIT Bombay - FOSSEE
+//
+// Author: Harpreet Singh
+// Organization: FOSSEE, IIT Bombay
+// Email: harpreet.mertia@gmail.com
+// This file must be used under the terms of the CeCILL.
+// This source file is licensed as described in the file COPYING, which
+// you should have received as part of this distribution. The terms
+// are also available at
+// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+
+
+function [xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg (varargin)
+ // Solves nonnegative least-squares curve fitting problems.
+ //
+ // Calling Sequence
+ // x = lsqnonneg(C,d)
+ // x = lsqnonneg(C,d,param)
+ // [xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg( ... )
+ //
+ // Parameters
+ // C : a matrix of doubles, represents the multiplier of the solution x in the expression C*x - d. C is M-by-N, where M is the number of equations, and N is the number of elements of x.
+ // d : a vector of doubles, represents the additive constant term in the expression C*x - d. d is M-by-1, where M is the number of equations.
+ // xopt : a vector of doubles, the computed solution of the optimization problem.
+ // resnorm : a double, objective value returned as the scalar value norm(C*x-d)^2.
+ // residual : a vector of doubles, solution residuals returned as the vector C*x-d.
+ // exitflag : Integer identifying the reason the algorithm terminated.
+ // output : Structure containing information about the optimization.
+ // lambda : Structure containing the Lagrange multipliers at the solution x (separated by constraint type).
+ //
+ // Description
+ // Solves nonnegative least-squares curve fitting problems specified by :
+ //
+ // <latex>
+ // \begin{eqnarray}
+ // &\mbox{min}_{x}
+ // & 1/2||C*x - d||_2^2 \\
+ // & & x \geq 0 \\
+ // \end{eqnarray}
+ // </latex>
+ //
+ // We are calling IPOpt for solving the nonnegative least-squares curve fitting problems, IPOpt is a library written in C++. The code has been written by ​Andreas Wächter and ​Carl Laird.
+ //
+ // Examples
+ // A basic lsqnonneg problem
+ // C = [
+ // 0.0372 0.2869
+ // 0.6861 0.7071
+ // 0.6233 0.6245
+ // 0.6344 0.6170];
+ // d = [
+ // 0.8587
+ // 0.1781
+ // 0.0747
+ // 0.8405];
+ // [xopt,resnorm,residual,exitflag,output,lambda] = lsqnonneg(C,d)
+ //
+ // Authors
+ // Harpreet Singh
+
+
+ //To check the number of input and output argument
+ [lhs , rhs] = argn();
+
+ //To check the number of argument given by user
+ if ( rhs < 2 | rhs > 3 ) then
+ errmsg = msprintf(gettext("%s: Unexpected number of input arguments : %d provided while should be in the set of [2 3]"), "lsqlin", rhs);
+ error(errmsg)
+ end
+
+ C = varargin(1);
+ d = varargin(2);
+ nbVar = size(C,2);
+ if ( rhs<3 | size(varargin(3)) ==0 ) then
+ param = list();
+ else
+ param =varargin(10);
+ end
+
+ if (type(param) ~= 15) then
+ errmsg = msprintf(gettext("%s: param should be a list "), "lsqlin");
+ error(errmsg);
+ end
+
+
+ if (modulo(size(param),2)) then
+ errmsg = msprintf(gettext("%s: Size of parameters should be even"), "lsqlin");
+ error(errmsg);
+ end
+
+ options = list( "MaxIter" , [3000], ...
+ "CpuTime" , [600] ...
+ );
+
+ for i = 1:(size(param))/2
+
+ select param(2*i-1)
+ case "MaxIter" then
+ options(2*i) = param(2*i);
+ case "CpuTime" then
+ options(2*i) = param(2*i);
+ else
+ errmsg = msprintf(gettext("%s: Unrecognized parameter name ''%s''."), "lsqlin", param(2*i-1));
+ error(errmsg)
+ end
+ end
+
+ // Check if the user gives row vector
+ // and Changing it to a column matrix
+
+
+ if (size(d,2)== [nbVar]) then
+ d=d';
+ end
+
+ //Check the size of f which should equal to the number of variable
+ if ( size(d,1) ~= size(C,1)) then
+ errmsg = msprintf(gettext("%s: The number of rows in C must be equal the number of elements of d"), "lsqlin");
+ error(errmsg);
+ end
+
+ //Converting it into Quadratic Programming Problem
+
+ Q = C'*C;
+ p = [-C'*d]';
+ op_add = d'*d;
+ LB = repmat(0,1,nbVar);
+ UB = repmat(%inf,1,nbVar);
+ x0 = repmat(0,1,nbVar);;
+ conMatrix = [];
+ nbCon = size(conMatrix,1);
+ conLB = [];
+ conUB = [] ;
+ [xopt,fopt,status,iter,Zl,Zu,lmbda] = solveqp(nbVar,nbCon,Q,p,conMatrix,conLB,conUB,LB,UB,x0,options);
+
+ xopt = xopt';
+ residual = C*xopt-d;
+ resnorm = residual'*residual;
+ exitflag = status;
+ output = struct("Iterations" , []);
+ output.Iterations = iter;
+ lambda = struct("lower" , [], ..
+ "upper" , [], ..
+ "constraint" , []);
+
+ lambda.lower = Zl;
+ lambda.upper = Zu;
+ lambda.constraint = lmbda;
+
+ select status
+ case 0 then
+ printf("\nOptimal Solution Found.\n");
+ case 1 then
+ printf("\nMaximum Number of Iterations Exceeded. Output may not be optimal.\n");
+ case 2 then
+ printf("\nMaximum CPU Time exceeded. Output may not be optimal.\n");
+ case 3 then
+ printf("\nStop at Tiny Step\n");
+ case 4 then
+ printf("\nSolved To Acceptable Level\n");
+ case 5 then
+ printf("\nConverged to a point of local infeasibility.\n");
+ case 6 then
+ printf("\nStopping optimization at current point as requested by user.\n");
+ case 7 then
+ printf("\nFeasible point for square problem found.\n");
+ case 8 then
+ printf("\nIterates diverging; problem might be unbounded.\n");
+ case 9 then
+ printf("\nRestoration Failed!\n");
+ case 10 then
+ printf("\nError in step computation (regularization becomes too large?)!\n");
+ case 12 then
+ printf("\nProblem has too few degrees of freedom.\n");
+ case 13 then
+ printf("\nInvalid option thrown back by IPOpt\n");
+ case 14 then
+ printf("\nNot enough memory.\n");
+ case 15 then
+ printf("\nINTERNAL ERROR: Unknown SolverReturn value - Notify IPOPT Authors.\n");
+ else
+ printf("\nInvalid status returned. Notify the Toolbox authors\n");
+ break;
+ end
+
+endfunction
diff --git a/macros/names b/macros/names
index 18923c4..e04f783 100644
--- a/macros/names
+++ b/macros/names
@@ -1,8 +1,8 @@
lsqlin
+lsqnonneg
qpipopt
qpipoptmat
setOptions
symphony
symphony_call
-symphony_mat
symphonymat
diff --git a/macros/qpipopt.bin b/macros/qpipopt.bin
index e13d5a9..2fd432e 100644
--- a/macros/qpipopt.bin
+++ b/macros/qpipopt.bin
Binary files differ
diff --git a/macros/qpipopt.sci b/macros/qpipopt.sci
index ccf10e4..8b7cecd 100644
--- a/macros/qpipopt.sci
+++ b/macros/qpipopt.sci
@@ -25,7 +25,7 @@ function [xopt,fopt,exitflag,output,lambda] = qpipopt (varargin)
// Q : a symmetric matrix of doubles, represents coefficients of quadratic in the quadratic problem.
// p : a vector of doubles, represents coefficients of linear in the quadratic problem
// LB : a vector of doubles, contains lower bounds of the variables.
- // UB : a vector of doubles, where n is number of variables, contains upper bounds of the variables.
+ // UB : a vector of doubles, contains upper bounds of the variables.
// conMatrix : a matrix of doubles, contains matrix representing the constraint matrix
// conLB : a vector of doubles, contains lower bounds of the constraints.
// conUB : a vector of doubles, contains upper bounds of the constraints.
diff --git a/macros/qpipoptmat.bin b/macros/qpipoptmat.bin
index 07c9386..98ec979 100644
--- a/macros/qpipoptmat.bin
+++ b/macros/qpipoptmat.bin
Binary files differ
diff --git a/macros/qpipoptmat.sci b/macros/qpipoptmat.sci
index 9f20870..4b8e427 100644
--- a/macros/qpipoptmat.sci
+++ b/macros/qpipoptmat.sci
@@ -29,8 +29,8 @@ function [xopt,fopt,exitflag,output,lambda] = qpipoptmat (varargin)
// b : a vector of doubles, represents the linear coefficients in the inequality constraints
// Aeq : a matrix of doubles, represents the linear coefficients in the equality constraints
// beq : a vector of doubles, represents the linear coefficients in the equality constraints
- // LB : a vector of doubles, where n is number of variables, contains lower bounds of the variables.
- // UB : a vector of doubles, where n is number of variables, contains upper bounds of the variables.
+ // LB : a vector of doubles, contains lower bounds of the variables.
+ // UB : a vector of doubles, contains upper bounds of the variables.
// x0 : a vector of doubles, contains initial guess of variables.
// param : a list containing the the parameters to be set.
// xopt : a vector of doubles, the computed solution of the optimization problem.
diff --git a/macros/symphony.bin b/macros/symphony.bin
index d126d9f..3dab926 100644
--- a/macros/symphony.bin
+++ b/macros/symphony.bin
Binary files differ
diff --git a/macros/symphony.sci b/macros/symphony.sci
index c5b1cdf..eba9e64 100644
--- a/macros/symphony.sci
+++ b/macros/symphony.sci
@@ -21,7 +21,7 @@ function [xopt,fopt,status,output] = symphony (varargin)
// Parameters
// nbVar : a double, number of variables.
// nbCon : a double, number of constraints.
- // objCoeff : a 1 x n matrix of doubles, where n is number of variables, represents coefficients of the variables in the objective.
+ // objCoeff : a vector of doubles, represents coefficients of the variables in the objective.
// isInt : a vector of boolean, represents wether a variable is constrained to be an integer.
// LB : a vector of doubles, represents lower bounds of the variables.
// UB : a vector of doubles, represents upper bounds of the variables.
diff --git a/macros/symphonymat.bin b/macros/symphonymat.bin
index 95bba1a..8d42926 100644
--- a/macros/symphonymat.bin
+++ b/macros/symphonymat.bin
Binary files differ
diff --git a/macros/symphonymat.sci b/macros/symphonymat.sci
index 9e1ffaf..33a1163 100644
--- a/macros/symphonymat.sci
+++ b/macros/symphonymat.sci
@@ -20,7 +20,7 @@ function [xopt,fopt,status,iter] = symphonymat (varargin)
// [xopt,fopt,status,output] = symphonymat( ... )
//
// Parameters
- // f : a vector of doubles, where n is number of variables, contains coefficients of the variables in the objective
+ // f : a vector of doubles, contains coefficients of the variables in the objective
// intcon : Vector of integer constraints, specified as a vector of positive integers. The values in intcon indicate the components of the decision variable x that are integer-valued. intcon has values from 1 through number of variable.
// A : Linear inequality constraint matrix, specified as a matrix of doubles. A represents the linear coefficients in the constraints A*x ≤ b. A has size M-by-N, where M is the number of constraints and N is number of variables
// b : Linear inequality constraint vector, specified as a vector of doubles. b represents the constant vector in the constraints A*x ≤ b. b has length M, where A is M-by-N
@@ -29,8 +29,9 @@ function [xopt,fopt,status,iter] = symphonymat (varargin)
// lb : Lower bounds, specified as a vector or array of doubles. lb represents the lower bounds elementwise in lb ≤ x ≤ ub.
// ub : Upper bounds, specified as a vector or array of doubles. ub represents the upper bounds elementwise in lb ≤ x ≤ ub.
// options : a list containing the the parameters to be set.
- // xopt : a 1xn matrix of doubles, the computed solution of the optimization problem
- // fopt : a 1x1 matrix of doubles, the function value at x
+ // xopt : a vector of double, the computed solution of the optimization problem
+ // fopt : a doubles, the function value at x
+ // status : status flag from symphony.
// output : The output data structure contains detailed informations about the optimization process.
//
// Description