Stanislav KROTER [Tue, 26 Mar 2013 16:33:01 +0000 (22:33 +0600)]
Fixed some typos and changed the example "An eigenvalue problem".
This example asked about n-th eigenvalue but did not wait the answer and, as a result, the graphic figure and the sample image were different.

Change-Id: I4bbecf02e061a0907df459cc79517f3c81a66af4

index ae230cd..d9b5d35 100644 (file)
@@ -56,7 +56,7 @@
<term>N</term>
<listitem>
<para>a scalar with integer value, number of differential equations
-                        (N &lt;= 20).
+                        (<literal>N</literal> &lt;= 20).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>= 0</term>
<listitem>
-                                            <para>causes bvode to generate a uniform initial
+                                            <para>causes <literal>bvode</literal> to generate a uniform initial
mesh.
</para>
</listitem>
<varlistentry>
<term>= 1</term>
<listitem>
-                                                        <para>if the initial mesh is provided by the user.
-                                                            it is defined in <literal>fspace</literal> as follows: the mesh
+                                                        <para>if the initial mesh is provided by the user it is defined in <literal>fspace</literal> as follows: the mesh
will occupy <literal>fspace(1), ..., fspace(n+1)</literal>. The user needs to supply only
-                                                            the interior mesh points <literal>fspace(j) = x(j),
-                                                                j = 2, ..., n.
-                                                            </literal>
+                                                            the interior mesh points <literal>fspace(j) = x(j),j = 2, ..., n</literal>.
</para>
</listitem>
</varlistentry>
<term>= 3</term>
<listitem>
<para>if a former mesh and approximate solution
-                                                coefficients are provided by the user in <literal>fspace</literal> , and the
-                                                new mesh is to be taken twice as coarse; i.e.,every
+                                                coefficients are provided by the user in <literal>fspace</literal>, and the
+                                                new mesh is to be taken twice as coarse; i.e. every
second point from the former mesh.
</para>
</listitem>
<para>
an array of dimension <literal>ntol=ipar(4)</literal>.
<literal>ltol(j) = l</literal> specifies that the <literal>j</literal>-th tolerance in
-                        the <literal> tol</literal> array controls the error in the <literal>l</literal>-th
+                        the <literal>tol</literal> array controls the error in the <literal>l</literal>-th
component of
<inlinemediaobject>
<imageobject>
</mml:math>
</imagedata>
</imageobject>
-                        </inlinemediaobject>
-                        . It is also required that:
+                        </inlinemediaobject>.
+                        It is also required that:
</para>
<para>
<literal>1 &lt;= ltol(1) &lt; ltol(2) &lt; ... &lt; ltol(ntol)
<literal>x_up</literal>, which are to be included in every mesh. The
code requires that all side condition points other than
<literal>x_low</literal> and <literal>x_up</literal> (see
-                        description of <literal>zeta</literal> ) be included as fixed points in
+                        description of <literal>zeta</literal>) be included as fixed points in
<literal>fixpnt</literal>.
</para>
</listitem>
@@ -1431,7 +1428,7 @@ function [dmval,zu]=fsub(x,parameters)
<listitem>
<para>
<emphasis role="bold">The problem 1</emphasis> describes a
-                    uniformy loaded beam of variable stifness, simply supported at both
+                    uniformly loaded beam of variable stiffness, simply supported at both
end.
</para>
<para>It may be defined as follow :</para>
@@ -2146,7 +2143,7 @@ xt=sqrt(2*(gam-1)/gam)
fixpnt=[ ];//All boundary conditions are located at x_low and x_up
collpnt=4;
nsizef=4+3*M+(5+collpnt*N)*(collpnt*N+M)+(2*M-2)*2*M ;
-nsizei=3 + collpnt*N+M;;
+nsizei=3 + collpnt*N+M;
nmax=200;
//    nonlin  collpnt n  ntol  ndimf        ndimi       iprint iread iguess rstart nfxpnt
ipar=[1       collpnt 10  4   nmax*nsizef  nmax*nsizei   -1      0     0      0      0     ]
@@ -2222,7 +2219,8 @@ N=101;
x=linspace(a,b,N)';

// We have s(n)-(n+1/2)*pi -> 0 for n to infinity.
-la0=input('n-th eigenvalue: n= ?');la0=(%pi/2+la0*%pi)^2;
+la0=evstr(x_dialog('n-th eigenvalue: n= ?','10'));
+la0=(%pi/2+la0*%pi)^2;

