<?xml version="1.0" encoding="UTF-8"?>

<!--
 * Scilab ( http://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:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="det">

    <refnamediv>

        <refname>det</refname>

        <refpurpose>行列式</refpurpose>

    </refnamediv>

    <refsynopsisdiv>

        <title>呼出し手順</title>

        <synopsis>det(X)

            [e,m]=det(X)

        </synopsis>

    </refsynopsisdiv>

    <refsection>

        <title>引数</title>

        <variablelist>

            <varlistentry>

                <term>X</term>

                <listitem>

                    <para>実数または複素正方行列, 多項式または有理行列.</para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>m</term>

                <listitem>

                    <para>実数または複素数, 行列式の 10 を基底とする仮数</para>

                </listitem>

            </varlistentry>

            <varlistentry>

                <term>e</term>

                <listitem>

                    <para>整数, 行列式の 10 を基底とする指数</para>

                </listitem>

            </varlistentry>

        </variablelist>

    </refsection>

    <refsection>

        <title>説明</title>

        <para>

            <literal>det(X)</literal> (<literal>m*10^e</literal>)は,

            正方行列<literal>X</literal>の行列式です.

        </para>

        <para>

            多項式行列の場合,<literal>det(X)</literal> は

            <literal>determ(X)</literal>と等しくなります.

        </para>

        <para>

            有理数行列の場合, <literal>det(X)</literal> は

            <literal>detr(X)</literal>と等しくなります.

        </para>

        <para>

            <important>

                <literal>det</literal> および <literal>detr</literal> 関数は

                同じアルゴリズムを使用しません.

                有理数関数の場合, <literal>det(X)</literal> は

                <literal>determ</literal>関数に基づく

                <literal>%r_det(X)</literal> でオーバーロードされます.

                <literal>detr()</literal> は, Leverrier法を使用します.

            </important>

            <warning>

                時々,

                <literal>det</literal> および <literal>detr</literal> 関数は

                有理数関数と異なる値を返す可能性があります.

                このような場合,同じ結果を得るために,

                有理数は<code>simp_mode(%f)</code>を使用することにより

                有理数を簡単化するモードを無効にする必要があります.

            </warning>

        </para>

    </refsection>

    <refsection role="see also">

        <title>参照</title>

        <para>

            det の計算は Lapack ルーチン DGETRF (実数行列の場合) および

            ZGETRF (複素数の場合)に基づいています.

        </para>

        <para>

            疎行列の場合, 行列式は umfpack ライブラリのLU分解により得られます.

        </para>

    </refsection>

    <refsection>

        <title>例</title>

        <programlisting role="example"><![CDATA[
x=poly(0,'x');
det([x,1+x;2-x,x^2])
w=ssrand(2,2,4);roots(det(systmat(w))),trzeros(w)   //線形システムのゼロ
A=rand(3,3);
det(A), prod(spec(A))
 ]]></programlisting>

    </refsection>

    <refsection>

        <title>参照</title>

        <simplelist type="inline">

            <member>

                <link linkend="detr">detr</link>

            </member>

            <member>

                <link linkend="determ">determ</link>

            </member>

            <member>

                <link linkend="simp_mode">simp_mode</link>

            </member>

        </simplelist>

    </refsection>

</refentry>

