Revision of russian help page after commit 68e682c954d328f05371ce26bec7352715a7c224. 72/10972/1
Stanislav KROTER [Sun, 24 Mar 2013 06:46:54 +0000 (12:46 +0600)]
Change-Id: I71c54e71aec8094b674638f1f153a7e44bd80bdd

scilab/modules/differential_equations/help/en_US/bvode.xml
scilab/modules/differential_equations/help/ru_RU/bvode.xml
scilab/modules/helptools/etc/images_md5.txt
scilab/modules/helptools/images/bvode_ru_RU_2.png [new file with mode: 0644]

index 413c542..db97d46 100644 (file)
@@ -1828,7 +1828,7 @@ fixpnt=[ ];//All boundary conditions are located at x_low and x_up
 ipar=[0       0       1 2    2000   200   1      0     0      0      0     ]
 
 ltol=[1,3];//set tolerance control on zu(1) and zu(3)
-tol=[1.e-11,1.e-11];//set tolreance values for these two controls
+tol=[1.e-11,1.e-11];//set tolerance values for these two controls
 xpoints=x_low:0.01:x_up;
 
 zu=bvode(xpoints,N,m,x_low,x_up,zeta,ipar,ltol,tol,fixpnt,...
@@ -2481,7 +2481,7 @@ ncomp = 3;
 // Orders of equations
 m = [2, 1, 1];
 
-// Non-linear prob
+// Non-linear problem
 ipar(1) = 1;
 
 // Number of collocation points
@@ -2585,8 +2585,8 @@ end
 // To see the evolution of the eigenvalues with v, disp(eigens)
 // Note they evolve smoothly.
 // To see the solution f for v=40, disp(sol(1,:)). Note that it vanishes
-// exactly once in [0,1] at x close to .98, and becomes very small
-// when x->0 and very large when x -> y.
+// exactly once in [0,1] at x close to 0.98, and becomes very small
+// when x -> 0 and very large when x -> y.
 // This is markedly different from the case  at small v.
 // The continuation procedure allows to explore these exponential behaviours
 // without skipping to other eigenstates.
index f47b454..1cb3d40 100644 (file)
                                     <literal>nsizef=4 + 3*M + (5+collpnt*N)*(collpnt*N+M) + (2*M- 
                                         nrec)*2*M
                                     </literal>
-                                    (<literal>nrec</literal> -- количество граничных условий 
+                                    (<literal>nrec</literal> - количество граничных условий 
                                     с правой стороны).
                                 </para>
                             </listitem>
                                 </imagedata>
                             </imageobject>
                         </inlinemediaobject>
-                        -- вектор приближённого решения, а
+                        - вектор приближённого решения, а
                         <inlinemediaobject>
                             <imageobject>
                                 <imagedata>
                                 </imagedata>
                             </imageobject>
                         </inlinemediaobject>
-                        -- точное решение (неизвестное).
+                        - точное решение (неизвестное).
                     </para>
                 </listitem>
             </varlistentry>
@@ -1408,7 +1408,7 @@ function [dmval,zu]=fsub(x,parameters)
             Метод, используемый для аппроксимации решения, <literal>u</literal> является 
             коллокацией в гауссовских точках, требующих <literal>m(i)-1</literal> непрерывных 
             производных в <literal>i</literal>-том элементе, <literal>i = 1:N</literal>. Здесь, 
-            <literal>k</literal> -- количество точек коллокации (этапов) на подынтервале, и оно 
+            <literal>k</literal> - количество точек коллокации (этапов) на подынтервале, и оно 
             выбирается так, чтобы <literal>k .ge. max m(i)</literal>. Используется представление 
             решения одночленного решения Рунге-Кутты.
         </para>
@@ -2323,12 +2323,76 @@ subplot(2,1,2)
 plot2d(x,z1(1,:),style=[5])
 xtitle(' ','x',' ')
  ]]></programlisting>
