index 24f0a19..b1b8c4f 100644 (file)
<refsection>
<title>Description</title>

-    <para>Minimize <literal> 0.5*x'*Q*x + p'*x</literal></para>
-
-    <para>under the constraints</para>
-
-    <programlisting>
-
- C(j,:) x = b(j),  j=1,...,me
- C(j,:) x &lt;= b(j), j=me+1,...,me+md
- ci &lt;= x &lt;= cs
-
-    </programlisting>
+    <informalequation>
+      <mediaobject>
+        <imageobject>
+          <imagedata align="center" fileref="../mml/qld_equation_1.mml" />
+        </imageobject>
+      </mediaobject>
+    </informalequation>

<para>This function requires <literal>Q</literal> to be symmetric positive
-    definite. If that hypothesis is not satisfied, one may use the <link
-    quapro toolbox.</para>
+    definite. If that hypothesis is not satisfied, one may use the quapro
+    function, which is provided in the Scilab quapro toolbox.</para>

<para>The qpsolve solver is implemented as a Scilab script, which calls
the compiled qp_solve primitive. It is provided as a facility, in order to
<refsection>
<title>Examples</title>

-    <programlisting role="example">
-
+    <programlisting role="example"><![CDATA[
//Find x in R^6 such that:
//C1*x = b1 (3 equality constraints i.e me=3)
C1= [1,-1,1,0,3,1;
-1,0,-3,-4,5,6;
2,5,3,0,1,0];
b1=[1;2;3];
-//C2*x &lt;= b2 (2 inequality constraints)
+
+//C2*x <= b2 (2 inequality constraints)
C2=[0,1,0,1,2,-1;
-1,0,2,1,1,0];
b2=[-1;2.5];
+
//with  x between ci and cs:
-ci=[-1000;-10000;0;-1000;-1000;-1000];cs=[10000;100;1.5;100;100;1000];
+ci=[-1000;-10000;0;-1000;-1000;-1000];
+cs=[10000;100;1.5;100;100;1000];
+
//and minimize 0.5*x'*Q*x + p'*x with
p=[1;2;3;4;5;6]; Q=eye(6,6);
+
//No initial point is given;
-C=[C1;C2] ; //
-b=[b1;b2] ;  //
+C=[C1;C2];
+b=[b1;b2];
me=3;
[x,iact,iter,f]=qpsolve(Q,p,C,b,ci,cs,me)
//Only linear constraints (1 to 4) are active
-  </programlisting>
+ ]]></programlisting>
</refsection>

<refsection>
@@ -198,12 +196,16 @@ me=3;

<para>Let r be</para>

-    <programlisting>r=min(m,n)</programlisting>
+    <programlisting role = ""><![CDATA[
+r=min(m,n)
+ ]]></programlisting>

<para>Then the memory required by qpsolve during the computations
is</para>

-    <programlisting>2*n+r*(r+5)/2 + 2*m +1</programlisting>
+    <programlisting role =""><![CDATA[
+2*n+r*(r+5)/2 + 2*m +1
+ ]]></programlisting>
</refsection>

<refsection>