<?xml version="1.0" encoding="UTF-8"?>
<!--
 * Scilab ( https://www.scilab.org/ ) - This file is part of Scilab
 * Copyright (C) 2008 - INRIA
 * ...
 *
 * Copyright (C) 2012 - 2016 - Scilab Enterprises
 *
 * This file is hereby licensed under the terms of the GNU GPL v2.0,
 * pursuant to article 5.3.4 of the CeCILL v.2.1.
 * This file was originally licensed under the terms of the CeCILL v2.1,
 * and continues to be available under such terms.
 * For more information, see the COPYING file which you should have received
 * along with this program.
 *
 -->
<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="daeoptions" xml:lang="ja">
    <refnamediv>
        <refname>daeoptions</refname>
        <refpurpose>daeソルバのオプションを設定</refpurpose>
    </refnamediv>
    <refsynopsisdiv>
        <title>呼出し手順</title>
        <synopsis>daeoptions()</synopsis>
    </refsynopsisdiv>
    <refsection>
        <title>説明</title>
        <para>
            dae関数の呼び出しコンテキストに変数
            <literal>%DAEOPTIONS</literal>が存在した場合,
            <literal>dae</literal>関数はこれをオプションとして設定します.
        </para>
        <para>
            この daeoptions 関数は,<link linkend="dae">dae</link>
            ソルバの様々なオプションを設定する際に
            実行されるコマンドを対話的に表示します.
        </para>
        <para>
            <caution>
                注意: <literal>dae</literal>関数は
                この変数が存在するかどうかを確認し,存在する場合にはこれを使用します.
                デフォルト値を使用する場合にはこの変数を消去する必要があります.
                <literal>daeoptions</literal> は
                この変数を作成しないことに注意してください.この変数を作成するには,
                <literal>daeoptions</literal>で表示されるコマンド行で実行する
                必要があります.
            </caution>
        </para>
        <para>
            変数 <literal>%DAEOPTIONS</literal> は
            以下の要素を有する <link linkend="list">リスト</link>です:
        </para>
        <screen><![CDATA[
list(tstop, imode, band, maxstep, stepin, nonneg, isest)
]]></screen>
        <para>デフォルト値は:</para>
        <screen><![CDATA[
list([],0,[],[],[],0,0)
]]></screen>
        <para>要素の意味を以下に示します.</para>
        <variablelist>
            <varlistentry>
                <term>solver</term>
                <listitem>
                    <para>
                        0の場合, <literal>dae</literal> は dassl/dasrtソルバを使用します,
                        1の場合, <literal>dae</literal> は daskrを使用します.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>tstop</term>
                <listitem>
                    <para>実数スカラーまたは空の行列で, 許容される
                        <literal>g </literal>の評価の最大回数を指定します.
                        空の行列は回数の"制限なし"を意味します.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>imode</term>
                <listitem>
                    <para>0 を指定した場合, dae は
                        ユーザが指定した時間での値のみを返します.
                        1を指定した場合, dae は計算した経過値を返します.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>band</term>
                <listitem>
                    <para>2個の要素を有するベクトルで,
                        <literal>jac</literal> で計算された帯行列の定義
                        <literal>[ml,mu]</literal>を指定します.
                    </para>
                    <para>
                        <literal>r(i - j + ml + mu + 1,j)</literal> =
                        <literal>dg(i)/dy(j)+cj*dg(i)/dydot(j)</literal> .
                        <literal>jac</literal> が完全な行列を返す場合,
                        <literal>band=[]</literal>を指定します
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>maxstep</term>
                <listitem>
                    <para>スカラーまたは空の行列で, ステップの最大値.
                        空の行列は"指定なし"を意味します.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>stepin</term>
                <listitem>
                    <para>スカラーまたは空の行列で, ステップの最小値.
                        空の行列は"指定なし"を意味します.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>nonneg</term>
                <listitem>
                    <para>
                        スカラーで, <literal>解が
                            非負であることが既知の場合
                        </literal>
                        には 0 とする
                        必要があります.
                        その他の場合には 1 に設定する必要があります.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>isest</term>
                <listitem>
                    <para>スカラーで,
                        指定した初期条件が以下と互換の場合には0 とする
                        必要があります
                        : <literal>g(t0,x0,xdot0)=0</literal>.
                        <literal>xdot0</literal>が単なる推定値である場合には
                        1 に設定します.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>method</term>
                <listitem>
                    <para>
                        スカラー, 直接 / Krylov 法.
                        ソルバでKrylov反復を使用したい場合,
                        <literal>1</literal>に設定し,ルーチン
                        <literal>psol</literal>を<literal>dae()</literal>に指定します.
                        それ以外(daskrの直接法)は<literal>0</literal>を指定します.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>Kry_params</term>
                <listitem>
                    <para>
                        ベクトル,
                        method=0を設定した場合はダミー変数として扱われます.
                        その他の場合,<literal>[]</literal>または
                        <literal>[maxl kmp nrmax epli]</literal>に設定します.
                        ただし:
                        - <literal>maxl </literal> = GMResアルゴリズムの最大反復回数 (デフォルト min(5, neq)),
                        - <literal>kmp  </literal> = GMResアルゴリズムにおいて直交化を行うベクトルの数 (デフォルト maxl),
                        - <literal>nrmax</literal> = 非線形反復毎のGMResアルゴリズムの再スタートの最大回数(デフォルト 5),
                        - <literal>epli </literal> = GMResアルゴリズムの収束確認定数 (デフォルト 0.05).
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>init</term>
                <listitem>
                    <para>
                        スカラー, isest=0と設定した場合はダミー引数として扱われます.
                        初期条件の計算後にソルバを停止する場合は1, それ以外は0を設定します.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>precond</term>
                <listitem>
                    <para>
                        スカラー, <literal>psol</literal>用のプリコンディショナ計算および
                        LU分解ルーチン.
                        method=0の場合,ダミー引数として扱われます.
                        外部ルーチン<literal>psol</literal>が特定のルーチンを
                        使用する必要がある場合,
                        1に設定し,  <literal>dae</literal>に
                        <literal>pjac</literal>ルーチンを提供します.
                        それ以外は 0を指定します.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>control</term>
                <listitem>
                    <para>
                        ベクトル, isest=0を指定した場合はダミー引数として扱われます.
                        全ての変数のエラーをローカルに制御したい場合,
                        [] を指定します.
                        そうでない場合, [+-1, ..., +-1]を設定します.
                        ただし,
                        <literal>y(i)</literal> が微分変数の場合は 1,
                        <literal>y(i)</literal> が代数変数
                        (この微分が関数<literal>g(t, y, ydot)</literal>に明示的に
                        現れない)の場合は -1とします.
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>heuristic</term>
                <listitem>
                    <para>
                        ベクトル, 経験的パラメータ.
                        isest=0の場合はダミー引数として扱われます.
                        そうでない場合, [] または
                        <literal>[mxnit mxnj mxnh lsoff stptol epinit]</literal>に
                        設定します, ただし:
                        - <literal>mxnit</literal>  = ヤコビアンまたはプリコンディショナ評価毎のニュートン反復の最大回数
                        (デフォルト: info(8)=0の場合は 5, それ以外は 15),
                        - <literal>mxnj</literal>   = ヤコビアンまたはプリコンディショナ評価の最大回数
                        (デフォルト: info(8)=0の場合は 6, それ以外は 2),
                        - <literal>mxnh</literal>   = info(7) ≠ [] の時に試行する人工的ステップサイズパラメータ h の最大値
                        (デフォルト 5),
                        - <literal>lsoff</literal>  = ライン探索アルゴリズムを無効にするフラグ
                        (lsoff = 0 はライン探索をオン, lsoff = 1 はオフにすることを意味します) (デフォルト: 0),
                        - <literal>stptol</literal> = ライン探索アルゴリズムの最小ステップ (デフォルト (unit roundoff)^(2/3)),
                        - <literal>epinit</literal> = ニュートン反復収束確認のスイング係数(デフォルト 0.01).
                    </para>
                </listitem>
            </varlistentry>
            <varlistentry>
                <term>verbosity</term>
                <listitem>
                    <para>
                        スカラー, 冗長度. 外部出力を最小にする場合は 1, 完全に出力する場合は 2,
                        それ以外は 0に設定します.
                    </para>
                </listitem>
            </varlistentry>
        </variablelist>
    </refsection>
    <refsection role="see also">
        <title>参照</title>
        <simplelist type="inline">
            <member>
                <link linkend="dae">dae</link>
            </member>
        </simplelist>
    </refsection>
</refentry>