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