CLAPACKの動作について

このエントリーをはてなブックマークに追加
1名無し@タコグラマー
CLAPACK利用して以下のプログラムを走らせると
正しい答えだしてくれませんん。
何がわるいかわかりますか?

ちなみに、一般帯行列Aを利用した[A]{x}={b}
を解いています。
サブルーチンにいれる行列形式は帯格納形式です。

#include <stdio.h>
#define N 4
int main(void)
{
double A[N*N];
double x[N];
int i;
long int n=N,kl=1,ku=1,nrhs=1,ldab,ldb,info,piv[N];
ldab=2*kl+ku+1;
ldb=N;
A[0]=0.;A[1]=0.;A[2]=0.;A[3]=0.;
A[4]=0.;A[5]=-1.;A[6]=-1.;A[7]=-1.;
A[8]=2.;A[9]=2.;A[10]=2.;A[11]=2.;
A[12]=-1.;A[13]=-1.;A[14]=-1.;A[15]=0.;
x[0]=5.;x[1]=5.;x[2]=5.;x[3]=5.;
printf("N = %d\n",N);

dgbsv_(&n,&kl,&ku,&nrhs,A,&ldab,piv,x,&ldb,&info);

printf("info= %ld\n",info);
for(i=0;i<N;++i) printf("%f\n",x[i]);
return 0;
}
2??????^?R?O???}?[:01/11/01 15:57
事故解決しちゃいました。
LAPACKて行列を転置状態で入れるんですね
はぁ〜(*o*;)
3名無しさん@1周年:01/11/02 08:23
CLAPACKってFortranのLAPACKを機械的にf2cかけただけの
ようなものだから、行と列が逆になっちゃんだよね。
4名無しさん@1周年:01/11/05 12:45
CLAPACKについて解説してある日本語のホームページって無いかな?
いちいちソース見て調べるのめんどい。
5ななし忠象:01/11/05 18:52
一緒に作りませんか?↑CLAPACK使う人だと、小国力の本使いにくいし
6QR:01/11/05 18:59
>>5
やるなら私も参加したいな。
7CC名無したん:01/11/06 00:30
CLAPACKってオリジナルの英語の解説も不親切だよね。
しかも、ソースのコメント文はFORTRANのそのまんま
だったりするので、1さんみたいに苦労しちゃうんだよね。
>>5
ぜひ、りっぱな日本語解説ページを作ってください♪
影で応援しますので
8名無しさん@1周年:01/11/06 08:04
普通にFORTRAN使えばいいじゃん。
関数呼び出すだけの簡単なプログラムならいいけど
多次元配列を引数にもつ汎用のサブルーチンを自分で
作る場合の手間を考えれば数値計算にCを使う必然性はないと思うよ。
9名無しさん@1周年:01/11/06 09:36
ただ、どうしてもC使わなきゃいけない、って状況もあるからねえ。
学術的な意味とは関係なく。
うちは共通言語がCなので、CLAPACKの日本語解説は欲しいな。
10名無し@タコグラマー :01/11/06 14:39
http://isweb1.infoseek.co.jp/~gps/
こんな感じのを作ってみましたが、どうでしょうか?
他に、インストールの仕方とか LAPACKとCLAPACKの違いとかも
書きましたけど・・・。
11QR:01/11/06 22:06
>>10
サンプルプログラムまで付いているってのは素晴らしい.
ところで,図の右側,a_12であるべきところがa_21になってますね.
(2列目の最初の非ゼロ要素)
12名無しさん@1周年:01/11/07 08:22
>>10
良い感じ!
ルーチン多いっす。ぱっと見で 主ルーチンだけで180個
先長い ToT
14名無しさん@1周年:01/11/12 22:17
サンプルプログラムがイケてない...

てかおかしくない?
行と列が逆なのはいいとして,
double AB[]={
1,3,1,0,0,0,
2,2,1,2,0,0,
0,1,1,1,-1,0,
0,0,1,2,-1,1,
0,0,0,-1,2,1,
0,0,0,0,1,1
};
じゃないの???
15名無しさん@1周年:01/11/12 22:18
>>10
>>15
そうじゃないの ToT

んで、配列格納の方法に文句あるなら
早稲田の大石先生の文句言ってYO (・A・)ノ
17ニードルマン:01/11/22 16:10
>>16
日本語の使えるマニュアル作るの頑張ってください。
出来上がり次第使わせていただきます。 ガバレー
18木之本さくら:01/11/22 19:39
私も期待してますの。がんばってくださいね。
ところで、CLAPACKを使うときって
#include "f2c.h"
#include "clapack.h"

と唱えないといけないとおもうんだけど、どうなん?
19名無し@タコグラマー :01/11/25 00:58
うーん、AlphaマシンのGccでコンパイルする限りでは
#include "f2c.h"
#include "clapack.h"
入れなくてもコンパイルできちゃうんですが。
実際どうなんでしょう。コンパイルできない環境の方っています?

詳しい方がいらっしゃったら、なぜ上のヘッダ二つインクルードしないのに
コンパイルできるのか教えてください。
20メチャ初心者:01/12/04 13:09
非対称行列(非エルミート)の固有値と固有ベクトルを求めるには
いきなりzgeev使えばいいのでしょうか?
複素数の扱いかたがわかりません。
それと右固有ベクトルと左固有ベクトルって何でしょうか?
21名無し@タコグラマー:01/12/04 17:49
>>20
f2c.hを見ればわかると思うけど、
Lapackの複素数型は構造体でし。
だから、下のような感じで定義して、
引数をzgeevに渡してくださいませ。

complex c[100];
c[1].r=1.0;

ちなみに、高校課程で習うのは右固有ベクトルでし。
[A]{x}=λ{x} の式で求まる。
左固有ベクトルは
{x}^T [A] = λ{x}^T
の式で求まる。  因
22木之本さくら:01/12/05 12:48
>>19
>うーん、AlphaマシンのGccでコンパイルする限りでは
> #include "f2c.h"
> #include "clapack.h"
> 入れなくてもコンパイルできちゃうんですが。

ほぇ〜。さすがアルファさんだね。
きっと、GCCさんを作るときに細工をしているのね。
gcc -v するとspecsファイルの居場所を教えてくれるから
そのファイルを見たら、細工がわかるかもね。

普通にGCCを作って、CLAPACKも後からインストールしたら
絶対これらのインクルードファイルは必要だと思うんだけど
どうなんでしょうかしら。
23メチャ初心者:01/12/05 13:01
こ、構造体?
わからん
鬱出しの鵜
24名無しさん@1周年:01/12/05 17:29
逆行列を求めるにはなんという関数を使えばいいのですか?
25名無し@タコグラマー:01/12/06 16:48
>>23
K&Rの プログラム言語C の本でも読んでください。
1日で読みきれると思います。(笑

>>25
実数型の逆行列を求める場合は
dgesvルーチンを利用します。

このルーチンは
[A]{x}={b}
を解くためのものですが、{b}の部分を単位行列にすれば
[A][x]=[I]
となるので、
[x]=[A]^-1 [I]
となり、逆行列が求まりますです。   因
26名無しさん@1周年:01/12/07 12:45
このスレは勉強になるなあ。
27名無しさん@1周年:01/12/08 13:39
引数のldaとかldvlとかって何なの?
28名無しさん@1周年:01/12/08 17:45
>>25
はぁ、、、
[A]^-1 、、、ねぇ。
ちゃんと数値計算勉強したら?
29名無し@タコグラマー :01/12/10 16:12
>>27
小国 力 先生の LAPACKの手引という本を参考にしてください。
あとは、英語のマニュアルはネット上にゴロゴロころがっているので
参考にしてください。

>>28
文句言う暇あるならば、質問に対するマジレスしろって〜。
ちなみに、当方は数値計算屋じゃないので、悪しからず。 因
30ななしさん:01/12/10 18:04
>>28
論点が分からん.
[A]^-1 を求めるのは,直接方程式を解くのに比べて,
 精度が良くないと言いたいの?
dgesvルーチンは内部でLUを使っているから,それ程精度は悪くならないし,
解きたい{b}の数が多い場合には,[A]^-1を求めたほうが高速だから,
言わばトレードオフの関係です.

#include "f2c.h"
#include "clapack.h"
は,入れても入れなくても良い.
入れなかった場合には,ソースのどこかで,externを呼ばなければならない.
31さくら:01/12/10 20:37
>>30
>#include "f2c.h"
>#include "clapack.h"
>は,入れても入れなくても良い.
>入れなかった場合には,ソースのどこかで,externを呼ばなければならない.
ふ〜ん、そうなんだぁ。 でもCLAPACKの関数って引数に integerとかcomplex
とかC言語では定義されていない変数を使っているから、extern宣言だけで
うまく使えるの?
32ななしさん:01/12/11 04:50
>>31
integerは,intをtypedefしているだけ.
complexは,ただの構造体だから,structの中に,doubleを2つ突っ込んで
勝手な名前を付けておけば同じになります.呼び出す時は,void*にするのを
忘れないように.老婆心ながら書くと,

extern "C" {
int zgegv_(char *jobvl, char *jobvr, int *n,
void* a, int* lda, void* b, int* ldb,
void* alpha, void* beta, void* vl, int* ldvl,
void* vr, int* ldvr, void* work, int* lwork,
void* rwork, int* info);
}

※integerは,機種によっては,intでは無いかも.
33名無しさん@1周年:01/12/12 03:06
>>30=32
integer に int 突っ込んだりとか complex に double 突っ込んだりとかって、
せっかくの CLAPACK の厚意を反故にしてる気がします(笑)
void* 使ったりとか、あんまりトリッキーなことしなくても、
普通に #include して integer とか complex 使ったほうがいいと思います......
なんて話は30=32 さんはわかっててネタとして書いたんでしょうけどね......

> ※integerは,機種によっては,intでは無いかも.
integer が機種によっては 32bit では無いかもということかな?
まあ int が 32bit ではない機種にはシミュレーション用途では
いまだにお目にかかったことがないですねー
3433:01/12/12 03:09
しまったー。とりいそぎ逝ってきますので、後半は見逃してください。
35ななしさん:01/12/12 15:57
>>33
complex型は、ほかのライブラリーで定義されている場合が多いので、
何も考えず、インクルードすると、競合してコンパイルできなくなること
があります。たとえば、stlとか、まあ、挙げたらきりがありません。
3633:01/12/12 17:09
>>35
最近ちょっと今の仕事が Java になってて C++ が過去の記憶になってるけど、

namespace CLAPACK {
#include <f2c.h>
#include <clapack.h>
}

CLAPACK::complex foo;
std::complex<double> bar;

とかできなかったかなぁ。
いや、記憶違いな可能性もかなりありますから sage ときます。
37ななしさん:01/12/12 18:25
>>36
出来るかもしれませんが、普通の人は、namespaceをあまり考えず、
using namespace std;
と書いてしまうので、namespaceが干渉します。
まあ、逃げ道はいくらでもありますが。
C++を使うのなら、newmat,tnt,lapack++などと他にもっと選択肢がありますが。
個人的には、newmatが好きですな。
38さくら:01/12/12 19:32
lapack++ってまだLAPACKの全ての関数を移植し終わっていなかったと
思いましたけど、どうでしたかしら?
39ななしさん:01/12/13 01:49
>>37
ご指摘の通り,lapack++は完全移植し終わっていません.
というより,もうこれ以上進化しないでしょう.
というのは,行列計算ライブラリの開発をtntに投げてしまっているからです.
だからといって,tntは,sparseもbandもサポートしていないので,有限要素法
などの大規模計算には不向きです.
lapack++やtntを使いながら,sparseやbandの高速ルーチンを利用したいのであれば,
sparseやbandの構造体(クラス)を自作して,
ルーチンだけをlapackのものを使うと言うのがベストだと考えられます.
なお,個人的に私が気に入っているのは,newmatです.
これはbandはサポートしていますが,sparseはサポートしていません.
まあ,sparseの形式では,効率良く逆行列を作ることは出来ないので,
どうしてもsparseを使いたいと言う状況になったら,自作するのがベストだと思います.
高速化したいのでしたら,blasで高速化しても良いし.
40sakura:01/12/13 12:27
>>39
とっても勉強になりました。どうもありがとう。

さすが、偏差値トップの板だねっ<ココ
41名無しさん@1周年:01/12/13 15:09
ピクミンみました。
北千束にいました。

ほんとうですよ。
42名無しさん@1周年:01/12/15 14:58
clapackの日本語マニュアルはないのですか?
43   :01/12/16 03:53
それに近いものはあります。サーチエンジンもしくは
図書の文献サーチで探してみてはどう?
44名無しさん@1周年:01/12/16 17:52
>>43
ないんですけど。英語わからんし。
45名無しさん@1周年:01/12/17 00:18
真面目に探せよ。
少なくともこのスレでも話題に上がった
小国力「行列計算パッケージ LAPACK 利用の手引き」くらいは見つけ
られると思うぞ。
46名無しさん@1周年:01/12/18 12:28
>>44
英語わからんなんて言っていたらこの業界やっていけないんと
ちゃう?
47名無しさん@1周年:01/12/18 13:48
>>46
うるせーよコノヤロウ!
俺はスワヒリ語ペラペラなんだよ!
48名無しさん@1周年:01/12/18 16:50
英語わからなくても いいんちゃう?
触れていればそのうち、わかるようになるし

なにごとも 好きであれば 乗り越えられるからね〜

小国 力 先生の本は 直訳だし 辞書あれば 原書読んでいるのと
おなじだからな〜。 あれで 英語訳した と いわれてもなーーー
どうかとおもうよ。。。。。。
49    :01/12/22 23:28
50名無しさん@1周年:01/12/23 17:58
日本語解説アプしてくれー
51エスパー移動:02/01/11 19:28
高速日本語解説  シュシュシュシュシュ
52888:02/01/11 20:25
まずこの本を読んでみれ。マジで。
http://www.puchiwara.com/hacking/
「こんなひでえ事実もあるもんだなオイ」
ってなことがわかる。
53名無しさん@1周年:02/01/24 12:34
早く日本語を!!
54名無しさん@1周年:02/02/24 21:49
windows,c++でやるならTNTいけるかな?
55名無しさん@1周年:02/05/08 18:33
CでLAPACK使おうとすると、1次元配列にしないといけないのがヤッカイですね。
56名無しさん@1周年:02/09/07 01:37
C単体で特異値分解のプログラムないかなーって探したら、ここにたどり着きました。
下手に作るより、CLAPACKを使った方が良さそうですね…
57名無しさん@1周年:02/09/10 14:01
>>55
それよりも、CLAPACKって、F2Cかけただけだから
仕様がわかりづらくない?
漏れはついていけない。
58名無しさん@1周年:02/09/10 14:54
>>56
Numerical Recipes in Cのsvdcmp()は使いやすいよ.
CLAPACKのように許容誤差とか精度とかの細かい設定をしなくてもいいから.

ただ,引数の配列はfloat a[1..n][1..m]のように添え字を1から使うものとして
プログラムが書かれてるから,2次元配列などは,専用の関数を使って宣言しないと
いけない.そこが少し面倒.
5956:02/09/10 23:01
>>58

おお!まさにタイムリー!
↑の書き込み以来、VCでCLAPACKを使おうと悪戦苦闘、
結局できずに途方にくれているときに件の本をハケーン

ソースも書いてあって、(●∀・)イイ!!
個人的に1冊欲しくなった…

後半の部分ですが、漏れは他の行列計算にどっかにあった
行列計算用のクラスを使っているんで、どちらにしろ直には使えないようなんで
特に気にしていません。(って、何も考えてないわけではないですが
60Y2J:02/09/12 17:31
>>59
VCでのCLAPACKのインストールは
http://stat.scphys.kyoto-u.ac.jp/~ryoichi/CP/visualc.html
に説明がありますよ。
6156:02/09/13 01:09
>>60

一応、それにしたがってビルドしてできあがったlibをlibフォルダに入れて
f2c.hをインクルードしたんですが、できませんでした…
まぁ、定義されてないと言われているので
clapack.hみたいなのがないとだめなような気がするんですが。
62名無しさん@1周年:02/09/13 03:10
63名無しさん@1周年:02/09/13 03:54
ビルドでエラーが1300個出た。(T-T)<VC5だから?
64名無しさん@1周年:02/09/13 04:39
>>63
VC5 だからってことはないと思うよ。
たぶん、あんたの母親が子供のころ曾祖父さんの棺桶に
面白半分で入れた小猫の祟りじゃないかな。勘だけど。
65qq:02/09/13 06:04
66名無しさん@1周年:02/09/13 10:58
6756:02/09/17 16:18
>>62

まさに、その事態でそこにあった通りやってもできなかった…
(´・ω・`)

で、同時にやってたNumerical Recipeのsvdcmpもその通りに
打ち込んでもちゃんと計算してくんない…
(´・ω・`)

いまどき、本見て打ち込むのやんないよなぁ…でも、プログラム集CD
ないし、誰か(略
(´・ω・`)
68Y2J:02/09/17 16:31
>>61
使用されているCPUがIntelのものであれば,
同じページに解説のあるIntelの数値演算ライブラリ
を使った方がいいと思います。これをインストールしただけで,
CLAPACKと同じものが使えます。
(違いは関数名の"_"がいらなくなる位だとおもいます。)
ちなみに私もこれを利用しているので,ご質問には答えられません(^^;
69コギャルとH:02/09/17 18:07
わりきり出会い 

 http://go.iclub.to/bbqw/
  
PC/i/j/ez/対応してます 

女子中高生とわりきり出会い!
女性訪問者多数、書き込み中
完全メアド非公開女性無料!
男性有料ラッキナンバー
(111,333,555,777,999)
当選者には永久会員
パスワードと1万円プレゼント!!
7062:02/09/17 18:51
>>67
それって、環境設定ができてないんじゃない?

hollow,world くらいはコンパイルできるよね?
コマンドラインでやる場合、vcvars32.bat を走らせておくか、別の方法で
環境変数を設定しておく必要があるけど。
71名無しさん@1周年:02/09/18 21:12
#includ <stdio.h>
int main(int ac,char[] *av) {
 puts("うつろな世界(;^^\n");
return 0;
}
7262:02/09/19 13:25
気付いてくれてありがとう。
滑ったかと思ったよ。
73おばぁさん:02/10/20 04:25
CLAPACK使うときの行列のメモリ配置を知りたいんですが
どっかのサイトとかないですか。探し疲れて。
列優先の他に、対称行列とかのメモリ配置を。
74おばぁさん:02/10/20 04:35
む〜
↑に関する情報が無いんで推測すると、
もしかして、N*Nの対称行列はN*Nのメモリ確保するけど、
右上三角と対角しか参照しないって仕様?
75名無しさん@1周年:02/10/20 12:53
http://gooo.jp
無料掲示板
無料レンタル掲示板
76紫亜:02/10/25 12:37
>>73
対称行列の場合は

0,1,3,6,...
..2,4,7,...
....5,8,...
......9,...

の順序で上半分+対角項を1次元配列に詰め込んでいくんです。
ちゃんとCLAPACKの各関数のソースのコメント文に書いてあったと
思ったんですけど。。。
77おばぁさん:02/10/31 17:10
>>76

YES! サンキュー。マニュアルで発見した。
clapackに関してマニュアルを超えるサイトは存在しないようだ。
(マニュアルも痒いところに届かないんだが・・・)

ところで順序は、4×4で
1,2,3,4
*,5,6,7
*,*,8,9
*,*,*,10
だよね?まぁ、動かしてみればわかるんだけど。
では、c++でラッパクラス作ってきまふ
intelのライブラリにしまふ。
78おばぁさん:02/10/31 17:16
>>76

おっと訂正
列優先で >>77 に書いたのは左下三角か
lapack++のマニュアル結局アロケートの順番は書いてないような
1,*,*,*
2,5,*,*
3,6,8,*
4,7,9,10
79名無しさん@1周年:02/11/23 03:28
IntelのMKLって
blas全部なくない?
matrix.matrixが
dgemmとdsymmだけってどういうことよ
80名無しさん@1周年:02/11/23 04:39
>>79
言ってる意味がようわからん。
もともとMatrix×Matrixて
?gemmと?symmだけじゃん
81名無しさん@1周年:02/11/23 06:04

25歳。
去年まで金無し君だったけど、オンラインカジノとパチンコで
二年で350万貯めた。一度やってみなよ。
初回のみだけど、1ドル以上のチップを買えば30ドル(4000円くらい)貰える。
もらうだけもらってプレイせずに換金することもできるし、ルーレットで赤か黒に
思い切って賭けてしまえば50パーセントで二倍になる。
金なきゃオフラインでゲームすればいいだけ。暇つぶしになる。
ビデオポーカーとかスロとか色々あるのでマジでお勧め。
http://www.imperialcasino.com/~1j4z/japanese/
82名無しさん@1周年:02/12/01 20:37
>>78
関数に渡すときにU か L で選べますよ
83山崎渉:03/01/11 05:26
(^^)
84T-T):03/02/03 18:33
複素数にcomplex型使ってるせいか
zgesvルーチンがコンパイルしてくれません(泣)。
でもdgesvルーチンは動きます(一応)
ていうか複素数計算のルーチンがコンパイル不可みたいです...

以下にコンパイル時のエラーメッセージ

./lib/libF77.a(sig_die.o): In function `sig_die':
sig_die.o(.text+0x37): undefined reference to `f_exit'
collect2: ld はステータス 1 で終了しました

どうしたもんでしょうか...。
85T-T):03/02/05 14:48
?
86T-T):03/02/05 15:01
↑(85について)
ごめんなさい。
ちょっと前に84の書き込みしておいたつもりだったのに
なんか掲示されてなかった(?)ので、
「おかしいなぁ?」
とか思って試しに、「?」
だけ書いて「書き込む」クリックしたら・・・
「あれ? 掲示されてるよ・・・2っとも?」

初心者の失敗でした。
(いたずら書きじゃないんです)
87名無しさん@3周年:03/02/05 15:51
http://bbs.1oku.com/bbs/bbs.phtml?id=kkgogo
★管理人オススメ★
88名無しさん@3周年:03/02/05 20:29
89山崎渉:03/03/13 13:14
(^^)
90山崎渉:03/04/17 09:13
(^^)
91山崎渉:03/04/20 04:03
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
92山崎渉:03/05/21 22:07
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
93山崎渉:03/05/21 23:23
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
94山崎渉:03/05/28 14:32
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉
95山崎 渉:03/07/12 12:33

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
96名無しさん@3周年:03/07/18 04:05
ATLAS使うとどれくらい速くなるんだ?
97age:03/07/22 04:35
(ノ゜ー゜)ノage!
98名無しさん@3周年:03/07/22 15:53
サンプルムービーだ
http://www.k-514.com/sample/sample.html
  _、_
( ,_ノ` )y━・~~~ 見たらどうだ・・・
99織田:03/07/23 10:57
[簡単に稼げる]頑張れば、頑張るほど稼げるビジネスであります。
http://www.c-gmf.com/index1.htm
「クーポン屋」「アクセスが1日2000人ほどある人なら、1ヶ月274万円
ほど稼げるビジネスであります。」1日110円で宣伝できるサイトであります。
契約者は年間広告費40,000円を当社に振込んでいただければ、OKで
あります。そこで、紹介者として貴方様専用のCGIフォームを用意しますので
料金回収無し、ノルマ無し、HPにバナーを貼ればOKであります。
パートナー様の目標は1ヶ月300件ほど契約を成立していただければ
貴方様の口座に274万円を振込しますので、頑張って営業をしてください。
どんな人でも稼げますので、1度でも良いので見てくださいね。
http://www.c-gmf.com/index1.htm
100山崎 渉:03/08/02 02:24
   ∧_∧
  (  ^^ )< ぬるぽ(^^)
101名無しさん@3周年:03/08/02 02:30
>>96
だいたい >>94 の3倍程度と考えればいいかな。
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
103山崎 渉:03/08/15 18:51
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
104名無しさん@3周年:04/02/11 22:46
age
105名無しさん@3周年:04/07/19 00:43
Ax=bを計算したときの、xとLとUがほしいのですが、
CLAPACKのdgbsv_に入れた係数行列って、なにになって返されるのでしょうか?
コメントを見ると計算後のAにはP*L*Uが入っていると書いてあるのですが、
それだとAを置換した行列になるはずが、実際に計算してみるとそうはなっていないようです。

http://www.a.mei.titech.ac.jp/~kabe/calcsoft/library/lapack/clapack/usage/dgbsv/
↑のページにも紹介されているのですが、零の項の位置が異なっています。
ソースも見てみたんですが解読できませんでした。
どなたか詳しい方教えてもらえませんでしょうか。
ちなみにCLAPACKではなくてCPPLAPACKを使っています。
106名無しさん@3周年:04/07/19 00:44
実行結果はこんな感じになってます
実行前のA
1 2 1 x x
2 9 8 9 x
1 8 4 5 2
x 9 5 1 6
x x 2 6 7

実行後のA
2 9 8 9 0
0.5 9 5 1 6
0.5 0.388889 2 6 7
x -0.277778 -0.805556 5.94444 6.47222
x x -0.972222 0.102804 6.64019

別の方法で実行したL
1 0 0 x x
2 1 0 0 x
1 1.2 1 0 0
x 1.8 1.38095 1 0
x x -0.47619 -0.450331 1

別の方法で実行したU
1 2 1 x x
0 5 6 9 x
0 0 -4.2 -5.8 2
x 0 0 -7.19048 3.2381
x x 0 0 9.4106
107名無しさん@3周年:04/07/19 02:55
だんだん分かってきました。
IPIVで部分枢軸選択をおこなっているんですね。
でもIPIVの数列を置換行列を指定する仕組みがわかりません(汗
5x5の行列のばあい、IPIV[5]の例としては(2,2,3,4,5)とか(3,4,5,5,5)だったりします。
i 列を IPIV[i] 列と置換するというのなら同じ数字は表れないんじゃないかと思うんですが。
108名無しさん@3周年:04/07/19 11:44
A.dgesv(b)で、AはPAをLU分解した後のLとUの成分行列になり、
対角項で切り離してL,Uを求めてL*Uを求めるとPAと一致しました。

ところが、同じことをバンドマトリックス dgbmtrix Bを用いて、
B.dgbsv(b)を行うと、PBとLUが一致しません。
dgbsvも行置換されたBのLとUの成分行列を返すのですが、Bがバンドマトリクスでも
PBはバンドマトリクスにはなりませんよね。そう考えると
PBのL,U成分行列をdgbmatrixに入れて返すのは無理があると思うのですが・・・

そもそもdgbmatrixクラスのヘッダファイルを見てみるとコンストラクタでは
dgbmatrix(m,n,kl,ky)としたときに、(kl+ku+1)*nの領域しか確保していません。
対して、Cのdgbsrv_の係数行列は(2kl+ku+1)*nの大きさが必要です。
上の質問を書きながら気がつきました。

CPPLAPCKじゃなくてCLAPACK使ったほうがいいのかな。
109名無しさん@3周年:04/07/20 01:46
CPPLAPACKってそんなにできの良い物合ったかな、CLAPACKのほうがよさげ
110名無しさん@3周年:04/07/20 19:00
CLAPACKにはLU分解をするだけの関数、LUを用いて解くだけの関数、があるんですね。
エルミート分解もできるようなので、CPPLAPACKはやめてCLAPACKを使うことにします。
どうもお騒がせしました。
111名無しさん@3周年:04/07/20 19:07
エルミートじゃなくてコレスキーでした
112名無しさん@3周年:04/07/21 01:46
>>108
> dgbmatrix(m,n,kl,ky)としたときに、(kl+ku+1)*nの領域しか確保していません。
> 対して、Cのdgbsrv_の係数行列は(2kl+ku+1)*nの大きさが必要です。
dgbmatrix.dgbsvの中身を見ると,関数の中で一度(M,N,KL,KU+KL)の大きさを
持つバンドマトリックスを作って,データをそこにコピーして,解いて,それ
を元のマトリックスに浅くコピーしている模様. 試しに,dgbsvした後の
マトリックスのサイズを見てみると,勝手に変更されてるのが分かります.
大きさも(2kl+ku+1)*nになってます. 結局,CLAPACKでdgesvを使った時に
得られるものと同じものが得られるハズでは?
113名無しさん@3周年:04/07/21 10:20
>>112
本当だ!再確保してる。
見落としてました。
だから>>106の実行後のAは右上のxがなくなっているんですね。
レスありがとうございます。

でもどうしてL*U計算させると合わないんだろう・・・
もう少しバンドマトリクスの格納方法の絵とにらめっこしてみます。
114名無しさん@3周年:04/09/08 12:48
cblasのルーチン使うときの引数の説明などが日本語化されているページって
ありませんか?小国さんの本にはcblasルーチンの引数の説明が全く無いので
全く分かりません。英語ページでもいいので、分かりやすいところはありま
せんか?
115名無しさん@3周年:04/09/30 09:08:23
Macでこのライブラリーを使いたいのですが、どうしてもコンパイルが上手くいきません。。
CodeWarrior用のものもダウンロードしましたが、ファイルが壊れている
ようなんです。。

MacでClapackなどを使われている方、教えてください。
116名無しさん@3周年:04/09/30 12:34:35
>>115
XCodeがインストール環境であれば、vecLib.frameworkを読み込めばOKです。
117名無しさん@3周年:04/09/30 13:05:03
もはや投稿されたことの無いカキコなどというものは存在しない。
ならば、自分の頭で考え出したものよりも、2年3年の2ちゃんねらーの
蓄積が宿ったコピペやその改変を投稿した方がずっと良い。
118115:04/09/30 14:19:05
>>116
ありがとうございます。

別件なのですが、今、XCodeってダウンロード出来なくなっていませんか?
例のアップルのサイトに行き、会員になってダウンロードのページまで
行ったのですが、Xcodeの古いのから新しいバージョンすべて、
ダウンロード出来なかったです。。
(T-T)

折角、トライしようと思ったんですが。。。
119名無しさん@3周年:04/10/12 17:13:44
zgeevを使うとうまく固有ベクトル出してくれないんすけど.....。

なんか初歩的なミスでもしてるんでしょうか?

サンプルプログラムが落ちている場所など御存知ではないでしょうか?
120名無しさん@3周年:05/01/22 20:06:41
       /                    .\
     /                       .\
 \ /                          \ /
   \      ___________     . /
    \   ./                \   /
     | \/                   \/...|
     |  |                       |  |
     |  |                       |  |
  .._ |_|                       |_|_..
     |  |     >>1さあ‥ 逝こうか‥‥     |  |
     |  |                       |  |
     |  |                       |  |
     |  |                       |  |
     |  |/                   ..\|  |
     |  |                       |  |
   .._|/|      _ _ _ _ _ _ _ _     ...|\|_
  / ..|  |   _−_−_−_−_− _   |  |  \
     |  |/_/━ ━ ━ ━ ━ ━\_\|  |
   .._| /_/━ ━ ━ ━ ━ ━ ━ \_\.|_
     /_/━  ━  ━  ━  ━  ━  ━ \_\
   /  /━  ━  ━  ━  ━  ━  ━\  \
121山.崎 渉:05/02/22 20:57:05
...これからも僕を応援して下さいね(^^)。   
  
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
         
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。                         
  =〔~∪ ̄ ̄〕                                            
  = ◎――◎                      山崎渉                       
                                
 __∧_∧_                                                 
 |(  ^^ )| <寝るぽ(^^)      
 |\⌒⌒⌒\                                
 \ |⌒⌒⌒~|         山崎渉             
   ~ ̄ ̄ ̄ ̄                            
                            
   ∧_∧                                       
  (  ^^ )< ぬるぽ(^^)      
                                                       
    (⌒V⌒)                    
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。   
  ⊂|    |つ                                
   (_)(_)                      山崎パン 
                                         
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕                          
  = ◎――――――◎                      山崎渉&ぼるじょあ
122名無しさん@5周年:2006/03/14(火) 12:50:23
最近LAPACKてどうなんですか?
123porn:2006/04/26(水) 20:01:54
124CBLAS???:2006/05/20(土) 12:44:48
125名無しさん@5周年:2006/05/20(土) 12:50:40
CBLASのAPIについては、ここの blast-forum/cinterface.ps を見てください。
http://www.netlib.org/blas/
126名無しさん@5周年:2006/06/26(月) 23:16:51

【数学】フェルマーの最終定理に反例が・・・ワイルズ会見
http://news18.2ch.net/test/read.cgi/news7/1149592020/

127バネ足ジョップリン:2007/06/15(金) 18:15:30
バネ足ジョップリンです
CLAMPかと思って釣られました
128名無しさん@5周年:2007/06/17(日) 00:08:20
CLAMP
129名無しさん@5周年:2007/07/19(木) 01:59:12
lapack本家が最近微妙にバージョンアップを始めているな
更新履歴を読んでもよく分からぬのでどなたか解説頼むよ
130馬場:2008/04/24(木) 00:08:01
あのーバンドマトリックスを一番精度よく解く方法をおしえていただきたいんですけど,,
131名無しさん@5周年:2008/12/30(火) 14:42:10
テスト
132名無しさん@5周年:2008/12/31(水) 23:08:25
池■田大■作の本名はソン・テチャク。小泉純一郎、小沢一朗は朝鮮人。
911では小型の水爆が使用されている。
http://ri■ch■ardkosh■im■izu.at.webry.info/
創価の保険金殺人事件。
オウム事件は、統一・創価.北朝鮮の共同犯行である。CIAが監修している。
http://www15.ocn.ne.jp/~oy■ako■don/kok_web■site/ir■iguc■hi.htm
与党も野党もメディアも全部朝鮮人だった。
http://jb■bs.li■vedo■or.jp/b■bs/read.cgi/news/20■92/115794■1306/

2ちゃんねるは統一■教会が個人情報を集めるための道具。運営には統一■教会がいる。
駅前で「手相を見せてください」と勧誘してるのが統一教■会。(カルト宗教)  
カルト宗教の下にいる人と上にいる奴を分けて考えないといけない。下にいる利用される人は上がどんなことをしてるか知らない。

ユダヤ権力の子分→2ちゃん運営=統一協会上層部=層化上層部=自民党清和会=野党の朝鮮人ハーフの政治家=
与党の朝鮮人ハーフの政治家=金 正日(キム・ジョンイル )=読売サンケイ=小沢十朗
ユダヤ人=ロックフェラー=ブッシュ=クリントン=ヒラリー=アドルフ・ヒトラー=オサマ・ビンラディン

毎日新聞スレを荒らしてる奴らも統■一教会の可能性が高い。
荒らしは洗脳するために「ネトウヨ」などのレッテル付けレスを何千回もする。
現実には「ネトウヨ」などは存在しない。
http://changi.2ch.net/test/read.cgi/ms/1230363385/
133名無しさん@5周年:2009/01/14(水) 16:30:36
lapackの導入について調べてたら良スレハケーン
134名無しさん@5周年:2009/01/14(水) 17:05:58
CLAPACKをwindowsに導入したいんですが、うまくできません。
http://d.hatena.ne.jp/blono/20080919/1221783259
これみたけど、よくわからん
135名無しさん@5周年:2009/01/14(水) 21:48:38
>>134
コンパイラは何じゃ。

VC++なら
Netlibから CLAPACK-3.1.1-VisualStudio.zip を落として解凍して
INCLUDE と LIB\Win32 または LIB\x64 にパスを通したり通った所にコピーするなりして
マルチスレッド用スタティックライブラリ使用(/MT or /MTd)でコンパイルするだけだ。
136134:2009/01/15(木) 12:08:21
>>135
Microsoft Visual Studio 2005 Version 8.0 の C++のヤツです
下の2行の意味がわからない場合はどこから出直せばいい?
137名無しさん@5周年:2009/01/16(金) 01:40:36
>>136
VSのIDE使用を前提でいくと

>INCLUDE と LIB\Win32 または LIB\x64 にパスを通したり通った所にコピーするなりして
ttp://www.ne.jp/asahi/hishidama/home/tech/vcpp/setting.html
この辺の
「インクルードファイルの検索パス」、「ライブラリの検索パス」、「ライブラリの追加」
辺りを参照のこと。
追加するライブラリは構成が「Debug」の場合は「clapackd.lib blasd.lib tmglibd.lib libf2cd.lib」
「Release」の場合は「clapack.lib blas.lib tmglib.lib libf2c.lib」

>マルチスレッド用スタティックライブラリ使用(/MT or /MTd)でコンパイルするだけだ。
プロジェクトのプロパティの「構成プロパティ」→「C/C++」→「コード生成」の「ランタイム ライブラリ」を
構成が「Debug」の場合は「マルチスレッド デバッグ(/MTd)」
「Release」の場合は「マルチスレッド(/MT)」
に変更する。

>下の2行の意味がわからない場合はどこから出直せばいい?
Visual Studioの使い方がわからなければ「Visual Studio ライブラリ 追加」でググるところから。
「ディレクトリって何?食い物?」ならばWindowsのファイル操作入門から。
138134:2009/01/16(金) 22:23:02
>>137
まじでありがとうございます
あまりの優しさに胸が熱くなった
Visual Studioの使い方がよくわかってないんでその辺から出直してきます
うまくいったら報告します
139134:2009/01/16(金) 22:42:34
普段は「Debug」でバグを確認してて、
計算時間を計るときは「Release」にするんですけど、
そういうときは「マルチスレッド デバッグ(/MTd)」と「マルチスレッド(/MT)」を
毎回切り替えるということですか?
140名無しさん@5周年:2009/01/17(土) 19:15:56
>>139
プロジェクトの「構成プロパティ」は構成(Debug, Release等)毎に設定できるので
最初に各構成毎に使うランタイムライブラリの種類や追加の依存ファイルを設定しておけば
後はリストボックスでDebug/Releaseを切り替えるだけでOK
141名無しさん@5周年:2009/01/17(土) 20:37:21
>>140
そうだったのかw
VCって便利ですね
142名無しさん@5周年
cpplapack-2010.03.27-1-setup.exe あげ