+                <scilab:image localized="true">
+                    a=0;
+                    b=1;
+                    m=2;
+                    n=1;
+                    zeta=[a b];
+                    N=101;
+                    tol=1e-8*[1 1];
+                    x=linspace(a,b,N);
+                    
+                    function rhs=fsub(x,z)
+                    rhs=-exp(z(1));
+                    endfunction
+                    
+                    function g=gsub(i,z)
+                    g=[z(1) z(1)]
+                    g=g(i)
+                    endfunction
+                    
+                    function [z,lhs]=ystart(x,z,M) 
+                    //z=[4*x*(1-x)*M ; 4*(1-2*x)*M]
+                    z=[M;0]
+                    //lhs=[-exp(4*x*(1-x)*M)]
+                    lhs=0
+                    endfunction
+                    
+                    for M=[1 4]
+                    if M==1
+                    z=bvodeS(x,m,n,a,b,fsub,gsub,zeta,ystart=list(ystart,M),tol=tol);
+                    else
+                    z1=bvodeS(x,m,n,a,b,fsub,gsub,zeta,ystart=list(ystart,M),tol=tol);
+                    end
+                    end
+                    
+                    //  Интегрирование ОДУ даёт, например, два решения yex и yex1.
+                    
+                    function y=f(c)
+                    y=c.*(1-tanh(sqrt(c)/4).^2)-2;
+                    endfunction
+                    c=fsolve(2,f);
+                    
+                    function y=yex(x,c)
+                    y=log(c/2*(1-tanh(sqrt(c)*(1/4-x/2)).^2))
+                    endfunction
+                    
+                    function y=f1(c1)
+                        y=2*c1^2+tanh(1/4/c1)^2-1
+                    endfunction
+                    c1=fsolve(0.1,f1);
+                    
+                    function y=yex1(x,c1)
+                    y=log((1-tanh((2*x-1)/4/c1).^2)/2/c1/c1)
+                    endfunction
+                    
+                    disp(norm(z(1,:)-yex(x)),'norm(yex(x)-z(1,:))= ')
+                    disp(norm(z1(1,:)-yex1(x)),'norm(yex1(x)-z1(1,:))= ')
+                    clf();
+                    subplot(2,1,1)
+                    plot2d(x,z(1,:),style=[5])
+                    xtitle('Два различных решения','x',' ')
+                    subplot(2,1,2)
+                    plot2d(x,z1(1,:),style=[5])
+                    xtitle(' ','x',' ')
+                </scilab:image>
             </listitem>
             <listitem>
                 <para>
                     <emphasis role="bold">Многоточечная краевая задача</emphasis>
                 </para>