z=bvodeS(x,m,n,a,b,fsub,gsub,zeta,ystart=list(ystart,la0));
// The same call without any display
@@ -2233,7 +2231,7 @@ z=bvodeS(x,m,n,a,b,fsub,gsub,zeta,ystart=list(ystart,la0),iprint=-1);
clf()
plot(x,[z(1,:)' z(2,:)'])
xtitle(['Startvalue =  '+string(la0);'Eigenvalue = '+string(z(3,1))],'x',' ')
-legend(['y(x)';'y''(x)'])
+legend(['y(x)';'y''(x)']);
]]></programlisting>
<scilab:image localized="true">
function rhs=fsub(x,z)
index 1cb3d40..1322544 100644 (file)
<literal>max(m(j)) &lt;= collpnt &lt;= 7</literal>.
</para>
<para>
-                                    Если <literal>ipar(2)=0</literal>, то <literal>collpnt</literal> установлен равным  <literal>max( max(m(j))+1, 5-max(m(j)) )</literal>.
+                                    Если <literal>ipar(2)=0</literal>, то <literal>collpnt</literal> установлен равным  <literal>max( max(m(j))+1, 5-max(m(j)))</literal>.
</para>
</listitem>
</varlistentry>
<term>subint: ipar(3)</term>
<listitem>
<para>
-                                    Задаёт количество подынтервалов в исходной сетке. Если
-                                    <literal>ipar(3) = 0</literal>, то  <literal>bvode</literal> произвольным образом устанавливается <literal>subint = 5</literal>.
+                                    Задаёт количество подынтервалов в исходной сетке. Если <literal>ipar(3) = 0</literal>, то  <literal>bvode</literal> произвольным образом устанавливается <literal>subint = 5</literal>.
</para>
</listitem>
</varlistentry>
<para>
массив размерности <literal>ntol=ipar(4)</literal>.
<literal>ltol(j) = l</literal> определяет, что <literal>j</literal>-тый допуск в массиве
-                        <literal> tol</literal> управляет ошибкой в <literal>l</literal>-том элементе
+                        <literal>tol</literal> управляет ошибкой в <literal>l</literal>-том элементе
<inlinemediaobject>
<imageobject>
<imagedata>
</mml:math>
</imagedata>
</imageobject>
-                        </inlinemediaobject>
-                        .
+                        </inlinemediaobject>.
Также требуется, чтобы:
</para>
<para>
</mml:math>
</imagedata>
</imageobject>
-                        </inlinemediaobject>
-                        . Таким образом код пытается удовлетворить
+                        </inlinemediaobject>.
+                         Таким образом код пытается удовлетворить
<inlinemediaobject>
<imageobject>
<imagedata>
<para>
массив размером <literal>nfxpnt=ipar(11)</literal>. Он содержит точки отличные от
<literal>x_low</literal> и <literal>x_up</literal>, которые нужно включить во все
-                        сетки. Код требует, чтобы все точки дополнительных условий, отличные от
+                        сетки. Код требует, чтобы все точки дополнительных условий, отличные от
<literal>x_low</literal> и <literal>x_up</literal> (см. описание <literal>zeta</literal> )
были включены в качестве фиксированных точек в <literal>fixpnt</literal>.
</para>
@@ -1795,7 +1793,7 @@ function dg=dgsub(i,z)
end
endfunction

-// - Функция, которая вычисляет начальное предположение, здесь не используется
+// - Функция, которая вычисляет начальное предположение, здесь не используемое
function [zu,mpar]=guess(x)
zu=0;
mpar=0;
@@ -1812,8 +1810,8 @@ endfunction

fixpnt=[ ];//Все граничные условия находятся в x_low и x_up

-//    nonlin  collpnt n  ntol  ndimf        ndimi       iprint iread iguess rstart nfxpnt
-+ipar=[1       collpnt 10  4   nmax*nsizef  nmax*nsizei   -1      0     0      0      0     ]
+//    nonlin  collpnt n ntol ndimf  ndimi iprint iread iguess rstart nfxpnt
+ipar=[0       0       1 2    2000   200   1      0     0      0      0     ]

ltol=[1,3];//установка контроля допуска на zu(1) и zu(3)
tol=[1.e-11,1.e-11];//установка значений допуска для контроля допуска
@@ -2129,16 +2127,16 @@ xt=sqrt(2*(gam-1)/gam)
fixpnt=[ ];// все граничные условия размещены в x_low и x_up
collpnt=4;
nsizef=4+3*M+(5+collpnt*N)*(collpnt*N+M)+(2*M-2)*2*M ;
-nsizei=3 + collpnt*N+M;;
+nsizei=3 + collpnt*N+M;
nmax=200;
//    nonlin  collpnt n  ntol ndimf        ndimi        iprint iread iguess rstart nfxpnt
-ipar=[1       k       10 4    nmax*nsizef  nmax*nsizei   -1      0     0      0      0     ]
+ipar=[1       collpnt 10  4   nmax*nsizef  nmax*nsizei   -1      0     0      0      0     ]

ltol=1:4;//установка контроля допусков на zu(1), zu(2), zu(3) и zu(4)
-tol=[1.e-5,1.e-5,1.e-5,1.e-5];//установка значений для контроля допусков
+tol=[1.e-5,1.e-5,1.e-5,1.e-5];//установка значений допусков для этих четырёх значений контроля
xpoints=x_low:0.01:x_up;

-// - Функция, которая вычисляет начальное предположение, здесь не используется
+// - Функция, которая вычисляет начальное предположение, здесь не используемое
function [zu,dmval]=guess2(x,gam),
cons=gam*x*(1-x^2/2)
dcons=gam*(1-3*x^2/2)
@@ -2204,8 +2202,9 @@ zeta=[a a b];
N=101;
x=linspace(a,b,N)';

-//Имеем s(n)-(n+1/2)*pi -> 0 для n, стремящимся к бесконечности.
-la0=input('n-ное собственное значение: n= ?');la0=(%pi/2+la0*%pi)^2;
+//Имеем s(n)-(n+1/2)*pi -> 0 для n, стремящемся к бесконечности.
+la0=evstr(x_dialog('n-ное собственное значение: n= ?','10'));
+la0=(%pi/2+la0*%pi)^2;

z=bvodeS(x,m,n,a,b,fsub,gsub,zeta,ystart=list(ystart,la0));
// Тот же вызов без вывода на экран
@@ -2216,7 +2215,7 @@ z=bvodeS(x,m,n,a,b,fsub,gsub,zeta,ystart=list(ystart,la0),iprint=-1);
clf()
plot(x,[z(1,:)' z(2,:)'])
xtitle(['Начальное значение =  '+string(la0);'Собственное значение = '+string(z(3,1))],'x',' ')
-legend(['y(x)';'y''(x)'])
+legend(['y(x)';'y''(x)']);
]]></programlisting>
<scilab:image localized="true">
function rhs=fsub(x,z)