japanese translation updated.
[scilab.git] / scilab / modules / sparse / help / ja_JP / sparseconvert / adj2sp.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!--
4  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
5  * Copyright (C) 2008 - INRIA
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.1-en.txt
12  *
13  -->
14
15 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="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="adj2sp" xml:lang="ja">
16     
17     <refnamediv>
18         
19         <refname>adj2sp</refname>
20         
21         <refpurpose>隣接形式を疎行列に変換.</refpurpose>
22         
23     </refnamediv>
24     
25     <refsynopsisdiv>
26         
27         <title>呼び出し手順</title>
28         
29         <synopsis>
30             
31             A=adj2sp(xadj,iadj,v)
32             
33             A=adj2sp(xadj,iadj,v,mn)
34             
35         </synopsis>
36         
37     </refsynopsisdiv>
38     
39     <refsection>
40         
41         <title>引数</title>
42         
43         <variablelist>
44             
45             <varlistentry>
46                 
47                 <term>xadj</term>
48                 
49                 <listitem>
50                     
51                     <para>
52                         
53                         長さ (n+1)の整数ベクトル.
54                         
55                         <literal>j=1:n</literal>の場合,
56                         
57                         浮動小数点整数
58                         
59                         <literal>xadj(j+1)-xadj(j)</literal> は
60                         
61                         j列における非ゼロエントリの数です.
62                         
63                     </para>
64                     
65                 </listitem>
66                 
67             </varlistentry>
68             
69             <varlistentry>
70                 
71                 <term>iadj</term>
72                 
73                 <listitem>
74                     
75                     <para>
76                         
77                         nz行1列の浮動小数点整数の行列, 非ゼロエントリの行添字.
78                         
79                         <literal>j=1:n</literal>および, 
80                         
81                         <literal>k = xadj(j):xadj(j+1)-1</literal>に関して, 
82                         
83                         浮動小数点整数 <literal>i = iadj(k)</literal> は
84                         
85                         非ゼロエントリ #k の行添字です.
86                         
87                     </para>
88                     
89                 </listitem>
90                 
91             </varlistentry>
92             
93             <varlistentry>
94                 
95                 <term>v</term>
96                 
97                 <listitem>
98                     
99                     <para>
100                         
101                         nz行1列の浮動小数点整数の行列, Aの非ゼロエントリ.
102                         
103                         <literal>j=1:n</literal>および, 
104                         
105                         <literal>k = xadj(j):xadj(j+1)-1</literal>に関して, 
106                         
107                         浮動小数点整数<literal>Aij = v(k)</literal>は
108                         
109                         非ゼロエントリ #k の値です.
110                         
111                     </para>
112                     
113                 </listitem>
114                 
115             </varlistentry>
116             
117             <varlistentry>
118                 
119                 <term>mn</term>
120                 
121                 <listitem>
122                     
123                     <para>
124                         
125                         1行2列または2行1列の浮動小数点整数の行列(オプション),
126                         
127                         <literal>mn(1)</literal> はAの行数,
128                         
129                         <literal>mn(2)</literal> はAの列数です.
130                         
131                         <literal>mn</literal> が指定されない場合, 
132                         
133                         <literal>mn=[m,n]</literal> は,
134                         
135                         <literal>m=max(iadj)</literal> および
136                         
137                         <literal>n=size(xadj,"*")-1</literal>がデフォルトとなります.
138                         
139                     </para>
140                     
141                 </listitem>
142                 
143             </varlistentry>
144             
145             <varlistentry>
146                 
147                 <term>A</term>
148                 
149                 <listitem>
150                     
151                     <para>m行n列実数または複素数の疎行列 (nz 個の非ゼロエントリ)</para>
152                     
153                 </listitem>
154                 
155             </varlistentry>
156             
157         </variablelist>
158         
159     </refsection>
160     
161     <refsection>
162         
163         <title>説明</title>
164         
165         <para>
166             
167             adj2sp は,隣接形式を疎行列に変換します.
168             
169             隣接形式の値は列毎に保存されています.
170             
171             これは,この形式がしばしば
172             
173             "Compressed sparse column" または CSCと呼ばれる理由です.
174             
175         </para>
176         
177     </refsection>
178     
179     <refsection>
180         
181         <title>例</title>
182         
183         <para>
184             
185             以下の例では,隣接形式から疎行列を作成します.
186             
187             その後,期待した疎行列と一致するかどうかを確認します.
188             
189         </para>
190         
191         <programlisting role="example"><![CDATA[
192 xadj = [1 3 4 7 9 11]';
193 iadj = [3 5 3 1 2 4 3 5 1 4]';
194 v = [1 2 3 4 5 6 7 8 9 10]';
195 B=adj2sp(xadj,iadj,v)
196 A = [
197 0 0 4 0 9
198 0 0 5 0 0
199 1 3 0 7 0
200 0 0 6 0 10
201 2 0 0 8 0
202 ];
203 C=sparse(A)
204 and(B==C)
205  ]]></programlisting>
206         
207         <para>
208             
209             以下の例では,隣接形式から疎行列を作成します.
210             
211             その後,期待した疎行列と一致するかどうかを確認します.
212             
213         </para>
214         
215         <programlisting role="example"><![CDATA[
216 xadj = [1 2 3 4 5 5 6 6 7 8 9]';
217 iadj = [2 5 2 3 1 2 7 6]';
218 v = [3 7 5 3 6 5 2 3]';
219 C=adj2sp(xadj,iadj,v)
220 A = [
221 0 0 0 0 0 6 0 0 0 0
222 3 0 5 0 0 0 0 5 0 0
223 0 0 0 3 0 0 0 0 0 0
224 0 0 0 0 0 0 0 0 0 0
225 0 7 0 0 0 0 0 0 0 0
226 0 0 0 0 0 0 0 0 0 3
227 0 0 0 0 0 0 0 0 2 0
228 ];
229 B=sparse(A)
230 and(B==C)
231  ]]></programlisting>
232         
233         <para>
234             
235             以下の例では,mnパラメータの使用法を確認します.
236             
237             mnパラメータとxadjおよびiadjの実際の内容の整合性をadj2spで確認します.
238             
239         </para>
240         
241         <programlisting role="example"><![CDATA[
242 xadj = [1 2 3 4 5 5 6 6 7 8 9]';
243 iadj = [2 5 2 3 1 2 7 6]';
244 v = [3 7 5 3 6 5 2 3]';
245 mn=[7 10];
246 C=adj2sp(xadj,iadj,v,mn)
247  ]]></programlisting>
248         
249         <para>
250             
251             以下の例では,3行3列の疎行列を作成します.
252             
253             この例は, SciPyの文書からの引用です.
254             
255         </para>
256         
257         <programlisting role="example"><![CDATA[
258 xadj =  [1,3,4,7]
259 iadj =  [1,3,3,1,2,3]
260 v = [1,2,3,4,5,6]
261 full(adj2sp(xadj,iadj,v))
262  ]]></programlisting>
263         
264         <para>
265             
266             前のスクリプトは以下の出力を生成します.
267             
268         </para>
269         
270         <programlisting role="no-scilab-exec"><![CDATA[
271 -->full(adj2sp(xadj,iadj,v))
272  ans  =
273     1.    0.    4.
274     0.    0.    5.
275     2.    3.    6.
276  ]]></programlisting>
277         
278         <para>
279             
280             以下の例では,sp2adjおよびadj2sp関数が逆関数であることを
281             
282             確認します.
283             
284         </para>
285         
286         <programlisting role="example"><![CDATA[
287 // Templates for the Solution of Algebraic Eigenvalue Problems: a Practical Guide
288 // Edited by Zhaojun Bai, James Demmel, Jack Dongarra, Axel Ruhe, and Henk van der Vorst
289 // "Sparse Matrix Storage Formats", J. Dongarra
290 // http://web.eecs.utk.edu/~dongarra/etemplates/book.html
291
292 A = [
293 10 0 0 0 -2 0
294 3 9 0 0 0 3
295 0 7 8 7 0 0
296 3 0 8 7 5 0
297 0 8 0 9 9 13
298 0 4 0 0 2 -1
299 ];
300 A = sparse(A)
301
302 // To get the Compressed Sparse Column (CSC) :
303 [col_ptr,row_ind,val]=sp2adj(A)
304 // To convert back to sparse:
305 AAsp=adj2sp(col_ptr,row_ind,val)
306 // Check the conversion
307 AAsp - A
308
309 // To get the Compressed Sparse Row (CSR) :
310 [row_ptr,col_ind,val]=sp2adj(A')
311 // To convert back to sparse:
312 AAsp=adj2sp(row_ptr,col_ind,val)'
313 // Check the conversion
314 AAsp - A
315  ]]></programlisting>
316         
317     </refsection>
318     
319     <refsection role="see also">
320         
321         <title>参照</title>
322         
323         <simplelist type="inline">
324             
325             <member>
326                 
327                 <link linkend="sp2adj">sp2adj</link>
328                 
329             </member>
330             
331             <member>
332                 
333                 <link linkend="sparse">sparse</link>
334                 
335             </member>
336             
337             <member>
338                 
339                 <link linkend="spcompack">spcompack</link>
340                 
341             </member>
342             
343             <member>
344                 
345                 <link linkend="spget">spget</link>
346                 
347             </member>
348             
349         </simplelist>
350         
351     </refsection>
352     
353     <refsection>
354         
355         <title>参考文献</title>
356         
357         <para>
358             
359             "Implementation of Lipsol in Scilab", Hector E. Rubio Scola, INRIA, Decembre 1997, Rapport Technique No 0215
360             
361         </para>
362         
363         <para>
364             
365             "Solving Large Linear Optimization Problems with Scilab : Application to Multicommodity Problems", Hector E. Rubio Scola, Janvier 1999, Rapport Technique No 0227
366             
367         </para>
368         
369         <para>
370             
371             "Toolbox Scilab : Detection signal design for failure detection and isolation for linear dynamic systems User's Guide", Hector E. Rubio Scola, 2000, Rapport Technique No 0241
372             
373         </para>
374         
375         <para>
376             
377             "Computer Solution of Large Sparse Positive Definite Systems", A. George, Prentice-Hall, Inc. Englewood Cliffs, New Jersey, 1981.
378             
379         </para>
380         
381     </refsection>
382     
383 </refentry>
384