-                <programlisting role="example"><![CDATA[ 
+                <programlisting role="example"><![CDATA[
 // DE y'''(x)=1
 // z=[y(x);y'(x);y''(x)]
 // BV: y(-1)=2 y(1)=2
@@ -2361,6 +2425,160 @@ endfunction
 disp(norm(yex(x)-z(1,:)),'norm(yex(x)-z(1,:))= ')
  ]]></programlisting>
             </listitem>
+            <listitem>
+                <para>
+                    <emphasis role="bold">
+                        Квантовое уравнение Неймана с 2 "собственными значениями"
+                        (c_1 и c2). Используется продолжение.
+                    </emphasis>
+                </para>
+                <programlisting role="example"><![CDATA[
+
+// Квантовое уравнение Неймана с 2 "собственными значениями" c_1 и c_2
+// (c_1=v-c_2-c_3, где v - параметр, используемый в продолжении)
+//
+// diff(f,x,2) + (1/2)*(1/x + 1/(x-1) + 1/(x-y))*diff(f,x)
+//      - (c_1/x + c_2/(x-1) + c_3/(x-y))* f(x) = 0
+// diff(c_2,x)=0,  diff(c_3,x) = 0
+//
+// и 4 "граничных" условия: diff(f,x)(a_k)=2*c_k*f(a_k) для
+// k=1,2,3, a_k=(0, 1 , y)  и нормировка f(1) = 1
+//
+// Вектор z - это z_1=f, z_2=diff(f,x), z_3=c_2 и z_4=c_3
+// Предположение выбирается так, чтобы иметь один узел в интервале
+// [0,1],  f(x)=2*x-1 такая, что f(1)=1, c_2 и c_3 выбираются так,
+// чтобы исключить полюсы в дифференциальном уравнении в 1.0 и
+// y, z_3=1, z_4=1/(2*y-1)
+// См.: http://arxiv.org/pdf/hep-th/0407005
+
+
+
+
+y= 1.9d0;
+eigens=zeros(3,40); // Для хранения результатов
+
+// Общая настройка bvode
+
+// Количество дифференциальных уравнений
+ncomp = 3;
+
+// Порядки уравнений
+m = [2, 1, 1];
+
+// Нелинейная задача
+ipar(1) = 1;
+
+// Количество точек коллокации
+ipar(2) = 3;
+
+// Исходная сетка из 4 подынтервалов
+ipar(3) = 4;
+ipar(8) = 0;
+
+// Размер fspace, ispace, см. colnew.f для изменения размера
+ipar(5) =  30000;
+ipar(6) =  2000;
+
+// Средний вывод данных
+ipar(7) = 0;
+
+// Есть исходное приближение
+ipar(9) = 1;
+
+// fixpnt - это массив, содержащий все фиксированные точки в сетке, в
+// частности, "граничные" точки, за исключением aleft и aright, ipar[11]
+// её размер, здесь только одна внутренняя "граничная точка"
+ipar(11) = 1;
+fixpnt = [1.0d0];
+
+// Допустимые отклонения для всех элементов z_1, z_2, z_3, z_4
+ipar(4) = 4;
+
+// Проверка допустимого отклонения для f и diff(f,x) и для c_2 и c_3
+ltol = [1, 2, 3, 4];
+tol = [1d-5, 1d-5, 1d-5, 1d-5];
+
+// Определение дифференциальных уравнений
+
+function [f]=fsub(x,z)
+    f = [ -.5*(1/x+1/(x-1)+1/(x-y))*z(2) +...
+     z(1) * ((v-z(3)-z(4))/x + z(3)/(x-1) + z(4)/(x-y)),...
+    0,0];
+endfunction
+function [df] = dfsub(x,z)
+    df = [(v-z(3)-z(4))/x + z(3)/(x-1) + z(4)/(x-y),...
+    -.5*(1/x+1/(x-1)+1/(x-y)),z(1)/(x*(x-1)),z(1)*y/(x*(x-y));...
+    0,0,0,0;0,0,0,0];
+endfunction
+
+// Граничные условия
+
+function [g]=gsub(i,z)
+    select i
+    case 1, g = z(2) - 2*z(1)*(v-z(3)-z(4))
+    case 2, g = z(2) - 2*z(1)*z(3)
+    case 3, g = z(1)-1.
+    case 4, g = z(2) - 2*z(1)*z(4)
+    end
+endfunction
+function [dg]=dgsub(i,z)
+        select i
+        case 1, dg = [-2*(v-z(3)-z(4)),1.,2*z(1),2*z(1)]
+        case 2, dg = [-2*z(3),1.,-2*z(1),0]
+        case 3, dg = [1,0,0,0]
+        case 4, dg = [-2*z(4),1.,0,-2*z(1)]
+        end
+endfunction
+
+// Начало вычисления
+
+// Положения краевых условий, отсортированные
+zeta = [0.0d0, 1.0d0, 1.0d0, y];
+// Края интервала
+aleft = 0.0d0;
+aright = y;
+
+// Массив из 40 значений v, исследуемых продолжением, и массив из 202
+// точек, в которых следует вычислить функцию f.
+valv = [linspace(0,.9,10) logspace(0,2,30)];
+res = [linspace(0,.99,100) linspace(1,y,101)];
+
+// Собственные состояния характеризуются количеством узлов на интервале 
+// [0,1] и на [1,y], здесь предполжение выбирает один узел (ноль) на
+// интервале [0,1] с линейной функцией f(x)=2*x-1 и константами c_2, c_3,
+// так что dmval=0. Заметьте, что вектор z имеет mstar = 4 элементов,
+// в то время как dmval имеет ncomp = 3 элемента.
+
+function [z,dmval]=guess(x)
+     z=[2*x-1, 2., 1., 1/(2*y-1)]
+     dmval=[0,0,0]
+endfunction
+
+// Первое выполнение имеет ipar(9)=1 и использует предположение
+// Последующие выполнения имеют ipar(9)=3 и используют продолжение. 
+// Это выполняется в плотно закрытом цикле, чтобы не нарушить стек
+
+for i=1:40
+v=valv(i);
+sol=bvode(res,ncomp,m,aleft,aright,zeta,ipar,ltol,tol,fixpnt,...
+ fsub,dfsub,gsub,dgsub,guess);
+eigens(:,i)=[v;sol(3,101);sol(4,101)];  // c_2 и c_3 являются константами!
+ipar(9)=3;
+end
+
+
+// Чтобы увидеть изменение собственных значений с v, disp(eigens)
+// Обратите внимание на то, что они изменяются гладко.
+// Чтобы увидеть решение f для v=40, disp(sol(1,:)).
+// Обратите внимание на то, что оно исчезает точно один раз в
+// [0,1] в x близком  0.98, и становится очень малым, когда
+// x -> 0 и очень большим, когда x -> y.
+// Это явно отличается от случая при малом v.
+// Процедура продолжения позволяет исследовать эти экспоненциальные
+// поведения без перехода в другие собственные состояния.
+
+ ]]></programlisting>
+            </listitem>
         </itemizedlist>
     </refsection>
     <refsection role="see also">
index 4e025aa..aaf1b4d 100644 (file)
@@ -569,6 +569,7 @@ bvode_en_US_1.png=f5839719400ab9f8ae4004c3c7bad4ff
 bvode_fr_FR_1.png=f5839719400ab9f8ae4004c3c7bad4ff
 bvode_pt_BR_1.png=f5839719400ab9f8ae4004c3c7bad4ff
 bvode_ru_RU_1.png=9736fb5298b9998b1ea5bef6935cb1ea
+bvode_ru_RU_2.png=ffd1b2a6b253c13920c551d3fb466ca0
 calfrq_1.png=f4cfd31e6a05d4149c567c01272f96a
 captions_1.png=19ddf03ac04cd2b8ebbed9f218dbaa3e
 cdfbet_1.png=311cb1e4fb872d6f82b2dcafaa5911d1
diff --git a/scilab/modules/helptools/images/bvode_ru_RU_2.png b/scilab/modules/helptools/images/bvode_ru_RU_2.png
new file mode 100644 (file)
index 0000000..6eca938
Binary files /dev/null and b/scilab/modules/helptools/images/bvode_ru_RU_2.png differ