掲示板利用宣言

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

 私は

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

掲示板2

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

No.29758

ガウスの消去法 部分ピボット選択
投稿者---らとばるすきー(2007/02/11 15:43:15)


このプログラムに部分ピボット選択をつけるとすればどうすればいいのでしょうか。よろしくお願いします。
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int i,j,k,n;
double a[100][100],b[100];
FILE *fp1;
fp1=fopen("gauss.txt","w");
if(fp1==NULL){
printf("file not found\n");
exit(1);
}
printf("変数の数を入力して下さい" );
scanf("%d",&n);
fprintf(fp1,"変数の数%d\n",n);
/*連立方程式の入力*/
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%lf",&a[i][j]);
fprintf(fp1,"入力値%lf\n",a[i][j]);
}
}
for(i=0;i<n;i++){
scanf("%lf",&b[i]);
fprintf(fp1,"入力値%lf\n",b[i]);
}
/*前進消去*/
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
a[j][i]=a[j][i]/a[i][i];
for(k=i+1;k<n;k++){
a[j][k]=a[j][k]-(a[i][k]*a[j][i]);
}
b[j]=b[j]-(b[i]*a[j][i]);
}
}
/*後退代入*/
for(i=n-1;i>=0;i--){
for(j=i+1;j<n;j++){
b[i]=b[i]-(a[i][j]*b[j]);
}
b[i]=b[i]/a[i][i];
}
/* 表示 */
for(i=0;i<n;i++){
printf("解X%d=%lf\n",i+1,b[i]);
fprintf(fp1,"解X%d=%lf\n",i+1,b[i]);
}
fclose(fp1);
}



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ガウスの消去法 部分ピボット選択 29759 ぽへぇ 2007/02/11 23:20:46


No.29759

Re:ガウスの消去法 部分ピボット選択
投稿者---ぽへぇ(2007/02/11 23:20:46)


適当な検索エンジンで「ピボット選択」を検索すれば適当なものがひっかかりそうな。

流用できるかどうか不明ですが、過去ログから。
http://f4.aaa.livedoor.jp/~pointc/log910.html

また、
>ソースの添付は「HTML変換ツール」で字下げします。
は守ってください。



この投稿にコメントする

削除パスワード

No.29761

Re:ガウスの消去法 部分ピボット選択
投稿者---らとばるすきー(2007/02/11 23:54:46)


HTMLツールで字下げの件すみませんでした。頂いたアドバイスの通りでした。検索してみます。どうもありがとうございました。


この投稿にコメントする

削除パスワード

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