Inserted LaTeX-expression instead of 'k .ge. max m(i)'.
[scilab.git] / scilab / modules / differential_equations / help / ja_JP / bvode.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) 2008 - INRIA
5  * ...
6  * 
7  * This file must be used under the terms of the CeCILL.
8  * This source file is licensed as described in the file COPYING, which
9  * you should have received as part of this distribution.  The terms
10  * are also available at    
11  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
12  *
13  -->
14 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="bvode" xml:lang="ja">
15     <refnamediv>
16         <refname>bvode</refname>
17         <refpurpose>コロケーション法によるODEの境界値問題</refpurpose>
18     </refnamediv>
19     <refnamediv xml:id="bvodeS">
20         <refname>bvodeS</refname>
21         <refpurpose>bvodeの簡易的なコール</refpurpose>
22     </refnamediv>
23     <refsynopsisdiv>
24         <title>呼び出し手順</title>
25         <synopsis>
26             zu=bvode(xpoints,N,m,x_low,x_up,zeta,ipar,ltol,tol,fixpnt,fsub,dfsub,gsub,dgsub,guess)
27         </synopsis>
28         <synopsis>
29             zu=bvodeS(xpoints,m,N,x_low,x_up,fsub,gsub,zeta, &lt;optional_args&gt;)
30         </synopsis>
31     </refsynopsisdiv>
32     <refsection>
33         <title>パラメータ</title>
34         <variablelist>
35             <varlistentry>
36                 <term>zu</term>
37                 <listitem>
38                     <para>
39                         大きさMの列ベクトル.
40                         複数の点で指定したメッシュ上で評価したODEの解.
41                         各点における z(u(x)) が含まれます.
42                     </para>
43                 </listitem>
44             </varlistentry>
45             <varlistentry>
46                 <term>xpoints</term>
47                 <listitem>
48                     <para>
49                         解を観測する点を指定する配列.
50                     </para>
51                 </listitem>
52             </varlistentry>
53             <varlistentry>
54                 <term>N</term>
55                 <listitem>
56                     <para>整数値を有するスカラー,微分方程式の数
57                         (N &lt;= 20).
58                     </para>
59                 </listitem>
60             </varlistentry>
61             <varlistentry>
62                 <term>m</term>
63                 <listitem>
64                     <para>
65                         整数要素を有する大きさ <literal>N</literal> のベクトル.
66                         <literal>m</literal>は各微分方程式の次数のベクトルで,
67                         <literal>m(i)</literal>はi番目の微分方程式の次数を指定します.
68                         以下に示す <literal>M</literal>は
69                         <literal>m</literal>の要素の合計を表します.
70                     </para>
71                 </listitem>
72             </varlistentry>
73             <varlistentry>
74                 <term>x_low</term>
75                 <listitem>
76                     <para>スカラー: 区間の左端</para>
77                 </listitem>
78             </varlistentry>
79             <varlistentry>
80                 <term>x_up</term>
81                 <listitem>
82                     <para>スカラー: 区間の右端</para>
83                 </listitem>
84             </varlistentry>
85             <varlistentry>
86                 <term>zeta</term>
87                 <listitem>
88                     <para>
89                         大きさ Mのベクトル,<literal>zeta(j)</literal> 
90                         は, j番目の端の条件点(境界値)を指定します.
91                         x_low&lt;=zeta(j)
92                         &lt;= zeta(j+1)<literal>&lt;=x_up</literal>
93                         となります.
94                     </para>
95                     <para>
96                         全ての境界条件点は,
97                         使用される全てのメッシュにおけるメッシュ点とする必要があります.
98                         以下の <literal>ipar(11)</literal> および
99                         <literal>fixpnt</literal>の説明を参照ください.
100                     </para>
101                 </listitem>
102             </varlistentry>
103             <varlistentry>
104                 <term>ipar</term>
105                 <listitem>
106                     <para>11個の整数要素を有する配列:</para>
107                     <para>
108                         [<literal>nonlin, collpnt, subint, ntol, ndimf, ndimi, iprint,
109                             iread, iguess, rstart,nfxpnt]
110                         </literal>
111                     </para>
112                     <variablelist>
113                         <varlistentry>
114                             <term>nonlin: ipar(1)</term>
115                             <listitem>
116                                 <para>問題が線形の場合: 0 ,問題が非線形の場合: 1</para>
117                             </listitem>
118                         </varlistentry>
119                         <varlistentry>
120                             <term>collpnt: ipar(2)</term>
121                             <listitem>
122                                 <para>
123                                     サブ区間毎のコロケーション点の数を指定します.
124                                     ただし, 
125                                     where max(m(j)) &lt;= collpnt &lt;= 7
126                                 </para>
127                                 <para>
128                                     <literal>ipar(2)=0</literal> の場合,
129                                     <literal>collpnt</literal> は ( max(m(j))+1 ,
130                                     5-max(m(j)) )に設定されます
131                                 </para>
132                             </listitem>
133                         </varlistentry>
134                         <varlistentry>
135                             <term>subint: ipar(3)</term>
136                             <listitem>
137                                 <para>初期メッシュのサブ区間の数を指定します.
138                                     <literal>ipar(3) = 0</literal> の場合,
139                                     適宜 
140                                     <literal>subint = 5</literal>と設定します.
141                                 </para>
142                             </listitem>
143                         </varlistentry>
144                         <varlistentry>
145                             <term>ntol: ipar(4)</term>
146                             <listitem>
147                                 <para>
148                                     解と微分の許容誤差の数を指定します.
149                                     0 &lt; ntol &lt;= M とする必要があります.
150                                     <literal>ipar(4)</literal> は,
151                                     <literal>tol</literal> 引数の次元または
152                                     <literal>0</literal>に設定する必要があります.
153                                     後者の場合, 実際の値は自動的に
154                                     <literal>size(tol,'*')</literal> に設定されます.
155                                 </para>
156                             </listitem>
157                         </varlistentry>
158                         <varlistentry>
159                             <term>ndimf: ipar(5)</term>
160                             <listitem>
161                                 <para>
162                                     <literal>fspace</literal>(実数の作業配列)の次元を指定します.
163                                     この値は, 
164                                     サブ区間の最大数 nmax への拘束条件を指定します.
165                                 </para>
166                                 <para>ipar(5) の値は,拘束条件
167                                     ipar(5)&gt;=nmax*nsizef を考慮する必要があります. ただし
168                                 </para>
169                                 <para>
170                                     <literal>nsizef=4+3*M+(5+collpnt*N)*(collpnt*N+M)+(2*M-nrec)*2*M</literal>
171                                     (<literal>nrec</literal> は終端境界条件の数です
172                                     ).
173                                 </para>
174                             </listitem>
175                         </varlistentry>
176                         <varlistentry>
177                             <term>ndimi: ipar(6)</term>
178                             <listitem>
179                                 <para>ispace (整数作業配列)の次元を指定します.
180                                     この値は, サブ区間の最大数 nmax への拘束条件を指定します.
181                                 </para>
182                                 <para>ipar(6) の値は, 拘束条件 ipar(6)&gt;=nmax*nsizei
183                                     を考慮する必要があります. ただし,
184                                 </para>
185                                 <para>
186                                     <literal>nsizei=3 +
187                                     </literal>
188                                     <literal>collpnt*N+M</literal>.
189                                 </para>
190                             </listitem>
191                         </varlistentry>
192                         <varlistentry>
193                             <term>iprint: ipar(7)</term>
194                             <listitem>
195                                 <para>出力制御, 以下の値とします:</para>
196                                 <variablelist>
197                                     <varlistentry>
198                                         <term>-1</term>
199                                         <listitem>
200                                             <para>完全な診断出力の場合</para>
201                                         </listitem>
202                                     </varlistentry>
203                                     <varlistentry>
204                                         <term>0</term>
205                                         <listitem>
206                                             <para>部分的な出力の場合</para>
207                                         </listitem>
208                                     </varlistentry>
209                                     <varlistentry>
210                                         <term>1</term>
211                                         <listitem>
212                                             <para>出力しない場合</para>
213                                         </listitem>
214                                     </varlistentry>
215                                 </variablelist>
216                             </listitem>
217                         </varlistentry>
218                         <varlistentry>
219                             <term>iread: ipar(8)</term>
220                             <listitem>
221                                 <variablelist>
222                                     <varlistentry>
223                                         <term>= 0</term>
224                                         <listitem>
225                                             <para>
226                                                 bvodeが一様な初期メッシュを生成するようにします.
227                                             </para>
228                                         </listitem>
229                                     </varlistentry>
230                                     <varlistentry>
231                                         <term>= xx</term>
232                                         <listitem>
233                                             <para>他の値は, Scilabでは未実装です.</para>
234                                             <variablelist>
235                                                 <varlistentry>
236                                                     <term>= 1</term>
237                                                     <listitem>
238                                                         <para>初期メッシュがユーザにより指定される場合.
239                                                             fspace で以下のように定義されます: 
240                                                         </para>
241                                                         <para>
242                                                             メッシュは <literal>fspace(1), ...,
243                                                                 fspace(n+1)
244                                                             </literal>
245                                                             となります. 
246                                                             ユーザは内部メッシュ点<literal>fspace(j) = x(j),
247                                                                 j = 2, ..., n.
248                                                             </literal>
249                                                             のみを指定する必要があります.
250                                                         </para>
251                                                     </listitem>
252                                                 </varlistentry>
253                                                 <varlistentry>
254                                                     <term>= 2 初期メッシュがユーザにより指定される場合.</term>
255                                                     <listitem>
256                                                         <para>
257                                                             <literal>ipar(8)=1</literal>が指定された時と同様であり, 
258                                                             加えて,適応型メッシュ選択は行われません.
259                                                         </para>
260                                                     </listitem>
261                                                 </varlistentry>
262                                             </variablelist>
263                                         </listitem>
264                                     </varlistentry>
265                                 </variablelist>
266                             </listitem>
267                         </varlistentry>
268                         <varlistentry>
269                             <term>iguess: ipar(9)</term>
270                             <listitem>
271                                 <variablelist>
272                                     <varlistentry>
273                                         <term>= 0</term>
274                                         <listitem>
275                                             <para>解の初期推定値が指定されない場合.</para>
276                                         </listitem>
277                                     </varlistentry>
278                                     <varlistentry>
279                                         <term>= 1</term>
280                                         <listitem>
281                                             <para>
282                                                 引数 <literal>guess</literal> により,
283                                                 初期推定値がユーザにより指定される場合.
284                                             </para>
285                                         </listitem>
286                                     </varlistentry>
287                                     <varlistentry>
288                                         <term>= 2</term>
289                                         <listitem>
290                                             <para>
291                                                 初期メッシュと近似解係数がユーザにより fspace で指定される場合
292                                                 (前のメッシュと新規メッシュは同じものになります).
293                                             </para>
294                                         </listitem>
295                                     </varlistentry>
296                                     <varlistentry>
297                                         <term>= 3</term>
298                                         <listitem>
299                                             <para>
300                                                 前のメッシュと近似解の係数がユーザによりfspace で指定される場合,
301                                                 新規メッシュは 2倍荒くとられます.
302                                                 すなわち, 前のメッシュの各2点毎に1点となります.
303                                             </para>
304                                         </listitem>
305                                     </varlistentry>
306                                     <varlistentry>
307                                         <term>= 4</term>
308                                         <listitem>
309                                             <para>
310                                                 前の初期メッシュと近似解係数に加えて,同時に
311                                                 新規メッシュが fspace に出力されます.
312                                                 (詳細はiguess = 2, 3, および 4の出力の説明を参照ください)
313                                             </para>
314                                         </listitem>
315                                     </varlistentry>
316                                 </variablelist>
317                             </listitem>
318                         </varlistentry>
319                         <varlistentry>
320                             <term>ireg: ipar(10)</term>
321                             <listitem>
322                                 <variablelist>
323                                     <varlistentry>
324                                         <term>= 0</term>
325                                         <listitem>
326                                             <para>問題が標準の場合</para>
327                                         </listitem>
328                                     </varlistentry>
329                                     <varlistentry>
330                                         <term>= 1</term>
331                                         <listitem>
332                                             <para>
333                                                 最初の緩和係数が <literal>ireg</literal> に等しい場合,
334                                                 非線形反復は過去の収束結果に基づきません.
335                                                 (別の敏感な非線形問題のみで使用されます)
336                                             </para>
337                                         </listitem>
338                                     </varlistentry>
339                                     <varlistentry>
340                                         <term>= 2</term>
341                                         <listitem>
342                                             <para>
343                                                 以下の場合,直ちにリターンします.
344                                                 (a) 2回連続で収束しない場合,
345                                                 または
346                                                 (b)最初に誤差推定値を得た後.
347                                             </para>
348                                         </listitem>
349                                     </varlistentry>
350                                 </variablelist>
351                             </listitem>
352                         </varlistentry>
353                         <varlistentry>
354                             <term>nfxpnt: ipar(11)</term>
355                             <listitem>
356                                 <para>
357                                     <literal>x_low</literal> および <literal>x_up</literal>
358                                     以外のメッシュの固定点の数(<literal>fixpnt</literal>の次元)を指定します.
359                                     <literal>ipar(11)</literal> は,引数
360                                     <literal>fixpnt</literal>の次元または
361                                     <literal>0</literal>に設定する必要があります.
362                                     後者の場合, 実際の値は自動的に
363                                     <literal>size(fixpnt,'*')</literal> に設定されます.
364                                 </para>
365                             </listitem>
366                         </varlistentry>
367                     </variablelist>
368                 </listitem>
369             </varlistentry>
370             <varlistentry>
371                 <term>ltol</term>
372                 <listitem>
373                     <para>
374                         次元 <literal>ntol=ipar(4)</literal>の配列.
375                         <literal>ltol(j) = l</literal> は,
376                         <literal> tol</literal> 配列の <literal>j</literal>番目の許容誤差を指定します.これは,
377                         以下の<literal>l</literal>番目の要素の誤差を制御します.
378                         <inlinemediaobject>
379                             <imageobject>
380                                 <imagedata>
381                                     <mml:math>
382                                         <mml:semantics>
383                                             <mml:mi>z</mml:mi>
384                                             <mml:mrow>
385                                                 <mml:mo mml:stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mo mml:stretchy="false">)</mml:mo>
386                                             </mml:mrow>
387                                         </mml:semantics>
388                                     </mml:math>
389                                 </imagedata>
390                             </imageobject>
391                         </inlinemediaobject>
392                         .以下も必要です:
393                     </para>
394                     <para>
395                         <literal>1 &lt;= ltol(1) &lt; ltol(2) &lt; ... &lt; ltol(ntol)
396                             &lt;= M
397                         </literal>
398                     </para>
399                 </listitem>
400             </varlistentry>
401             <varlistentry>
402                 <term>tol</term>
403                 <listitem>
404                     <para>
405                         <literal>ntol=ipar(4)</literal>次の配列.
406                     </para>
407                     <para>
408                         <literal>tol(j)</literal>は,
409                         以下の <literal>ltol(j)</literal> 番目の要素の許容誤差です.
410                         <inlinemediaobject>
411                             <imageobject>
412                                 <imagedata>
413                                     <mml:math>
414                                         <mml:semantics>
415                                             <mml:mi>z</mml:mi>
416                                             <mml:mrow>
417                                                 <mml:mo mml:stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mo mml:stretchy="false">)</mml:mo>
418                                             </mml:mrow>
419                                         </mml:semantics>
420                                     </mml:math>
421                                 </imagedata>
422                             </imageobject>
423                         </inlinemediaobject>
424                         .つまり, このコードは以下の条件を
425                         満たそうとします.
426                         <inlinemediaobject>
427                             <imageobject>
428                                 <imagedata>
429                                     <mml:math>
430                                         <mml:semantics>
431                                             <mml:mrow>
432                                                 <mml:mrow>
433                                                     <mml:mfenced mml:close="∣" mml:open="∣">
434                                                         <mml:msub>
435                                                             <mml:mrow>
436                                                                 <mml:mo mml:stretchy="false">(</mml:mo>
437                                                                 <mml:mrow>
438                                                                     <mml:mi>z</mml:mi>
439                                                                     <mml:mrow>
440                                                                         <mml:mrow>
441                                                                             <mml:mo mml:stretchy="false">(</mml:mo><mml:mi>v</mml:mi><mml:mo mml:stretchy="false">)</mml:mo>
442                                                                         </mml:mrow>
443                                                                         <mml:mo mml:stretchy="false">−</mml:mo><mml:mi>z</mml:mi>
444                                                                     </mml:mrow>
445                                                                     <mml:mrow>
446                                                                         <mml:mo mml:stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mo mml:stretchy="false">)</mml:mo>
447                                                                     </mml:mrow>
448                                                                 </mml:mrow>
449                                                                 <mml:mo mml:stretchy="false">)</mml:mo>
450                                                             </mml:mrow>
451                                                             <mml:mrow>
452                                                                 <mml:mi mml:fontstyle="italic">ltol</mml:mi>
453                                                                 <mml:mrow>
454                                                                     <mml:mo mml:stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo mml:stretchy="false">)</mml:mo>
455                                                                 </mml:mrow>
456                                                             </mml:mrow>
457                                                         </mml:msub>
458                                                     </mml:mfenced>
459                                                     <mml:mo mml:stretchy="false">≤</mml:mo><mml:mi mml:fontstyle="italic">tol</mml:mi>
460                                                 </mml:mrow>
461                                                 <mml:mrow>
462                                                     <mml:mrow>
463                                                         <mml:mrow>
464                                                             <mml:mo mml:stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo mml:stretchy="false">)</mml:mo>
465                                                         </mml:mrow>
466                                                         <mml:mo mml:stretchy="false">⋅</mml:mo>
467                                                         <mml:mfenced mml:close="∣" mml:open="∣">
468                                                             <mml:msub>
469                                                                 <mml:mrow>
470                                                                     <mml:mo mml:stretchy="false">(</mml:mo>
471                                                                     <mml:mrow>
472                                                                         <mml:mi>z</mml:mi>
473                                                                         <mml:mrow>
474                                                                             <mml:mo mml:stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mo mml:stretchy="false">)</mml:mo>
475                                                                         </mml:mrow>
476                                                                     </mml:mrow>
477                                                                     <mml:mo mml:stretchy="false">)</mml:mo>
478                                                                 </mml:mrow>
479                                                                 <mml:mrow>
480                                                                     <mml:mi mml:fontstyle="italic">ltol</mml:mi>
481                                                                     <mml:mrow>
482                                                                         <mml:mo mml:stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo mml:stretchy="false">)</mml:mo>
483                                                                     </mml:mrow>
484                                                                 </mml:mrow>
485                                                             </mml:msub>
486                                                         </mml:mfenced>
487                                                     </mml:mrow>
488                                                     <mml:mo mml:stretchy="false">+</mml:mo><mml:mi mml:fontstyle="italic">tol</mml:mi>
489                                                 </mml:mrow>
490                                                 <mml:mrow>
491                                                     <mml:mo mml:stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo mml:stretchy="false">)</mml:mo>
492                                                 </mml:mrow>
493                                                 <mml:mi>,</mml:mi><mml:mi mml:fontstyle="normal">for</mml:mi>
494                                                 <mml:mrow>
495                                                     <mml:mi>j</mml:mi><mml:mo mml:stretchy="false">=</mml:mo><mml:mn>1</mml:mn>
496                                                 </mml:mrow>
497                                                 <mml:mi mml:fontstyle="normal">:</mml:mi><mml:mi mml:fontstyle="normal">ntol</mml:mi>
498                                             </mml:mrow>
499                                             <mml:annotation mml:encoding="StarMath 5.0">abs(z(v)-z(u))_{ltol(j)}
500                                                 &lt;= tol(j) cdot abs(z(u))_{ltol(j)} + tol(j), for
501                                                 j=1:ntol
502                                             </mml:annotation>
503                                         </mml:semantics>
504                                     </mml:math>
505                                 </imagedata>
506                             </imageobject>
507                         </inlinemediaobject>
508                         (サブ区間について)
509                     </para>
510                     <para>
511                         <inlinemediaobject>
512                             <imageobject>
513                                 <imagedata>
514                                     <mml:math>
515                                         <mml:semantics>
516                                             <mml:mi>v</mml:mi>
517                                         </mml:semantics>
518                                     </mml:math>
519                                 </imagedata>
520                             </imageobject>
521                         </inlinemediaobject>
522                         が近似解ベクトルの場合,
523                         <inlinemediaobject>
524                             <imageobject>
525                                 <imagedata>
526                                     <mml:math>
527                                         <mml:semantics>
528                                             <mml:mi>u</mml:mi>
529                                         </mml:semantics>
530                                     </mml:math>
531                                 </imagedata>
532                             </imageobject>
533                         </inlinemediaobject>
534                         は厳密解(未知)となります.
535                     </para>
536                 </listitem>
537             </varlistentry>
538             <varlistentry>
539                 <term>fixpnt</term>
540                 <listitem>
541                     <para>
542                         <literal>nfxpnt=ipar(11)</literal>次の配列. 
543                         各メッシュに含まれる<literal>x_low</literal> および
544                         <literal>x_up</literal>以外の点を含みます.
545                         このコードは,<literal>x_low</literal> および <literal>x_up</literal>
546                         以外の全ての周辺条件点(<literal>zeta</literal>の説明を参照)が
547                         <literal>fixpnt</literal>の中の固定点として
548                         含まれることを必要とします.
549                     </para>
550                 </listitem>
551             </varlistentry>
552             <varlistentry>
553                 <term>fsub</term>
554                 <listitem>
555                     <para>
556                         <link linkend="external">external</link> は,以下の
557                         列ベクトルの評価に使用されます. <literal>f=</literal>
558                         <inlinemediaobject>
559                             <imageobject>
560                                 <imagedata>
561                                     <mml:math>
562                                         <mml:semantics>
563                                             <mml:mrow>
564                                                 <mml:mo mml:stretchy="false">[</mml:mo>
565                                                 <mml:mrow>
566                                                     <mml:msub>
567                                                         <mml:mi>f</mml:mi><mml:mn>1</mml:mn>
568                                                     </mml:msub>
569                                                     <mml:mrow>
570                                                         <mml:mo mml:stretchy="false">(</mml:mo>
571                                                         <mml:mrow>
572                                                             <mml:mi>x</mml:mi><mml:mi>,</mml:mi><mml:mi>z</mml:mi>
573                                                             <mml:mrow>
574                                                                 <mml:mo mml:stretchy="false">(</mml:mo>
575                                                                 <mml:mrow>
576                                                                     <mml:mi>u</mml:mi>
577                                                                     <mml:mrow>
578                                                                         <mml:mo mml:stretchy="false">(</mml:mo><mml:mi>x</mml:mi><mml:mo mml:stretchy="false">)</mml:mo>
579                                                                     </mml:mrow>
580                                                                 </mml:mrow>
581                                                                 <mml:mo mml:stretchy="false">)</mml:mo>
582                                                             </mml:mrow>
583                                                         </mml:mrow>
584                                                         <mml:mo mml:stretchy="false">)</mml:mo>
585                                                     </mml:mrow>
586                                                     <mml:mi>;</mml:mi>
587                                                     <mml:msub>
588                                                         <mml:mi>f</mml:mi><mml:mn>2</mml:mn>
589                                                     </mml:msub>
590                                                     <mml:mrow>
591                                                         <mml:mo mml:stretchy="false">(</mml:mo>
592                                                         <mml:mrow>
593                                                             <mml:mi>x</mml:mi><mml:mi>,</mml:mi><mml:mi>z</mml:mi>
594                                                             <mml:mrow>
595                                                                 <mml:mo mml:stretchy="false">(</mml:mo>
596                                                                 <mml:mrow>
597                                                                     <mml:mi>u</mml:mi>
598                                                                     <mml:mrow>
599                                                                         <mml:mo mml:stretchy="false">(</mml:mo><mml:mi>x</mml:mi><mml:mo mml:stretchy="false">)</mml:mo>
600                                                                     </mml:mrow>
601                                                                 </mml:mrow>
602                                                                 <mml:mo mml:stretchy="false">)</mml:mo>
603                                                             </mml:mrow>
604                                                         </mml:mrow>
605                                                         <mml:mo mml:stretchy="false">)</mml:mo>
606                                                     </mml:mrow>
607                                                     <mml:mi>,</mml:mi><mml:mo mml:stretchy="false">⋯</mml:mo><mml:mi>,</mml:mi>
608                                                     <mml:msub>
609                                                         <mml:mi>f</mml:mi><mml:mi>N</mml:mi>
610                                                     </mml:msub>
611                                                     <mml:mrow>
612                                                         <mml:mo mml:stretchy="false">(</mml:mo>
613                                                         <mml:mrow>
614                                                             <mml:mi>x</mml:mi><mml:mi>,</mml:mi><mml:mi>z</mml:mi>
615                                                             <mml:mrow>
616                                                                 <mml:mo mml:stretchy="false">(</mml:mo>
617                                                                 <mml:mrow>
618                                                                     <mml:mi>u</mml:mi>
619                                                                     <mml:mrow>
620                                                                         <mml:mo mml:stretchy="false">(</mml:mo><mml:mi>x</mml:mi><mml:mo mml:stretchy="false">)</mml:mo>
621                                                                     </mml:mrow>
622                                                                 </mml:mrow>
623                                                                 <mml:mo mml:stretchy="false">)</mml:mo>
624                                                             </mml:mrow>
625                                                         </mml:mrow>
626                                                         <mml:mo mml:stretchy="false">)</mml:mo>
627                                                     </mml:mrow>
628                                                 </mml:mrow>
629                                                 <mml:mo mml:stretchy="false">]</mml:mo>
630                                             </mml:mrow>
631                                             <mml:annotation mml:encoding="StarMath 5.0">[f_1(x,z(u(x)));
632                                                 f_2(x,z(u(x))),dotsaxis,
633                                                 f_N(x,z(u(x)))]
634                                             </mml:annotation>
635                                         </mml:semantics>
636                                     </mml:math>
637                                 </imagedata>
638                             </imageobject>
639                         </inlinemediaobject>
640                         
641                         ただし,
642                         <literal>x_low</literal> &lt;= <literal>x</literal> &lt;= <literal>x_up</literal> の任意の<literal>x</literal>,
643                         および <literal>z=z(u(x))</literal> となる任意の<literal>z</literal> とします.
644                         (以下の説明を参照)
645                     </para>
646                     <para>外部関数は以下のように宣言を必要とします:</para>
647                     <itemizedlist>
648                         <listitem>
649                             <para>Fortranの場合, 呼び出し手順を以下のようにします:</para>
650                             <programlisting role="no-scilab-exec"><![CDATA[  
651 subroutine fsub(x,zu,f)
652 double precision zu(*), f(*),x 
653  ]]></programlisting>
654                         </listitem>
655                         <listitem>
656                             <para>Cの場合,関数プロトタイプを以下のようにします:</para>
657                             <programlisting role="no-scilab-exec"><![CDATA[  
658 void fsub(double *x, double *zu, double *f)
659  ]]></programlisting>
660                         </listitem>
661                         <listitem>
662                             <para>そしてScilab上では:</para>
663                             <programlisting role="no-scilab-exec"><![CDATA[  
664 function f=fsub(x,zu,parameters)
665  ]]></programlisting>
666                         </listitem>
667                     </itemizedlist>
668                 </listitem>
669             </varlistentry>
670             <varlistentry>
671                 <term>dfsub</term>
672                 <listitem>
673                     <para>
674                         <link linkend="external">external</link>は,
675                         点<literal>x</literal>におけるヤコビアン<literal>f(x,z(u))</literal>の
676                         評価に使用されます.
677                         ただし,<literal>z(u(x))</literal>は,
678                         <literal>fsub</literal>と同様に定義され,
679                         <literal>N</literal> 行 <literal>M</literal>列配列
680                         dfには,<literal>f</literal>の偏微分が代入されます:
681                     </para>
682                     <informalequation>
683                         <mediaobject>
684                             <imageobject>
685                                 <imagedata align="center">
686                                     <mml:math>
687                                         <mml:semantics>
688                                             <mml:mrow>
689                                                 <mml:mi mml:fontstyle="italic">df</mml:mi>
690                                                 <mml:mrow>
691                                                     <mml:mrow>
692                                                         <mml:mo mml:stretchy="false">(</mml:mo>
693                                                         <mml:mrow>
694                                                             <mml:mi>i</mml:mi>
695                                                             <mml:mi>,</mml:mi>
696                                                             <mml:mi>j</mml:mi>
697                                                         </mml:mrow>
698                                                         <mml:mo mml:stretchy="false">)</mml:mo>
699                                                     </mml:mrow>
700                                                     <mml:mo mml:stretchy="false">=</mml:mo>
701                                                     <mml:mfrac>
702                                                         <mml:mrow>
703                                                             <mml:mo mml:stretchy="false">∂</mml:mo>
704                                                             <mml:msub>
705                                                                 <mml:mi>f</mml:mi>
706                                                                 <mml:mi>i</mml:mi>
707                                                             </mml:msub>
708                                                         </mml:mrow>
709                                                         <mml:mrow>
710                                                             <mml:mo mml:stretchy="false">∂</mml:mo>
711                                                             <mml:msub>
712                                                                 <mml:mi>z</mml:mi>
713                                                                 <mml:mi>j</mml:mi>
714                                                             </mml:msub>
715                                                         </mml:mrow>
716                                                     </mml:mfrac>
717                                                 </mml:mrow>
718                                                 <mml:mtext> for
719                                                 </mml:mtext>
720                                                 <mml:mrow>
721                                                     <mml:mo mml:stretchy="true">{</mml:mo>
722                                                     <mml:mtable>
723                                                         <mml:mtr>
724                                                             <mml:mrow>
725                                                                 <mml:mrow>
726                                                                     <mml:mi>i</mml:mi>
727                                                                     <mml:mo mml:stretchy="false">=</mml:mo>
728                                                                     <mml:mn>1</mml:mn>
729                                                                 </mml:mrow>
730                                                                 <mml:mi mml:fontstyle="normal">:</mml:mi>
731                                                                 <mml:mi mml:fontstyle="italic">N</mml:mi>
732                                                             </mml:mrow>
733                                                         </mml:mtr>
734                                                         <mml:mtr>
735                                                             <mml:mrow>
736                                                                 <mml:mrow>
737                                                                     <mml:mi>j</mml:mi>
738                                                                     <mml:mo mml:stretchy="false">=</mml:mo>
739                                                                     <mml:mn>1</mml:mn>
740                                                                 </mml:mrow>
741                                                                 <mml:mi mml:fontstyle="normal">:</mml:mi>
742                                                                 <mml:mi mml:fontstyle="italic">M</mml:mi>
743                                                             </mml:mrow>
744                                                         </mml:mtr>
745                                                     </mml:mtable>
746                                                 </mml:mrow>
747                                             </mml:mrow>
748                                             <mml:annotation mml:encoding="StarMath 5.0">df(i,j)= {partial{f_i}} over
749                                                 {partial{z_j}} ~ for ~ left lbrace binom{i=1:N}{j=1:M} right
750                                                 none
751                                             </mml:annotation>
752                                         </mml:semantics>
753                                     </mml:math>
754                                 </imagedata>
755                             </imageobject>
756                         </mediaobject>
757                     </informalequation>
758                     <para>外部関数は以下のように宣言を必要とします:</para>
759                     <itemizedlist>
760                         <listitem>
761                             <para>Fortranの場合, 呼び出し手順を以下のようにします:</para>
762                             <programlisting role="no-scilab-exec"><![CDATA[  
763 subroutine dfsub(x,zu,df)
764 double precision zu(*), df(*),x
765  ]]></programlisting>
766                         </listitem>
767                         <listitem>
768                             <para>Cの場合, 関数プロトタイプを以下のようにします:</para>
769                             <programlisting role="no-scilab-exec"><![CDATA[  
770 void dfsub(double *x, double *zu, double *df)
771  ]]></programlisting>
772                         </listitem>
773                         <listitem>
774                             <para>そして,Scilabにおいては:</para>
775                             <programlisting role="no-scilab-exec"><![CDATA[  
776 function df=dfsub(x,zu,parameters)
777  ]]></programlisting>
778                         </listitem>
779                     </itemizedlist>
780                 </listitem>
781             </varlistentry>
782             <varlistentry>
783                 <term>gsub</term>
784                 <listitem>
785                     <para>
786                         以下の評価に使用される<link linkend="external">external</link>
787                         <inlinemediaobject>
788                             <imageobject>
789                                 <imagedata>
790                                     <mml:math>
791                                         <mml:semantics>
792                                             <mml:mrow>
793                                                 <mml:msub>
794                                                     <mml:mi>g</mml:mi><mml:mi>i</mml:mi>
795                                                 </mml:msub>
796                                                 <mml:mrow>
797                                                     <mml:mo mml:stretchy="false">(</mml:mo>
798                                                     <mml:mrow>
799                                                         <mml:msub>
800                                                             <mml:mo mml:stretchy="false">ζ</mml:mo><mml:mi>i</mml:mi>
801                                                         </mml:msub>
802                                                         <mml:mi>,</mml:mi><mml:mi>z</mml:mi>
803                                                         <mml:mrow>
804                                                             <mml:mo mml:stretchy="false">(</mml:mo>
805                                                             <mml:mrow>
806                                                                 <mml:mi>u</mml:mi>
807                                                                 <mml:mrow>
808                                                                     <mml:mo mml:stretchy="false">(</mml:mo>
809                                                                     <mml:msub>
810                                                                         <mml:mo mml:stretchy="false">ζ</mml:mo><mml:mi>i</mml:mi>
811                                                                     </mml:msub>
812                                                                     <mml:mo mml:stretchy="false">)</mml:mo>
813                                                                 </mml:mrow>
814                                                             </mml:mrow>
815                                                             <mml:mo mml:stretchy="false">)</mml:mo>
816                                                         </mml:mrow>
817                                                     </mml:mrow>
818                                                     <mml:mo mml:stretchy="false">)</mml:mo>
819                                                 </mml:mrow>
820                                             </mml:mrow>
821                                             <mml:annotation mml:encoding="StarMath 5.0">g_i(%zeta_i,z(u(%zeta_i)))</mml:annotation>
822                                         </mml:semantics>
823                                     </mml:math>
824                                 </imagedata>
825                             </imageobject>
826                         </inlinemediaobject>
827                         given z=
828                         <inlinemediaobject>
829                             <imageobject>
830                                 <imagedata>
831                                     <mml:math>
832                                         <mml:semantics>
833                                             <mml:mrow>
834                                                 <mml:mi>z</mml:mi>
835                                                 <mml:mrow>
836                                                     <mml:mo mml:stretchy="false">(</mml:mo>
837                                                     <mml:mrow>
838                                                         <mml:mi>u</mml:mi>
839                                                         <mml:mrow>
840                                                             <mml:mo mml:stretchy="false">(</mml:mo>
841                                                             <mml:msub>
842                                                                 <mml:mo mml:stretchy="false">ζ</mml:mo><mml:mi>i</mml:mi>
843                                                             </mml:msub>
844                                                             <mml:mo mml:stretchy="false">)</mml:mo>
845                                                         </mml:mrow>
846                                                     </mml:mrow>
847                                                     <mml:mo mml:stretchy="false">)</mml:mo>
848                                                 </mml:mrow>
849                                             </mml:mrow>
850                                             <mml:annotation mml:encoding="StarMath 5.0">z(u(%zeta_i))</mml:annotation>
851                                         </mml:semantics>
852                                     </mml:math>
853                                 </imagedata>
854                             </imageobject>
855                         </inlinemediaobject>
856                         
857                         <literal>z = zeta(i)</literal> ただし,
858                         <literal>1&lt;=i&lt;=M.</literal>
859                     </para>
860                     <para>外部関数は以下のように宣言を必要とします:</para>
861                     <itemizedlist>
862                         <listitem>
863                             <para>Fortranの場合, 呼び出し手順を以下のようにします:</para>
864                             <programlisting role="no-scilab-exec"><![CDATA[  
865 subroutine gsub(i,zu,g)
866 double precision zu(*), g(*)
867 integer i
868  ]]></programlisting>
869                         </listitem>
870                         <listitem>
871                             <para>Cの場合, 関数プロトタイプを以下のようにします:</para>
872                             <programlisting role="no-scilab-exec"><![CDATA[  
873 void gsub(int *i, double *zu, double *g)
874  ]]></programlisting>
875                         </listitem>
876                         <listitem>
877                             <para>そして,Scilabでは:</para>
878                             <programlisting role="no-scilab-exec"><![CDATA[  
879 function g=gsub(i,zu,parameters)
880  ]]></programlisting>
881                             <para>
882                                 <literal>fsub</literal>の<literal>f</literal>とは逆に
883                                 <literal>g</literal>では
884                                 コール毎に一つの値のみが返されることに注意してください.
885                             </para>
886                         </listitem>
887                     </itemizedlist>
888                 </listitem>
889             </varlistentry>
890             <varlistentry>
891                 <term>dgsub</term>
892                 <listitem>
893                     <para>
894                         an <link linkend="external">external</link> used to evaluate
895                         the <literal>i</literal>-th row of the Jacobian of <literal>g(x,u(x))</literal>. Where
896                         <literal>z(u)</literal> is as for <literal>fsub</literal>, <literal>i</literal> as for 
897                         <literal>gsub</literal> and the <literal>M</literal>-vector <literal>dg</literal> should 
898                         be filled with the partial derivatives of <literal>g</literal>, viz, for a particular call one 
899                         calculates
900                     </para>
901                     <informalequation>
902                         <mediaobject>
903                             <imageobject>
904                                 <imagedata align="center">
905                                     <mml:math>
906                                         <mml:semantics>
907                                             <mml:mrow>
908                                                 <mml:mi mml:fontstyle="italic">dg</mml:mi>
909                                                 <mml:mrow>
910                                                     <mml:mrow>
911                                                         <mml:mo mml:stretchy="false">(</mml:mo>
912                                                         <mml:mrow>
913                                                             <mml:mi>i</mml:mi>
914                                                             <mml:mi>,</mml:mi>
915                                                             <mml:mi>j</mml:mi>
916                                                         </mml:mrow>
917                                                         <mml:mo mml:stretchy="false">)</mml:mo>
918                                                     </mml:mrow>
919                                                     <mml:mo mml:stretchy="false">=</mml:mo>
920                                                     <mml:mfrac>
921                                                         <mml:mrow>
922                                                             <mml:mo mml:stretchy="false">∂</mml:mo>
923                                                             <mml:msub>
924                                                                 <mml:mi>g</mml:mi>
925                                                                 <mml:mi>i</mml:mi>
926                                                             </mml:msub>
927                                                         </mml:mrow>
928                                                         <mml:mrow>
929                                                             <mml:mo mml:stretchy="false">∂</mml:mo>
930                                                             <mml:msub>
931                                                                 <mml:mi>z</mml:mi>
932                                                                 <mml:mi>j</mml:mi>
933                                                             </mml:msub>
934                                                         </mml:mrow>
935                                                     </mml:mfrac>
936                                                 </mml:mrow>
937                                                 <mml:mtext> for
938                                                 </mml:mtext>
939                                                 <mml:mrow>
940                                                     <mml:mo mml:stretchy="true">{</mml:mo>
941                                                     <mml:mtable>
942                                                         <mml:mtr>
943                                                             <mml:mrow>
944                                                                 <mml:mrow>
945                                                                     <mml:mi>i</mml:mi>
946                                                                     <mml:mo mml:stretchy="false">=</mml:mo>
947                                                                     <mml:mn>1</mml:mn>
948                                                                 </mml:mrow>
949                                                                 <mml:mi mml:fontstyle="normal">:</mml:mi>
950                                                                 <mml:mi mml:fontstyle="italic">M</mml:mi>
951                                                             </mml:mrow>
952                                                         </mml:mtr>
953                                                         <mml:mtr>
954                                                             <mml:mrow>
955                                                                 <mml:mrow>
956                                                                     <mml:mi>j</mml:mi>
957                                                                     <mml:mo mml:stretchy="false">=</mml:mo>
958                                                                     <mml:mn>1</mml:mn>
959                                                                 </mml:mrow>
960                                                                 <mml:mi mml:fontstyle="normal">:</mml:mi>
961                                                                 <mml:mi mml:fontstyle="italic">M</mml:mi>
962                                                             </mml:mrow>
963                                                         </mml:mtr>
964                                                     </mml:mtable>
965                                                 </mml:mrow>
966                                             </mml:mrow>
967                                             <mml:annotation mml:encoding="StarMath 5.0">dg(i,j)= {partial{g_i}} over
968                                                 {partial{z_j}} ~ for ~ left lbrace binom{i=1:M}{j=1:M} right
969                                                 none
970                                             </mml:annotation>
971                                         </mml:semantics>
972                                     </mml:math>
973                                 </imagedata>
974                             </imageobject>
975                         </mediaobject>
976                     </informalequation>
977                     <para>外部関数は以下のような宣言を必要とします:</para>
978                     <itemizedlist>
979                         <listitem>
980                             <para>Fortranの場合, 呼び出し手順を以下のようにします:</para>
981                             <programlisting role="no-scilab-exec"><![CDATA[  
982 subroutine dgsub(i,zu,dg)
983 double precision zu(*), dg(*)
984  ]]></programlisting>
985                         </listitem>
986                         <listitem>
987                             <para>Cの場合, 関数プロトタイプを以下のようにします:</para>
988                             <programlisting role="no-scilab-exec"><![CDATA[  
989 void dgsub(int *i, double *zu, double *dg)
990  ]]></programlisting>
991                         </listitem>
992                         <listitem>
993                             <para>そして,Scilabでは:</para>
994                             <programlisting role="no-scilab-exec"><![CDATA[  
995 function dg=dgsub(i,zu,parameters)
996  ]]></programlisting>
997                         </listitem>
998                     </itemizedlist>
999                 </listitem>
1000             </varlistentry>
1001             <varlistentry>
1002                 <term>guess</term>
1003                 <listitem>
1004                     <para>
1005                         <literal>z(u(x))</literal>および
1006                         <literal>u(x)</literal>の<literal>mj</literal>階微分<literal>dmval(u(x))</literal>
1007                         の初期近似値を見積もるために
1008                         <link linkend="external">external</link>が使用されます.
1009                         <literal>ipar(9) = 1</literal>の場合のみ, このサブルーチンが
1010                         使用されることに注意してください.
1011                         このため,<literal>zu</literal>の<literal>M</literal>個の要素および <literal>dmval</literal> の <literal>N</literal>個の
1012                         要素が<literal>x_low</literal> &lt;= <literal>x</literal> &lt;= <literal>x_up</literal>の範囲の任意の <literal>x</literal> について計算される
1013                         必要があります.
1014                     </para>
1015                     <para>外部関数は以下のように宣言を必要とします:</para>
1016                     <itemizedlist>
1017                         <listitem>
1018                             <para>Fortranの場合, 呼び出し手順を以下のようにします:</para>
1019                             <programlisting role="no-scilab-exec"><![CDATA[  
1020 subroutine guess(x,zu,dmval)
1021 double precision x,z(*), dmval(*)
1022  ]]></programlisting>
1023                         </listitem>
1024                         <listitem>
1025                             <para>Cの場合, 関数プロトタイプを以下のようにします</para>
1026                             <programlisting role="no-scilab-exec"><![CDATA[  
1027 void fsub(double *x, double *zu, double *dmval)
1028  ]]></programlisting>
1029                         </listitem>
1030                         <listitem>
1031                             <para>そしてScilab上では, </para>
1032                             <programlisting role="no-scilab-exec"><![CDATA[  
1033 function [dmval,zu]=fsub(x,parameters)
1034  ]]></programlisting>
1035                         </listitem>
1036                     </itemizedlist>
1037                 </listitem>
1038             </varlistentry>
1039             <varlistentry>
1040                 <term>&lt;optional_args&gt;</term>
1041                 <listitem>
1042                     <para>以下のどれかとする必要があります:</para>
1043                     <itemizedlist>
1044                         <listitem>
1045                             <para>
1046                                 以下の一連の値:
1047                                 <literal>guess, dfsub, dgsub, fixpnt, ndimf, ndimi, ltol, tol,
1048                                     ntol,nonlin, collpnt, subint, iprint, ireg, ifail
1049                                 </literal>
1050                             </para>
1051                         </listitem>
1052                         <listitem>
1053                             <para>
1054                                 もしくは,一連の<literal>arg_name=argvalue</literal>
1055                                 で指定します.
1056                                 ただし <literal>arg_name</literal> は以下のどれかとなります: 
1057                                 <literal>guess</literal>,
1058                                 <literal>dfsub</literal>, <literal>dgsub</literal>,
1059                                 <literal>fixpnt</literal>, <literal>ndimf</literal>,
1060                                 <literal>ndimi</literal>, <literal>ltol</literal>,
1061                                 <literal>tol</literal>, <literal>ntol</literal>,
1062                                 <literal>nonlin</literal>, <literal>collpnt</literal>,
1063                                 <literal>subint</literal>, <literal>iprint</literal>,
1064                                 <literal>ireg</literal>, <literal>ifail</literal>
1065                             </para>
1066                         </listitem>
1067                     </itemizedlist>
1068                     <para>
1069                         これらの引数が指定される場合は,常に
1070                         <literal>ifail</literal>は上記のように説明されます.
1071                         <literal>ifail</literal>は選択されたオプション引数
1072                         に対応する bvode コールを表示するために使用できます.
1073                         もし,<literal>guess</literal> が指定された場合,
1074                         <literal>iguess</literal>が 1 に設定されます.
1075                     </para>
1076                 </listitem>
1077             </varlistentry>
1078         </variablelist>
1079     </refsection>
1080     <refsection>
1081         <title>説明</title>
1082         <para>
1083             これらの関数は, 以下のように定義された ode-s の
1084             混合次数に関連するシステム多点境界値問題を解きます.
1085         </para>
1086         <informalequation>
1087             <mediaobject>
1088                 <imageobject>
1089                     <imagedata align="left">
1090                         <mml:math>
1091                             <mml:semantics>
1092                                 <mml:mrow>
1093                                     <mml:mo mml:stretchy="true">{</mml:mo>
1094                                     <mml:mtable>
1095                                         <mml:mtr>
1096                                             <mml:mrow>
1097                                                 <mml:mrow>
1098                                                     <mml:msubsup>
1099                                                         <mml:mi>u</mml:mi>
1100                                                         <mml:mi>i</mml:mi>
1101                                                         <mml:mrow>
1102                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1103                                                             <mml:msub>
1104                                                                 <mml:mi>m</mml:mi>
1105                                                                 <mml:mi>i</mml:mi>
1106                                                             </mml:msub>
1107                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1108                                                         </mml:mrow>
1109                                                     </mml:msubsup>
1110                                                     <mml:mo mml:stretchy="false">=</mml:mo>
1111                                                     <mml:msub>
1112                                                         <mml:mi>f</mml:mi>
1113                                                         <mml:mi>i</mml:mi>
1114                                                     </mml:msub>
1115                                                 </mml:mrow>
1116                                                 <mml:mrow>
1117                                                     <mml:mo mml:stretchy="false">(</mml:mo>
1118                                                     <mml:mrow>
1119                                                         <mml:mi>x</mml:mi>
1120                                                         <mml:mi>,</mml:mi>
1121                                                         <mml:mi>z</mml:mi>
1122                                                         <mml:mrow>
1123                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1124                                                             <mml:mrow>
1125                                                                 <mml:mi>u</mml:mi>
1126                                                                 <mml:mrow>
1127                                                                     <mml:mo mml:stretchy="false">(</mml:mo>
1128                                                                     <mml:mi>x</mml:mi>
1129                                                                     <mml:mo mml:stretchy="false">)</mml:mo>
1130                                                                 </mml:mrow>
1131                                                             </mml:mrow>
1132                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1133                                                         </mml:mrow>
1134                                                     </mml:mrow>
1135                                                     <mml:mo mml:stretchy="false">)</mml:mo>
1136                                                 </mml:mrow>
1137                                                 <mml:mi/>
1138                                                 <mml:mrow>
1139                                                     <mml:mo mml:stretchy="true">{</mml:mo>
1140                                                     <mml:mtable>
1141                                                         <mml:mtr>
1142                                                             <mml:mrow>
1143                                                                 <mml:mrow>
1144                                                                     <mml:mi>i</mml:mi>
1145                                                                     <mml:mo mml:stretchy="false">=</mml:mo>
1146                                                                     <mml:mn>1</mml:mn>
1147                                                                 </mml:mrow>
1148                                                                 <mml:mi mml:fontstyle="normal">:</mml:mi>
1149                                                                 <mml:mi>N</mml:mi>
1150                                                             </mml:mrow>
1151                                                         </mml:mtr>
1152                                                         <mml:mtr>
1153                                                             <mml:mrow>
1154                                                                 <mml:mi>x</mml:mi>
1155                                                                 <mml:mo mml:stretchy="false">∈</mml:mo>
1156                                                                 <mml:mfenced mml:close="[" mml:open="]">
1157                                                                     <mml:mrow>
1158                                                                         <mml:msub>
1159                                                                             <mml:mi>x</mml:mi>
1160                                                                             <mml:mi>l</mml:mi>
1161                                                                         </mml:msub>
1162                                                                         <mml:mi>,</mml:mi>
1163                                                                         <mml:msub>
1164                                                                             <mml:mi>x</mml:mi>
1165                                                                             <mml:mi>u</mml:mi>
1166                                                                         </mml:msub>
1167                                                                     </mml:mrow>
1168                                                                 </mml:mfenced>
1169                                                             </mml:mrow>
1170                                                         </mml:mtr>
1171                                                     </mml:mtable>
1172                                                 </mml:mrow>
1173                                             </mml:mrow>
1174                                         </mml:mtr>
1175                                         <mml:mtr>
1176                                             <mml:mi/>
1177                                         </mml:mtr>
1178                                         <mml:mtr>
1179                                             <mml:mrow>
1180                                                 <mml:msub>
1181                                                     <mml:mi>g</mml:mi>
1182                                                     <mml:mi>j</mml:mi>
1183                                                 </mml:msub>
1184                                                 <mml:mrow>
1185                                                     <mml:mrow>
1186                                                         <mml:mo mml:stretchy="false">(</mml:mo>
1187                                                         <mml:mrow>
1188                                                             <mml:msub>
1189                                                                 <mml:mo mml:stretchy="false">ζ</mml:mo>
1190                                                                 <mml:mi>j</mml:mi>
1191                                                             </mml:msub>
1192                                                             <mml:mi>,</mml:mi>
1193                                                             <mml:mi>z</mml:mi>
1194                                                             <mml:mrow>
1195                                                                 <mml:mo mml:stretchy="false">(</mml:mo>
1196                                                                 <mml:mrow>
1197                                                                     <mml:mi>u</mml:mi>
1198                                                                     <mml:mrow>
1199                                                                         <mml:mo mml:stretchy="false">(</mml:mo>
1200                                                                         <mml:msub>
1201                                                                             <mml:mo mml:stretchy="false">ζ</mml:mo>
1202                                                                             <mml:mi>j</mml:mi>
1203                                                                         </mml:msub>
1204                                                                         <mml:mo mml:stretchy="false">)</mml:mo>
1205                                                                     </mml:mrow>
1206                                                                 </mml:mrow>
1207                                                                 <mml:mo mml:stretchy="false">)</mml:mo>
1208                                                             </mml:mrow>
1209                                                         </mml:mrow>
1210                                                         <mml:mo mml:stretchy="false">)</mml:mo>
1211                                                     </mml:mrow>
1212                                                     <mml:mo mml:stretchy="false">=</mml:mo>
1213                                                     <mml:mn>0</mml:mn>
1214                                                 </mml:mrow>
1215                                                 <mml:mi/>
1216                                                 <mml:mrow>
1217                                                     <mml:mtext>,</mml:mtext>
1218                                                     <mml:mi>j</mml:mi>
1219                                                     <mml:mo mml:stretchy="false">=</mml:mo>
1220                                                     <mml:mn>1</mml:mn>
1221                                                 </mml:mrow>
1222                                                 <mml:mi mml:fontstyle="normal">:</mml:mi>
1223                                                 <mml:mi>M</mml:mi>
1224                                             </mml:mrow>
1225                                         </mml:mtr>
1226                                     </mml:mtable>
1227                                 </mml:mrow>
1228                                 <mml:annotation mml:encoding="StarMath 5.0">left lbrace
1229                                     stack{u_i^(m_i)=f_i(x,z(u(x))) ~~left lbrace { binom{i=1:N}{x
1230                                     in left ] a_l, a_u right [} } right none# `#
1231                                     g_j(%zeta_j,z(u(%zeta_j))) = 0~~j=1:M} right
1232                                     none
1233                                 </mml:annotation>
1234                             </mml:semantics>
1235                         </mml:math>
1236                     </imagedata>
1237                 </imageobject>
1238             </mediaobject>
1239         </informalequation>
1240         <para>ただし,e</para>
1241         <mediaobject>
1242             <imageobject>
1243                 <imagedata align="left">
1244                     <mml:math>
1245                         <mml:semantics>
1246                             <mml:mrow>
1247                                 <mml:mo mml:stretchy="true">{</mml:mo>
1248                                 <mml:mtable>
1249                                     <mml:mtr>
1250                                         <mml:mrow>
1251                                             <mml:mi>M</mml:mi>
1252                                             <mml:mo mml:stretchy="false">=</mml:mo>
1253                                             <mml:mrow>
1254                                                 <mml:munderover>
1255                                                     <mml:mo mml:stretchy="false">∑</mml:mo>
1256                                                     <mml:mrow>
1257                                                         <mml:mi>i</mml:mi>
1258                                                         <mml:mo mml:stretchy="false">=</mml:mo>
1259                                                         <mml:mn>1</mml:mn>
1260                                                     </mml:mrow>
1261                                                     <mml:mi>N</mml:mi>
1262                                                 </mml:munderover>
1263                                                 <mml:msub>
1264                                                     <mml:mi>m</mml:mi>
1265                                                     <mml:mi>i</mml:mi>
1266                                                 </mml:msub>
1267                                             </mml:mrow>
1268                                         </mml:mrow>
1269                                     </mml:mtr>
1270                                     <mml:mtr>
1271                                         <mml:mi/>
1272                                     </mml:mtr>
1273                                     <mml:mtr>
1274                                         <mml:mrow>
1275                                             <mml:mi>z</mml:mi>
1276                                             <mml:mrow>
1277                                                 <mml:mrow>
1278                                                     <mml:mo mml:stretchy="false">(</mml:mo>
1279                                                     <mml:mrow>
1280                                                         <mml:mi>u</mml:mi>
1281                                                         <mml:mrow>
1282                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1283                                                             <mml:mi>x</mml:mi>
1284                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1285                                                         </mml:mrow>
1286                                                     </mml:mrow>
1287                                                     <mml:mo mml:stretchy="false">)</mml:mo>
1288                                                 </mml:mrow>
1289                                                 <mml:mo mml:stretchy="false">=</mml:mo>
1290                                                 <mml:mrow>
1291                                                     <mml:mo mml:stretchy="false">[</mml:mo>
1292                                                     <mml:mrow>
1293                                                         <mml:msub>
1294                                                             <mml:mi>u</mml:mi>
1295                                                             <mml:mn>1</mml:mn>
1296                                                         </mml:msub>
1297                                                         <mml:mrow>
1298                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1299                                                             <mml:mi>x</mml:mi>
1300                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1301                                                         </mml:mrow>
1302                                                         <mml:mi>;</mml:mi>
1303                                                         <mml:msubsup>
1304                                                             <mml:mi>u</mml:mi>
1305                                                             <mml:mn>1</mml:mn>
1306                                                             <mml:mn>1</mml:mn>
1307                                                         </mml:msubsup>
1308                                                         <mml:mrow>
1309                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1310                                                             <mml:mi>x</mml:mi>
1311                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1312                                                         </mml:mrow>
1313                                                         <mml:mi>;</mml:mi>
1314                                                         <mml:mo mml:stretchy="false">⋯</mml:mo>
1315                                                         <mml:msubsup>
1316                                                             <mml:mi>u</mml:mi>
1317                                                             <mml:mn>1</mml:mn>
1318                                                             <mml:mrow>
1319                                                                 <mml:mo mml:stretchy="false">(</mml:mo>
1320                                                                 <mml:mrow>
1321                                                                     <mml:msub>
1322                                                                         <mml:mi>m</mml:mi>
1323                                                                         <mml:mn>1</mml:mn>
1324                                                                     </mml:msub>
1325                                                                     <mml:mo mml:stretchy="false">−</mml:mo>
1326                                                                     <mml:mn>1</mml:mn>
1327                                                                 </mml:mrow>
1328                                                                 <mml:mo mml:stretchy="false">)</mml:mo>
1329                                                             </mml:mrow>
1330                                                         </mml:msubsup>
1331                                                         <mml:mrow>
1332                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1333                                                             <mml:mi>x</mml:mi>
1334                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1335                                                         </mml:mrow>
1336                                                         <mml:mi>;</mml:mi>
1337                                                         <mml:mi/>
1338                                                         <mml:mo mml:stretchy="false">⋯</mml:mo>
1339                                                         <mml:mi>;</mml:mi>
1340                                                         <mml:mi/>
1341                                                         <mml:msub>
1342                                                             <mml:mi>u</mml:mi>
1343                                                             <mml:mi>N</mml:mi>
1344                                                         </mml:msub>
1345                                                         <mml:mrow>
1346                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1347                                                             <mml:mi>x</mml:mi>
1348                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1349                                                         </mml:mrow>
1350                                                         <mml:mi>;</mml:mi>
1351                                                         <mml:msubsup>
1352                                                             <mml:mi>u</mml:mi>
1353                                                             <mml:mi>N</mml:mi>
1354                                                             <mml:mn>1</mml:mn>
1355                                                         </mml:msubsup>
1356                                                         <mml:mrow>
1357                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1358                                                             <mml:mi>x</mml:mi>
1359                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1360                                                         </mml:mrow>
1361                                                         <mml:mi>;</mml:mi>
1362                                                         <mml:mo mml:stretchy="false">⋯</mml:mo>
1363                                                         <mml:mi>;</mml:mi>
1364                                                         <mml:msubsup>
1365                                                             <mml:mi>u</mml:mi>
1366                                                             <mml:mi>N</mml:mi>
1367                                                             <mml:mrow>
1368                                                                 <mml:mo mml:stretchy="false">(</mml:mo>
1369                                                                 <mml:mrow>
1370                                                                     <mml:msub>
1371                                                                         <mml:mi>m</mml:mi>
1372                                                                         <mml:mi>N</mml:mi>
1373                                                                     </mml:msub>
1374                                                                     <mml:mo mml:stretchy="false">−</mml:mo>
1375                                                                     <mml:mn>1</mml:mn>
1376                                                                 </mml:mrow>
1377                                                                 <mml:mo mml:stretchy="false">)</mml:mo>
1378                                                             </mml:mrow>
1379                                                         </mml:msubsup>
1380                                                         <mml:mrow>
1381                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1382                                                             <mml:mi>x</mml:mi>
1383                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1384                                                         </mml:mrow>
1385                                                     </mml:mrow>
1386                                                     <mml:mo mml:stretchy="false">]</mml:mo>
1387                                                 </mml:mrow>
1388                                             </mml:mrow>
1389                                         </mml:mrow>
1390                                     </mml:mtr>
1391                                     <mml:mtr>
1392                                         <mml:mi/>
1393                                     </mml:mtr>
1394                                     <mml:mtr>
1395                                         <mml:mrow>
1396                                             <mml:mrow>
1397                                                 <mml:mrow>
1398                                                     <mml:mrow>
1399                                                         <mml:msub>
1400                                                             <mml:mi>x</mml:mi>
1401                                                             <mml:mi>l</mml:mi>
1402                                                         </mml:msub>
1403                                                         <mml:mo mml:stretchy="false">≤</mml:mo>
1404                                                         <mml:msub>
1405                                                             <mml:mo mml:stretchy="false">ζ</mml:mo>
1406                                                             <mml:mn>1</mml:mn>
1407                                                         </mml:msub>
1408                                                     </mml:mrow>
1409                                                     <mml:mo mml:stretchy="false">≤</mml:mo>
1410                                                     <mml:mo mml:stretchy="false">⋯</mml:mo>
1411                                                 </mml:mrow>
1412                                                 <mml:mo mml:stretchy="false">≤</mml:mo>
1413                                                 <mml:msub>
1414                                                     <mml:mo mml:stretchy="false">ζ</mml:mo>
1415                                                     <mml:mi>M</mml:mi>
1416                                                 </mml:msub>
1417                                             </mml:mrow>
1418                                             <mml:mo mml:stretchy="false">≤</mml:mo>
1419                                             <mml:msub>
1420                                                 <mml:mi>x</mml:mi>
1421                                                 <mml:mi>u</mml:mi>
1422                                             </mml:msub>
1423                                         </mml:mrow>
1424                                     </mml:mtr>
1425                                 </mml:mtable>
1426                             </mml:mrow>
1427                             <mml:annotation mml:encoding="StarMath 5.0">left lbrace stack
1428                                 { M= sum from {i=1} to {N} m_i # ~# z(u(x)) =
1429                                 [u_1(x);u_1^{1}(x);dotsaxis u_1^(m_1-1)(x);~ dotsaxis;
1430                                 ~u_N(x);u_N^{1}(x);dotsaxis; u_N^(m_N-1)(x)]# ~# x_l &lt;=
1431                                 %zeta_1 &lt;= dotsaxis &lt;= %zeta_M &lt;=x_u}right
1432                                 none
1433                             </mml:annotation>
1434                         </mml:semantics>
1435                     </mml:math>
1436                 </imagedata>
1437             </imageobject>
1438         </mediaobject>
1439         <para>
1440             外部関数で使用され, <literal>bvode</literal>  により返される
1441             引数 <literal>zu</literal> は, 
1442             指定した <literal>x</literal> に関する <literal>z(u(x))</literal>の要素により
1443             構成される列ベクトルです.
1444         </para>
1445         <para>
1446             解 u を近似するために使用される手法は,
1447             ガウス点におけるコロケーションです.
1448             この方法は,i番目(i = 1:N)の要素についてm(i)-1階の連続微分が可であることを
1449             必要とします.
1450             ここで, k はサブ区間毎のコロケーション点(ステージ)の数で,
1451             <latex>k \ge \max\left(m(i)\right)</latex> となるように選択されます.
1452             ルンゲクッタのノミナル解表現が使用されます.
1453         </para>
1454     </refsection>
1455     <refsection>
1456         <title>例</title>
1457         <para>
1458             最初の2つの問題は参考文献の論文 [1] からの引用です.
1459         </para>
1460         <itemizedlist>
1461             <listitem>
1462                 <para>
1463                     <emphasis role="bold">問題 1</emphasis> は
1464                     両端で単純支持され,均等に負荷がかかった剛性が可変の梁について
1465                     記述します.
1466                 </para>
1467                 <para>以下のように定義することができます :</para>
1468                 <para>次の4次の微分方程式を解きます:</para>
1469                 <mediaobject>
1470                     <imageobject>
1471                         <imagedata align="left">
1472                             <mml:math>
1473                                 <mml:semantics>
1474                                     <mml:mrow>
1475                                         <mml:mfrac>
1476                                             <mml:msup>
1477                                                 <mml:mi>d</mml:mi>
1478                                                 <mml:mn>4</mml:mn>
1479                                             </mml:msup>
1480                                             <mml:mrow>
1481                                                 <mml:mi>d</mml:mi>
1482                                                 <mml:msup>
1483                                                     <mml:mi>x</mml:mi>
1484                                                     <mml:mn>4</mml:mn>
1485                                                 </mml:msup>
1486                                             </mml:mrow>
1487                                         </mml:mfrac>
1488                                         <mml:mi>u</mml:mi>
1489                                         <mml:mrow>
1490                                             <mml:mrow>
1491                                                 <mml:mo mml:stretchy="false">(</mml:mo>
1492                                                 <mml:mi>x</mml:mi>
1493                                                 <mml:mo mml:stretchy="false">)</mml:mo>
1494                                             </mml:mrow>
1495                                             <mml:mo mml:stretchy="false">=</mml:mo>
1496                                             <mml:mfrac>
1497                                                 <mml:mrow>
1498                                                     <mml:mrow>
1499                                                         <mml:mn>1</mml:mn>
1500                                                         <mml:mo mml:stretchy="false">−</mml:mo>
1501                                                         <mml:mrow>
1502                                                             <mml:mrow>
1503                                                                 <mml:mn>6</mml:mn>
1504                                                                 <mml:mo mml:stretchy="false">.</mml:mo>
1505                                                                 <mml:msup>
1506                                                                     <mml:mi>x</mml:mi>
1507                                                                     <mml:mn>2</mml:mn>
1508                                                                 </mml:msup>
1509                                                             </mml:mrow>
1510                                                             <mml:mo mml:stretchy="false">.</mml:mo>
1511                                                             <mml:mfrac>
1512                                                                 <mml:msup>
1513                                                                     <mml:mi>d</mml:mi>
1514                                                                     <mml:mn>3</mml:mn>
1515                                                                 </mml:msup>
1516                                                                 <mml:mrow>
1517                                                                     <mml:mi>d</mml:mi>
1518                                                                     <mml:msup>
1519                                                                         <mml:mi>x</mml:mi>
1520                                                                         <mml:mn>3</mml:mn>
1521                                                                     </mml:msup>
1522                                                                 </mml:mrow>
1523                                                             </mml:mfrac>
1524                                                         </mml:mrow>
1525                                                     </mml:mrow>
1526                                                     <mml:mi>u</mml:mi>
1527                                                     <mml:mrow>
1528                                                         <mml:mrow>
1529                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1530                                                             <mml:mi>x</mml:mi>
1531                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1532                                                         </mml:mrow>
1533                                                         <mml:mo mml:stretchy="false">−</mml:mo>
1534                                                         <mml:mrow>
1535                                                             <mml:mrow>
1536                                                                 <mml:mn>6</mml:mn>
1537                                                                 <mml:mo mml:stretchy="false">.</mml:mo>
1538                                                                 <mml:mi>x</mml:mi>
1539                                                             </mml:mrow>
1540                                                             <mml:mo mml:stretchy="false">.</mml:mo>
1541                                                             <mml:mfrac>
1542                                                                 <mml:msup>
1543                                                                     <mml:mi>d</mml:mi>
1544                                                                     <mml:mn>2</mml:mn>
1545                                                                 </mml:msup>
1546                                                                 <mml:mrow>
1547                                                                     <mml:mi>d</mml:mi>
1548                                                                     <mml:msup>
1549                                                                         <mml:mi>x</mml:mi>
1550                                                                         <mml:mn>2</mml:mn>
1551                                                                     </mml:msup>
1552                                                                 </mml:mrow>
1553                                                             </mml:mfrac>
1554                                                         </mml:mrow>
1555                                                     </mml:mrow>
1556                                                     <mml:mi>u</mml:mi>
1557                                                     <mml:mrow>
1558                                                         <mml:mo mml:stretchy="false">(</mml:mo>
1559                                                         <mml:mi>x</mml:mi>
1560                                                         <mml:mo mml:stretchy="false">)</mml:mo>
1561                                                     </mml:mrow>
1562                                                 </mml:mrow>
1563                                                 <mml:msup>
1564                                                     <mml:mi>x</mml:mi>
1565                                                     <mml:mn>3</mml:mn>
1566                                                 </mml:msup>
1567                                             </mml:mfrac>
1568                                         </mml:mrow>
1569                                     </mml:mrow>
1570                                     <mml:annotation mml:encoding="StarMath 5.0">d^4 over {d
1571                                         x^4} u(x)={1 -6*x^2*{{d^3} over {d x^3}} u(x)-6*x*{{d^2}
1572                                         over {d x^2}} u(x)} over x^3
1573                                     </mml:annotation>
1574                                 </mml:semantics>
1575                             </mml:math>
1576                         </imagedata>
1577                     </imageobject>
1578                 </mediaobject>
1579                 <para>設定する境界条件:</para>
1580                 <mediaobject>
1581                     <imageobject>
1582                         <imagedata align="left">
1583                             <mml:math>
1584                                 <mml:semantics>
1585                                     <mml:mrow>
1586                                         <mml:mo mml:stretchy="true">{</mml:mo>
1587                                         <mml:mtable>
1588                                             <mml:mtr>
1589                                                 <mml:mrow>
1590                                                     <mml:mi>u</mml:mi>
1591                                                     <mml:mrow>
1592                                                         <mml:mrow>
1593                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1594                                                             <mml:mn>1</mml:mn>
1595                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1596                                                         </mml:mrow>
1597                                                         <mml:mo mml:stretchy="false">=</mml:mo>
1598                                                         <mml:mn>0</mml:mn>
1599                                                     </mml:mrow>
1600                                                 </mml:mrow>
1601                                             </mml:mtr>
1602                                             <mml:mtr>
1603                                                 <mml:mrow>
1604                                                     <mml:mfrac>
1605                                                         <mml:msup>
1606                                                             <mml:mi>d</mml:mi>
1607                                                             <mml:mn>2</mml:mn>
1608                                                         </mml:msup>
1609                                                         <mml:mrow>
1610                                                             <mml:mi>d</mml:mi>
1611                                                             <mml:msup>
1612                                                                 <mml:mi>x</mml:mi>
1613                                                                 <mml:mn>2</mml:mn>
1614                                                             </mml:msup>
1615                                                         </mml:mrow>
1616                                                     </mml:mfrac>
1617                                                     <mml:mi>u</mml:mi>
1618                                                     <mml:mrow>
1619                                                         <mml:mo mml:stretchy="false">(</mml:mo>
1620                                                         <mml:mi>x</mml:mi>
1621                                                         <mml:mo mml:stretchy="false">)</mml:mo>
1622                                                     </mml:mrow>
1623                                                     <mml:mrow>
1624                                                         <mml:mrow>
1625                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1626                                                             <mml:mn>1</mml:mn>
1627                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1628                                                         </mml:mrow>
1629                                                         <mml:mo mml:stretchy="false">=</mml:mo>
1630                                                         <mml:mn>0</mml:mn>
1631                                                     </mml:mrow>
1632                                                 </mml:mrow>
1633                                             </mml:mtr>
1634                                             <mml:mtr>
1635                                                 <mml:mrow>
1636                                                     <mml:mi>u</mml:mi>
1637                                                     <mml:mrow>
1638                                                         <mml:mrow>
1639                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1640                                                             <mml:mn>2</mml:mn>
1641                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1642                                                         </mml:mrow>
1643                                                         <mml:mo mml:stretchy="false">=</mml:mo>
1644                                                         <mml:mn>0</mml:mn>
1645                                                     </mml:mrow>
1646                                                 </mml:mrow>
1647                                             </mml:mtr>
1648                                             <mml:mtr>
1649                                                 <mml:mrow>
1650                                                     <mml:mfrac>
1651                                                         <mml:msup>
1652                                                             <mml:mi>d</mml:mi>
1653                                                             <mml:mn>2</mml:mn>
1654                                                         </mml:msup>
1655                                                         <mml:mrow>
1656                                                             <mml:mi>d</mml:mi>
1657                                                             <mml:msup>
1658                                                                 <mml:mi>x</mml:mi>
1659                                                                 <mml:mn>2</mml:mn>
1660                                                             </mml:msup>
1661                                                         </mml:mrow>
1662                                                     </mml:mfrac>
1663                                                     <mml:mi>u</mml:mi>
1664                                                     <mml:mrow>
1665                                                         <mml:mo mml:stretchy="false">(</mml:mo>
1666                                                         <mml:mi>x</mml:mi>
1667                                                         <mml:mo mml:stretchy="false">)</mml:mo>
1668                                                     </mml:mrow>
1669                                                     <mml:mrow>
1670                                                         <mml:mrow>
1671                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1672                                                             <mml:mn>2</mml:mn>
1673                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1674                                                         </mml:mrow>
1675                                                         <mml:mo mml:stretchy="false">=</mml:mo>
1676                                                         <mml:mn>0</mml:mn>
1677                                                     </mml:mrow>
1678                                                 </mml:mrow>
1679                                             </mml:mtr>
1680                                         </mml:mtable>
1681                                     </mml:mrow>
1682                                     <mml:annotation mml:encoding="StarMath 5.0">left lbrace
1683                                         stack{ u(1)=0# {{d^2} over {d x^2}} u(x)(1)=0# u(2)=0#
1684                                         {{d^2} over {d x^2}} u(x)(2)=0} right
1685                                         none
1686                                     </mml:annotation>
1687                                 </mml:semantics>
1688                             </mml:math>
1689                         </imagedata>
1690                     </imageobject>
1691                 </mediaobject>
1692                 <para>この問題の厳密解は以下のようになることが知られています:</para>
1693                 <mediaobject>
1694                     <imageobject>
1695                         <imagedata align="left">
1696                             <mml:math>
1697                                 <mml:semantics>
1698                                     <mml:mrow>
1699                                         <mml:mi>u</mml:mi>
1700                                         <mml:mrow>
1701                                             <mml:mrow>
1702                                                 <mml:mo mml:stretchy="false">(</mml:mo>
1703                                                 <mml:mi>x</mml:mi>
1704                                                 <mml:mo mml:stretchy="false">)</mml:mo>
1705                                             </mml:mrow>
1706                                             <mml:mo mml:stretchy="false">=</mml:mo>
1707                                             <mml:mfrac>
1708                                                 <mml:mn>1</mml:mn>
1709                                                 <mml:mn>4</mml:mn>
1710                                             </mml:mfrac>
1711                                         </mml:mrow>
1712                                         <mml:mrow>
1713                                             <mml:mo mml:stretchy="false">(</mml:mo>
1714                                             <mml:mrow>
1715                                                 <mml:mn>10</mml:mn>
1716                                                 <mml:mi/>
1717                                                 <mml:mi>log</mml:mi>
1718                                                 <mml:mrow>
1719                                                     <mml:mrow>
1720                                                         <mml:mo mml:stretchy="false">(</mml:mo>
1721                                                         <mml:mn>2</mml:mn>
1722                                                         <mml:mo mml:stretchy="false">)</mml:mo>
1723                                                     </mml:mrow>
1724                                                     <mml:mo mml:stretchy="false">−</mml:mo>
1725                                                     <mml:mn>3</mml:mn>
1726                                                 </mml:mrow>
1727                                             </mml:mrow>
1728                                             <mml:mo mml:stretchy="false">)</mml:mo>
1729                                         </mml:mrow>
1730                                         <mml:mi/>
1731                                         <mml:mrow>
1732                                             <mml:mrow>
1733                                                 <mml:mo mml:stretchy="false">(</mml:mo>
1734                                                 <mml:mrow>
1735                                                     <mml:mn>1</mml:mn>
1736                                                     <mml:mo mml:stretchy="false">−</mml:mo>
1737                                                     <mml:mi>x</mml:mi>
1738                                                 </mml:mrow>
1739                                                 <mml:mo mml:stretchy="false">)</mml:mo>
1740                                             </mml:mrow>
1741                                             <mml:mo mml:stretchy="false">+</mml:mo>
1742                                             <mml:mfrac>
1743                                                 <mml:mn>1</mml:mn>
1744                                                 <mml:mn>2</mml:mn>
1745                                             </mml:mfrac>
1746                                         </mml:mrow>
1747                                         <mml:mrow>
1748                                             <mml:mo mml:stretchy="false">[</mml:mo>
1749                                             <mml:mrow>
1750                                                 <mml:mfrac>
1751                                                     <mml:mn>1</mml:mn>
1752                                                     <mml:mi>x</mml:mi>
1753                                                 </mml:mfrac>
1754                                                 <mml:mo mml:stretchy="false">+</mml:mo>
1755                                                 <mml:mrow>
1756                                                     <mml:mrow>
1757                                                         <mml:mo mml:stretchy="false">(</mml:mo>
1758                                                         <mml:mrow>
1759                                                             <mml:mn>3</mml:mn>
1760                                                             <mml:mo mml:stretchy="false">+</mml:mo>
1761                                                             <mml:mi>x</mml:mi>
1762                                                         </mml:mrow>
1763                                                         <mml:mo mml:stretchy="false">)</mml:mo>
1764                                                     </mml:mrow>
1765                                                     <mml:mi/>
1766                                                     <mml:mi>log</mml:mi>
1767                                                     <mml:mrow>
1768                                                         <mml:mrow>
1769                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1770                                                             <mml:mi>x</mml:mi>
1771                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1772                                                         </mml:mrow>
1773                                                         <mml:mo mml:stretchy="false">−</mml:mo>
1774                                                         <mml:mi>x</mml:mi>
1775                                                     </mml:mrow>
1776                                                 </mml:mrow>
1777                                             </mml:mrow>
1778                                             <mml:mo mml:stretchy="false">]</mml:mo>
1779                                         </mml:mrow>
1780                                     </mml:mrow>
1781                                     <mml:annotation mml:encoding="StarMath 5.0">u(x)=1 over 4
1782                                         (10`log(2)-3)`(1-x)+ {1 over 2} [ {1 over x} + {(3+x) `
1783                                         log(x)-x}]
1784                                     </mml:annotation>
1785                                 </mml:semantics>
1786                             </mml:math>
1787                         </imagedata>
1788                     </imageobject>
1789                 </mediaobject>
1790                 <programlisting role="example"><![CDATA[ 
1791 N=1;// just one differential equation
1792 m=4;//a fourth order  differential equation
1793 M=sum(m);
1794
1795 x_low=1;x_up=2; // the x limits
1796 zeta=[x_low,x_low,x_up,x_up]; //two constraints (on the value of u and its second derivative) on each bound.
1797
1798 //The external functions
1799 //These functions are called by the solver with zu=[u(x);u'(x);u''(x);u'''(x)]
1800
1801 // - The function which computes the right hand side of the differential equation
1802 function f=fsub(x,zu),f=(1-6*x^2*zu(4)-6*x*zu(3))/x^3,endfunction
1803
1804 // - The function which computes the derivative of fsub with respect to zu
1805 function df=dfsub(x,zu),df=[0,0,-6/x^2,-6/x],endfunction
1806
1807 // - The function which computes the ith constraint for a given i
1808 function g=gsub(i,zu),
1809   select i
1810   case 1 then  //x=zeta(1)=1
1811     g=zu(1) //u(1)=0
1812   case 2 then //x=zeta(2)=1
1813     g=zu(3) //u''(1)=0
1814   case 3 then //x=zeta(3)=2
1815     g=zu(1) //u(2)=0
1816   case 4 then  //x=zeta(4)=2
1817     g=zu(3) //u''(2)=0
1818   end
1819 endfunction
1820
1821 // - The function which computes the derivative of gsub with respect to z
1822 function dg=dgsub(i,z)
1823   select i
1824   case 1 then  //x=zeta(1)=1
1825     dg=[1,0,0,0]
1826   case 2 then //x=zeta(2)=1
1827     dg=[0,0,1,0]
1828   case 3 then //x=zeta(3)=2
1829      dg=[1,0,0,0]
1830   case 4 then  //x=zeta(4)=2
1831     dg=[0,0,1,0]
1832   end
1833 endfunction
1834
1835 // - The function which computes the initial guess, unused here
1836 function [zu,mpar]=guess(x),zu=0;mpar=0,endfunction 
1837
1838  //define the function which computes the exact value of u for a given x ( for testing purposes)
1839 function zu=trusol(x)
1840   zu=0*ones(4,1)
1841   zu(1) =  0.25*(10*log(2)-3)*(1-x) + 0.5 *( 1/x   + (3+x)*log(x) - x)
1842   zu(2) = -0.25*(10*log(2)-3)       + 0.5 *(-1/x^2 + (3+x)/x      + log(x) - 1)
1843   zu(3) = 0.5*( 2/x^3 + 1/x   - 3/x^2)
1844   zu(4) = 0.5*(-6/x^4 - 1/x/x + 6/x^3)
1845 endfunction
1846
1847 fixpnt=[ ];//All boundary conditions are located at x_low and x_up
1848
1849 //    nonlin  collpnt n ntol ndimf  ndimi iprint iread iguess rstart nfxpnt
1850 ipar=[0       0       1 2    2000   200   1      0     0      0      0     ]
1851
1852 ltol=[1,3];//set tolerance control on zu(1) and zu(3)
1853 tol=[1.e-11,1.e-11];//set tolreance values for these two controls
1854 xpoints=x_low:0.01:x_up;
1855
1856 zu=bvode(xpoints,N,m,x_low,x_up,zeta,ipar,ltol,tol,fixpnt,...
1857         fsub,dfsub,gsub,dgsub,guess)
1858 //check the constraints
1859 zu([1,3],[1 $]) //should be zero
1860 plot(xpoints,zu(1,:)) // the evolution of the solution u
1861 zu1=[];for x=xpoints,zu1=[zu1,trusol(x)]; end;  
1862 norm(zu-zu1)
1863  ]]></programlisting>
1864             </listitem>
1865             <listitem>
1866                 <para>
1867                     同じ問題で <literal>bvodeS</literal> と初期推定を用います 
1868                 </para>
1869                 <programlisting role="example"><![CDATA[ 
1870 function [z,lhS]=zstart(x)
1871   z=zeros(5,1);z(5)=1;
1872   lhS=[0;1];
1873 endfunction
1874 zu=bvode(xpoints,N,m,x_low,x_up,zeta,ltol=ltol,tol=tol,guess=zstart)
1875  ]]></programlisting>
1876             </listitem>
1877             <listitem>
1878                 <para>
1879                     <emphasis role="bold">問題 2</emphasis>は,
1880                     二次関数として変化する軸対象の外部圧力分布のもとでの
1881                     一定の厚みの薄く浅い球状のキャップの
1882                     微小な有限変形を記述するものです.
1883                     ここで, <latex>$\varphi$</latex> は変形したシェルの経線角度変化, <latex>$\psi$</latex> は応力関数です.
1884                     <latex>$\varepsilon=\mu=10^{-3}$</latex>の場合,開始点に依存して2つの異なる解が得られる可能性が
1885                     あります.
1886                 </para>
1887                 <mediaobject>
1888                     <imageobject>
1889                         <imagedata align="left">
1890                             <mml:math>
1891                                 <mml:semantics>
1892                                     <mml:mrow>
1893                                         <mml:mo mml:stretchy="true">{</mml:mo>
1894                                         <mml:mtable>
1895                                             <mml:mtr>
1896                                                 <mml:mrow>
1897                                                     <mml:mfrac>
1898                                                         <mml:msup>
1899                                                             <mml:mo mml:stretchy="false">ε</mml:mo>
1900                                                             <mml:mn>4</mml:mn>
1901                                                         </mml:msup>
1902                                                         <mml:mo mml:stretchy="false">μ</mml:mo>
1903                                                     </mml:mfrac>
1904                                                     <mml:mrow>
1905                                                         <mml:mrow>
1906                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1907                                                             <mml:mrow>
1908                                                                 <mml:mo mml:stretchy="false">φ</mml:mo>
1909                                                                 <mml:mi>'</mml:mi>
1910                                                                 <mml:mrow>
1911                                                                     <mml:mrow>
1912                                                                         <mml:mi>'</mml:mi>
1913                                                                         <mml:mo mml:stretchy="false">+</mml:mo>
1914                                                                         <mml:mfrac>
1915                                                                             <mml:mrow>
1916                                                                                 <mml:mo mml:stretchy="false">φ</mml:mo>
1917                                                                                 <mml:mi>'</mml:mi>
1918                                                                             </mml:mrow>
1919                                                                             <mml:mi>x</mml:mi>
1920                                                                         </mml:mfrac>
1921                                                                     </mml:mrow>
1922                                                                     <mml:mo mml:stretchy="false">−</mml:mo>
1923                                                                     <mml:mfrac>
1924                                                                         <mml:mo mml:stretchy="false">φ</mml:mo>
1925                                                                         <mml:msup>
1926                                                                             <mml:mi>x</mml:mi>
1927                                                                             <mml:mn>2</mml:mn>
1928                                                                         </mml:msup>
1929                                                                     </mml:mfrac>
1930                                                                 </mml:mrow>
1931                                                             </mml:mrow>
1932                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1933                                                         </mml:mrow>
1934                                                         <mml:mo mml:stretchy="false">+</mml:mo>
1935                                                         <mml:mo mml:stretchy="false">ψ</mml:mo>
1936                                                     </mml:mrow>
1937                                                     <mml:mrow>
1938                                                         <mml:mrow>
1939                                                             <mml:mrow>
1940                                                                 <mml:mo mml:stretchy="false">(</mml:mo>
1941                                                                 <mml:mrow>
1942                                                                     <mml:mn>1</mml:mn>
1943                                                                     <mml:mo mml:stretchy="false">−</mml:mo>
1944                                                                     <mml:mfrac>
1945                                                                         <mml:mo mml:stretchy="false">φ</mml:mo>
1946                                                                         <mml:mi>x</mml:mi>
1947                                                                     </mml:mfrac>
1948                                                                 </mml:mrow>
1949                                                                 <mml:mo mml:stretchy="false">)</mml:mo>
1950                                                             </mml:mrow>
1951                                                             <mml:mo mml:stretchy="false">−</mml:mo>
1952                                                             <mml:mo mml:stretchy="false">φ</mml:mo>
1953                                                         </mml:mrow>
1954                                                         <mml:mo mml:stretchy="false">+</mml:mo>
1955                                                         <mml:mo mml:stretchy="false">γ</mml:mo>
1956                                                     </mml:mrow>
1957                                                     <mml:mi>x</mml:mi>
1958                                                     <mml:mrow>
1959                                                         <mml:mrow>
1960                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1961                                                             <mml:mrow>
1962                                                                 <mml:mn>1</mml:mn>
1963                                                                 <mml:mo mml:stretchy="false">−</mml:mo>
1964                                                                 <mml:mfrac>
1965                                                                     <mml:msup>
1966                                                                         <mml:mi>x</mml:mi>
1967                                                                         <mml:mn>2</mml:mn>
1968                                                                     </mml:msup>
1969                                                                     <mml:mn>2</mml:mn>
1970                                                                 </mml:mfrac>
1971                                                             </mml:mrow>
1972                                                             <mml:mo mml:stretchy="false">)</mml:mo>
1973                                                         </mml:mrow>
1974                                                         <mml:mo mml:stretchy="false">=</mml:mo>
1975                                                         <mml:mn>0</mml:mn>
1976                                                     </mml:mrow>
1977                                                 </mml:mrow>
1978                                             </mml:mtr>
1979                                             <mml:mtr>
1980                                                 <mml:mrow>
1981                                                     <mml:mo mml:stretchy="false">μ</mml:mo>
1982                                                     <mml:mrow>
1983                                                         <mml:mrow>
1984                                                             <mml:mo mml:stretchy="false">(</mml:mo>
1985                                                             <mml:mrow>
1986                                                                 <mml:mo mml:stretchy="false">ψ</mml:mo>
1987                                                                 <mml:mi>'</mml:mi>
1988                                                                 <mml:mrow>
1989                                                                     <mml:mrow>
1990                                                                         <mml:mi>'</mml:mi>
1991                                                                         <mml:mo mml:stretchy="false">+</mml:mo>
1992                                                                         <mml:mfrac>
1993                                                                             <mml:mrow>
1994                                                                                 <mml:mo mml:stretchy="false">ψ</mml:mo>
1995                                                                                 <mml:mi>'</mml:mi>
1996                                                                             </mml:mrow>
1997                                                                             <mml:mi>x</mml:mi>
1998                                                                         </mml:mfrac>
1999                                                                     </mml:mrow>
2000                                                                     <mml:mo mml:stretchy="false">−</mml:mo>
2001                                                                     <mml:mfrac>
2002                                                                         <mml:mo mml:stretchy="false">ψ</mml:mo>
2003                                                                         <mml:msup>
2004                                                                             <mml:mi>x</mml:mi>
2005                                                                             <mml:mn>2</mml:mn>
2006                                                                         </mml:msup>
2007                                                                     </mml:mfrac>
2008                                                                 </mml:mrow>
2009                                                             </mml:mrow>
2010                                                             <mml:mo mml:stretchy="false">)</mml:mo>
2011                                                         </mml:mrow>
2012                                                         <mml:mo mml:stretchy="false">−</mml:mo>
2013                                                         <mml:mo mml:stretchy="false">φ</mml:mo>
2014                                                     </mml:mrow>
2015                                                     <mml:mrow>
2016                                                         <mml:mrow>
2017                                                             <mml:mo mml:stretchy="false">(</mml:mo>
2018                                                             <mml:mrow>
2019                                                                 <mml:mn>1</mml:mn>
2020                                                                 <mml:mo mml:stretchy="false">−</mml:mo>
2021                                                                 <mml:mfrac>
2022                                                                     <mml:mo mml:stretchy="false">φ</mml:mo>
2023                                                                     <mml:mn>2x</mml:mn>
2024                                                                 </mml:mfrac>
2025                                                             </mml:mrow>
2026                                                             <mml:mo mml:stretchy="false">)</mml:mo>
2027                                                         </mml:mrow>
2028                                                         <mml:mo mml:stretchy="false">=</mml:mo>
2029                                                         <mml:mn>0</mml:mn>
2030                                                     </mml:mrow>
2031                                                 </mml:mrow>
2032                                             </mml:mtr>
2033                                             <mml:mtr>
2034                                                 <mml:mrow>
2035                                                     <mml:mrow>
2036                                                         <mml:mn>0</mml:mn>
2037                                                         <mml:mo mml:stretchy="false">&lt;</mml:mo>
2038                                                         <mml:mi>x</mml:mi>
2039                                                     </mml:mrow>
2040                                                     <mml:mo mml:stretchy="false">&lt;</mml:mo>
2041                                                     <mml:mn>1</mml:mn>
2042                                                 </mml:mrow>
2043                                             </mml:mtr>
2044                                         </mml:mtable>
2045                                     </mml:mrow>
2046                                     <mml:annotation mml:encoding="StarMath 5.0">left lbrace
2047                                         stack{{%epsilon^4} over %mu (%phi''+ {%phi'} over x
2048                                         -{%phi} over {x^2} ) +%psi (1- %phi over x ) -%phi+%gamma
2049                                         x(1-{x^2} over 2)=0# %mu(%psi''+{%psi'} over x-%psi over
2050                                         {x^2})-%phi(1-%phi over{2x})=0 # 0&lt;x&lt;1} right
2051                                         none
2052                                     </mml:annotation>
2053                                 </mml:semantics>
2054                             </mml:math>
2055                         </imagedata>
2056                     </imageobject>
2057                 </mediaobject>
2058                 <para>境界条件のもとで</para>
2059                 <mediaobject>
2060                     <imageobject>
2061                         <imagedata align="left">
2062                             <mml:math>
2063                                 <mml:semantics>
2064                                     <mml:mrow>
2065                                         <mml:mo mml:stretchy="true">{</mml:mo>
2066                                         <mml:mtable>
2067                                             <mml:mtr>
2068                                                 <mml:mrow>
2069                                                     <mml:mo mml:stretchy="false">φ</mml:mo>
2070                                                     <mml:mo mml:stretchy="false">=</mml:mo>
2071                                                     <mml:mn>0</mml:mn>
2072                                                 </mml:mrow>
2073                                             </mml:mtr>
2074                                             <mml:mtr>
2075                                                 <mml:mrow>
2076                                                     <mml:mi>x</mml:mi>
2077                                                     <mml:mi/>
2078                                                     <mml:mo mml:stretchy="false">ψ</mml:mo>
2079                                                     <mml:mrow>
2080                                                         <mml:mi>'</mml:mi>
2081                                                         <mml:mo mml:stretchy="false">−</mml:mo>
2082                                                         <mml:mn>0.3</mml:mn>
2083                                                     </mml:mrow>
2084                                                     <mml:mrow>
2085                                                         <mml:mrow>
2086                                                             <mml:mo mml:stretchy="false">ψ</mml:mo>
2087                                                             <mml:mo mml:stretchy="false">+</mml:mo>
2088                                                             <mml:mn>0.7x</mml:mn>
2089                                                         </mml:mrow>
2090                                                         <mml:mo mml:stretchy="false">=</mml:mo>
2091                                                         <mml:mn>0</mml:mn>
2092                                                     </mml:mrow>
2093                                                 </mml:mrow>
2094                                             </mml:mtr>
2095                                         </mml:mtable>
2096                                     </mml:mrow>
2097                                     <mml:annotation mml:encoding="StarMath 5.0">left lbrace
2098                                         stack{ %phi=0# x`%psi'-0.3%psi+0.7x=0} right
2099                                         none
2100                                     </mml:annotation>
2101                                 </mml:semantics>
2102                             </mml:math>
2103                         </imagedata>
2104                     </imageobject>
2105                 </mediaobject>
2106                 <para>
2107                     <literal>x=0</literal> かつ <literal>x=1</literal>の場合
2108                 </para>
2109                 <programlisting role="example"><![CDATA[ 
2110 N=2;// two differential equations
2111 m=[2 2];//each differential equation is of second  order
2112 M=sum(m);
2113
2114 x_low=0;x_up=1; // the x limits
2115 zeta=[x_low,x_low, x_up x_up]; //two  constraints on each bound.
2116
2117 //The external functions
2118 //These functions are called by the solver with zu=[u1(x);u1'(x);u2(x);u2'(x)]
2119
2120 // - The function which computes the right hand side of the differential equation
2121 function f=fsub2(x,zu,eps,dmu,eps4mu,gam,xt),
2122    f=[zu(1)/x^2-zu(2)/x+(zu(1)-zu(3)*(1-zu(1)/x)-gam*x*(1-x^2/2))/eps4mu //phi''
2123       zu(3)/x^2-zu(4)/x+zu(1)*(1-zu(1)/(2*x))/dmu];//psi''
2124 endfunction
2125
2126 // - The function which computes the derivative of fsub with respect to zu
2127 function df=dfsub2(x,zu,eps,dmu,eps4mu,gam,xt),
2128   df=[1/x^2+(1+zu(3)/x)/eps4mu, -1/x, -(1-zu(1)/x)/eps4mu, 0
2129       (1-zu(1)/x)/dmu             0    1/x^2              -1/x];
2130 endfunction
2131
2132 // - The function which computes the ith constraint for a given i
2133 function g=gsub2(i,zu),
2134   select i
2135   case 1 then  //x=zeta(1)=0
2136     g=zu(1) //u(0)=0
2137   case 2 then //x=zeta(2)=0
2138     g=-0.3*zu(3) //x*psi'-0.3*psi+0.7x=0
2139   case 3 then //x=zeta(3)=1
2140     g=zu(1) //u(1)=0
2141   case 4 then  //x=zeta(4)=1
2142     g=1*zu(4)-0.3*zu(3)+0.7*1 //x*psi'-0.3*psi+0.7x=0
2143   end
2144 endfunction
2145
2146 // - The function which computes the derivative of gsub with respect to z
2147 function dg=dgsub2(i,z)
2148   select i
2149   case 1 then  //x=zeta(1)=1
2150     dg=[1,0,0,0]
2151   case 2 then //x=zeta(2)=1
2152     dg=[0,0,-0.3,0]
2153   case 3 then //x=zeta(3)=2
2154      dg=[1,0,0,0]
2155   case 4 then  //x=zeta(4)=2
2156     dg=[0,0,-0.3,1]
2157   end
2158 endfunction
2159
2160 gam=1.1
2161 eps=1d-3
2162 dmu=eps
2163 eps4mu=eps^4/dmu
2164 xt=sqrt(2*(gam-1)/gam)
2165
2166 fixpnt=[ ];//All boundary conditions are located at x_low and x_up
2167 collpnt=4;
2168 nsizef=4+3*M+(5+collpnt*N)*(collpnt*N+M)+(2*M-2)*2*M ;
2169 nsizei=3 + collpnt*N+M;;
2170 nmax=200;
2171 //    nonlin  collpnt n  ntol ndimf        ndimi        iprint iread iguess rstart nfxpnt
2172 ipar=[1       k       10 4    nmax*nsizef  nmax*nsizei   -1      0     0      0      0     ]
2173
2174 ltol=1:4;//set tolerance control on zu(1), zu(2), zu(3) and zu(4)
2175 tol=[1.e-5,1.e-5,1.e-5,1.e-5];//set tolreance values for these four controls
2176 xpoints=x_low:0.01:x_up;
2177
2178 zu=bvode(xpoints,N,m,x_low,x_up,zeta,ipar,ltol,tol,fixpnt,...
2179         fsub2,dfsub2,gsub2,dgsub2,guess2);
2180 scf(1);clf();plot(xpoints,zu([1 3],:)) // the evolution of the solution phi and psi
2181
2182 //using an initial guess
2183 // - The function which computes the initial guess, unused here
2184 function [zu,dmval]=guess2(x,gam),
2185    cons=gam*x*(1-x^2/2)
2186    dcons=gam*(1-3*x^2/2)
2187    d2cons=-3*gam*x
2188    dmval=zeros(2,1)
2189    if x>xt then
2190      zu=[0 0 -cons -dcons]
2191      dmval(2)=-d2cons
2192    else
2193      zu=[2*x;2;-2*x+cons;-2*dcons]
2194      dmval(2)=d2cons
2195    end
2196 endfunction 
2197 ipar(9)=1;//iguess
2198
2199 zu2=bvode(xpoints,N,m,x_low,x_up,zeta,ipar,ltol,tol,fixpnt,...
2200         fsub2,dfsub2,gsub2,dgsub2,guess2);
2201 scf(2);clf();plot(xpoints,zu2([1 3],:)) // the evolution of the solution phi and psi
2202  ]]></programlisting>
2203             </listitem>
2204             <listitem>
2205                 <para>
2206                     <emphasis role="bold">固有値問題:</emphasis>
2207                 </para>
2208                 <programlisting role="example"><![CDATA[ 
2209 // y''(x)=-la*y(x)
2210 // BV: y(0)=y'(0); y(1)=0
2211 // Eigenfunctions and eigenvalues are y(x,n)=sin(s(n)*(1-x)), la(n)=s(n)^2,
2212 // where s(n) are the zeros of f(s,n)=s+atan(s)-(n+1)*pi, n=0,1,2,...
2213 // To get a third boundary condition, we choose y(0)=1
2214 // (With y(x) also c*y(x) is a solution for each constant c.)
2215 // We solve the following ode system:
2216 // y''=-la*y
2217 // la'=0
2218 // BV: y(0)=y'(0), y(0)=1; y(1)=0
2219 // z=[y(x) ; y'(x) ; la]
2220
2221 function rhs=fsub(x,z)
2222   rhs=[-z(3)*z(1);0]
2223 endfunction
2224
2225 function g=gsub(i,z)
2226   g=[z(1)-z(2) z(1)-1 z(1)]
2227   g=g(i)
2228 endfunction
2229
2230 // The following start function is good for the first 8 eigenfunctions.
2231 function [z,lhs]=ystart(x,z,la0)
2232   z=[1;0;la0]
2233   lhs=[0;0]
2234 endfunction
2235
2236 a=0;b=1;
2237 m=[2;1];
2238 n=2;
2239 zeta=[a a b];
2240 N=101;
2241 x=linspace(a,b,N)';
2242
2243 // We have s(n)-(n+1/2)*pi -> 0 for n to infinity.
2244 la0=input('n-th eigenvalue: n= ?');la0=(%pi/2+la0*%pi)^2;
2245
2246 z=bvodeS(x,m,n,a,b,fsub,gsub,zeta,ystart=list(ystart,la0));
2247
2248 clf()
2249 plot(x,[z(1,:)' z(2,:)']) 
2250 xtitle(['Startvalue =  '+string(la0);'Eigenvalue = '+string(z(3,1))],'x',' ')
2251 legend(['y(x)';'y''(x)'])
2252  ]]></programlisting>
2253             </listitem>
2254             <listitem>
2255                 <para>
2256                     <emphasis role="bold">一つ以上の解がある多点境界値問題.</emphasis>
2257                 </para>
2258                 <programlisting role="example"><![CDATA[ 
2259 // DE: y''(x)=-exp(y(x))
2260 // BV: y(0)=0; y(1)=0
2261 // This boundary value problem has more than one solution.
2262 // It is demonstrated how to find two of them with the help of
2263 // some preinformation of the solutions y(x) to build the function ystart.
2264 // z=[y(x);y'(x)]
2265
2266 a=0;b=1;m=2;n=1;
2267 zeta=[a b];
2268 N=101;
2269 tol=1e-8*[1 1];
2270 x=linspace(a,b,N);
2271
2272 function rhs=fsub(x,z),rhs=-exp(z(1));endfunction
2273
2274 function g=gsub(i,z)
2275   g=[z(1) z(1)]
2276   g=g(i)
2277 endfunction
2278
2279 function [z,lhs]=ystart(x,z,M) 
2280   //z=[4*x*(1-x)*M ; 4*(1-2*x)*M]
2281   z=[M;0]
2282   //lhs=[-exp(4*x*(1-x)*M)]
2283   lhs=0
2284 endfunction
2285
2286 for M=[1 4]
2287    if M==1
2288       z=bvodeS(x,m,n,a,b,fsub,gsub,zeta,ystart=list(ystart,M),tol=tol);
2289    else
2290       z1=bvodeS(x,m,n,a,b,fsub,gsub,zeta,ystart=list(ystart,M),tol=tol);
2291    end
2292 end
2293
2294 // Integrating the ode yield e.g. the two solutions yex and yex1. 
2295
2296 function y=f(c),y=c.*(1-tanh(sqrt(c)/4).^2)-2;endfunction 
2297 c=fsolve(2,f);
2298
2299 function y=yex(x,c)
2300   y=log(c/2*(1-tanh(sqrt(c)*(1/4-x/2)).^2))
2301 endfunction 
2302
2303 function y=f1(c1), y=2*c1^2+tanh(1/4/c1)^2-1;endfunction
2304 c1=fsolve(0.1,f1);
2305
2306 function y=yex1(x,c1)
2307   y=log((1-tanh((2*x-1)/4/c1).^2)/2/c1/c1)
2308 endfunction 
2309
2310 disp(norm(z(1,:)-yex(x)),'norm(yex(x)-z(1,:))= ')
2311 disp(norm(z1(1,:)-yex1(x)),'norm(yex1(x)-z1(1,:))= ')
2312 clf();
2313 subplot(2,1,1)
2314 plot2d(x,z(1,:),style=[5])
2315 xtitle('Two different solutions','x',' ') 
2316 subplot(2,1,2)
2317 plot2d(x,z1(1,:),style=[5])
2318 xtitle(' ','x',' ')
2319  ]]></programlisting>
2320             </listitem>
2321             <listitem>
2322                 <para>
2323                     <emphasis role="bold">多点境界値問題.</emphasis>
2324                 </para>
2325                 <programlisting role="example"><![CDATA[ 
2326 // DE y'''(x)=1
2327 // z=[y(x);y'(x);y''(x)]
2328 // BV: y(-1)=2 y(1)=2
2329 // Side condition: y(0)=1 
2330
2331 a=-1;b=1;c=0;
2332 // The side condition point c must be included in the array fixpnt.
2333 n=1;
2334 m=[3];
2335
2336 function rhs=fsub(x,z)
2337   rhs=1
2338 endfunction
2339
2340 function g=gsub(i,z)
2341   g=[z(1)-2 z(1)-1 z(1)-2]
2342   g=g(i)
2343 endfunction
2344
2345 N=10;
2346 zeta=[a c b];
2347 x=linspace(a,b,N);
2348
2349 z=bvodeS(x,m,n,a,b,fsub,gsub,zeta,fixpnt=c);
2350           
2351 function y=yex(x)
2352 y=x.^3/6+x.^2-x./6+1
2353 endfunction
2354
2355 disp(norm(yex(x)-z(1,:)),'norm(yex(x)-z(1,:))= ')
2356  ]]></programlisting>
2357             </listitem>
2358         </itemizedlist>
2359     </refsection>
2360     <refsection role="see also">
2361         <title>参照</title>
2362         <simplelist type="inline">
2363             <member>
2364                 <link linkend="link">link</link>
2365             </member>
2366             <member>
2367                 <link linkend="external">external</link>
2368             </member>
2369             <member>
2370                 <link linkend="ode">ode</link>
2371             </member>
2372             <member>
2373                 <link linkend="dassl">dassl</link>
2374             </member>
2375         </simplelist>
2376     </refsection>
2377     <refsection>
2378         <title>使用される関数</title>
2379         <para>この関数は, 以下の作者により開発された
2380             Fortran ルーチン<literal>colnew</literal>
2381             に基づいています.
2382         </para>
2383         <para>U. Ascher, Department of Computer Science, University of British
2384             Columbia, Vancouver, B.C. V6T 1W5, Canada
2385         </para>
2386         <para>G. Bader, institut f. Angewandte mathematik university of
2387             Heidelberg; im Neuenheimer feld 294d-6900 Heidelberg 1
2388         </para>
2389     </refsection>
2390     <refsection>
2391         <title>参考文献</title>
2392         <orderedlist>
2393             <listitem>
2394                 <para>U. Ascher, J. Christiansen and R.D. Russell, collocation
2395                     software for boundary-value ODEs, acm trans. math software 7 (1981),
2396                     209-222. this paper contains EXAMPLES where use of the code is
2397                     demonstrated.
2398                 </para>
2399             </listitem>
2400             <listitem>
2401                 <para>G. Bader and U. Ascher, a new basis implementation for a mixed
2402                     order boundary value ode solver, siam j. scient. stat. comput.
2403                     (1987).
2404                 </para>
2405             </listitem>
2406             <listitem>
2407                 <para>U. Ascher, J. Christiansen and R.D. Russell, a collocation
2408                     solver for mixed order systems of boundary value problems, math. comp.
2409                     33 (1979), 659-679.
2410                 </para>
2411             </listitem>
2412             <listitem>
2413                 <para>U. Ascher, J. Christiansen and R.D. russell, colsys - a
2414                     collocation code for boundary value problems, lecture notes comp.sc.
2415                     76, springer verlag, b. childs et. al. (eds.) (1979), 164-185.
2416                 </para>
2417             </listitem>
2418             <listitem>
2419                 <para>C. Deboor and R. Weiss, solveblok: a package for solving almost
2420                     block diagonal linear systems, acm trans. math. software 6 (1980),
2421                     80-87.
2422                 </para>
2423             </listitem>
2424         </orderedlist>
2425     </refsection>
2426 </refentry>