ショッピングモール  Automotive / Motorcycles ( Pictorial )


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.5357

ガウスジョルダン法
投稿者---shiho(2006/01/29 19:26:04)


 初めて投稿します。早速なのですが、学校からの課題で、ガウスジョルダン法を拡張して複素数も解けるようにしろ、という課題が出ています。対角成分の実数部を1にするのは出来たのですが、虚数部を0にすることが出来ません。未完成のプログラムをここに貼っておきます。考え方を教えて下さい。(C++です)

#include <stdio.h>
#include <math.h>
#define N 100
#define EPS .0000001

double hikizan(double ,double);
double kakezan(double ,double);
struct hukuso{
double a;
double b;
};

main()
{
int n,i,j;
double pivot;
struct hukuso data[N][N];
double t,del;
int k,l,m,s;

printf("何次元方程式ですか?\n");
scanf("%d",&n);
printf("データを入力してください\n");
printf("(注) 実数部、虚数部の順に入力してください。\n");

for( i=0 ; i<n ; i++ ){
printf("式%d:", i+1);
for( j=0 ; j<n+1 ; j++ ){
scanf("%lf",&data[i][j].a);
scanf("%lf",&data[i][j].b);
}
}
/*掃き出し法計算部*/
for( i=0 ; i<n ; i++ ){
pivot=data[i][i].a;
/*行の交換(改良)*/
s=i;
for( j=(i+1) ; j<n ; j++){
if( pivot<data[j][i].a ){
pivot=data[j][i].a;
s=j;
}
}
t=data[s][i].a;
data[s][i].a=data[i][i].a;
data[i][i].a=t;
t=data[s][i].b;
data[s][i].b=data[i][i].b;
data[i][i].b=t;

/*誤差の判別*/
if( fabs(pivot)<EPS ){
printf( "ピボット数が許容誤差以下\n" );
return 1;
}

for( j=0 ; j<(n+1) ; j++ ){
data[i][j].a=data[i][j].a/pivot;
data[i][j].b=data[i][j].b/pivot;
}

/*掃き出し操作*/
for( k=0 ; k<n ; k++ ){
del = data[k][i].a;
for( j=i ; j<n+1 ; j++){
if( k!=i ){
t=del*data[i][j].a;
data[k][j].a=hikizan(data[k][j].a,l);
t=del*data[i][j].b;
data[k][j].b=hikizan(data[k][j].b,l);
}
}
}

for( l=0 ; l<n ; l++ ){
printf("式%d:", l+1);
for( m=0 ; m<(n+1) ; m++ ){
printf("%6.2lf j%.2lf", data[l][m].a,data[l][m].b);
}
printf("\n");
}
printf("\n");
}
for( l=0 ; l<n ; l++ ){
printf("X%d:", l+1);
printf("%6.2lf\n", data[l][n].a);
}
return 0;
}

double hikizan(double x,double y)
{
return x-y;
}
double kakezan(double x,double y)
{
return x*y;
}






この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ガウスジョルダン法 5358 RAPT 2006/01/29 20:20:53
<子記事> Re:ガウスジョルダン法 5359 REE 2006/01/30 10:25:49


No.5358

Re:ガウスジョルダン法
投稿者---RAPT(2006/01/29 20:20:53)


【掲示板利用宣言】の下記が遵守されていないようです。
・ソースの添付は「HTML変換ツール」で字下げします。
・環境(OSとコンパイラ)や症状は具体的に詳しく書きます。



この投稿にコメントする

削除パスワード

No.5359

Re:ガウスジョルダン法
投稿者---REE(2006/01/30 10:25:49)


解決へのヒント
struct hukuso pivot;



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity