下のようなプログラムを作ったのですがうまくいきません、どこがおかしいのか教えてください。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int i,j,k;
double x,y,r,p,b;
double martrix[3][4];
srand((unsigned)time(NULL));
for(i=0;i<=3;i++){
for(j=0;j<=4;j++)
x= rand()%21;
y= x/10 -1;
martrix[j]=y;
}
for(k=0;k<=3;k++){
for(j=0;j<=k;i++){
for(i=0;i<=3;i++){
r=martrix[k]/martrix[k][k];
p=martrix[j]/r*martrix[k][j];
b=martrix[3]/r*martrix[k][3];
martrix[j]=p;
martrix[3]=b;
}
}
}
return 0;
}
行列を三角化するプログラムで、うまくいきません。
- bitter_fox
- 記事: 607
- 登録日時: 14年前
- 住所: 大阪府
Re: 行列を三角化するプログラムで、うまくいきません。
ありがとうございます。
それと、
for(k=0;k<=3;k++){
for(j=0;j<=k;i++){
for(i=0;i<=3;i++){
r=martrix[k]/martrix[k][k];
p=martrix[j]/r*martrix[k][j];
b=martrix[3]/r*martrix[k][3];
martrix[j]=p;
martrix[3]=b;
}
}
}
の部分もおかしいと思うのですが、そこはどうなのでしようか?
それと、
for(k=0;k<=3;k++){
for(j=0;j<=k;i++){
for(i=0;i<=3;i++){
r=martrix[k]/martrix[k][k];
p=martrix[j]/r*martrix[k][j];
b=martrix[3]/r*martrix[k][3];
martrix[j]=p;
martrix[3]=b;
}
}
}
の部分もおかしいと思うのですが、そこはどうなのでしようか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 行列を三角化するプログラムで、うまくいきません。
マルチポストしていませんか?
http://detail.chiebukuro.yahoo.co.jp/qa ... 1351388313
規約違反ですので、フォーラムルールの再確認をお願いします。
相互リンクをすれば、規約上OKです。
http://detail.chiebukuro.yahoo.co.jp/qa ... 1351388313
規約違反ですので、フォーラムルールの再確認をお願いします。
相互リンクをすれば、規約上OKです。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 行列を三角化するプログラムで、うまくいきません。
ちなみに何を持って失敗となされたのでしょうか?
printfなどのプログラムの確認も最後に必要だと思うのですが…
例えばこんな感じ?
===
あれ?L(エル)が1(イチ)に見える・・・
printfなどのプログラムの確認も最後に必要だと思うのですが…
for(k=0;k<3;k++){
for(i=0;i<4;i++){
printf("martrix[%d][%d]=%lf\t",k,i,martrixt[k][i]);
}
printf("\n");
}
===
あれ?L(エル)が1(イチ)に見える・・・
ニャン!!\(゜ロ\)(/ロ゜)/
Re: 行列を三角化するプログラムで、うまくいきません。
ごめんなさい。
よく見たらバグありました。
martrix[3][4]
に対して、iの値が最大いくつになったのかみてみればわかるかもしれません。
よく見たらバグありました。
for(k=0;k<=3;k++){
for(j=0;j<=k;i++){
for(i=0;i<=3;i++){
r=martrix[i][k]/martrix[k][k];
p=martrix[i][j]/r*martrix[k][j];
b=martrix[i][3]/r*martrix[k][3];
martrix[i][j]=p;
martrix[i][3]=b;
}
}
}
に対して、iの値が最大いくつになったのかみてみればわかるかもしれません。
ニャン!!\(゜ロ\)(/ロ゜)/