学校で課された問題について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
princessprincess

学校で課された問題について

#1

投稿記事 by princessprincess » 2年前

Aのcsvファイルに書き込まれた6×6の行列を逆行列にしBのcsvファイルに書き込まれた列ベクトルと掛けたいのですがこのプログラムになにを追加すれば機能するのか教えてほしいです。
先生や友人に協力してもらい、6×6の行列(Aのcsvファイル)とベクトル(Bのcsvファイル)を掛けるプログラムは完成したのですが6×6の行列を逆行列にする方法が分かりません。
どうかご教授いただけると幸いです。よろしくお願いいたします。

code
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define N 6
int main()
{
double a[N][N];
double w[N];
double b[N];
int i = 0;
int k;
char buf[256];
FILE* fp1, * fp2, * fp3;

fp1 = fopen("A.csv", "r");
while (fgets(buf, 256, fp1) != NULL)
{
sscanf(buf, "%lf,%lf,%lf,%lf,%lf,%lf", &a[0], &a[1], &a[2], &a[3], &a[4], &a[5]);
i++;

}

fp2 = fopen("B.csv", "r");
fgets(buf, 256, fp2);
sscanf(buf, "%lf,%lf,%lf,%lf,%lf,%lf", &w[0], &w[1], &w[2], &w[3], &w[4], &w[5]);
fclose(fp1);
fclose(fp2);

for (i = 0; i < N; i++) {
b = 0;
for (k = 0; k < N; k++) {
b += a[k] * w[k];
}
}
fp3 = fopen("kai.csv", "w");
fprintf(fp3, "%f,%f,%f,%f,%f,%f", b[0], b[1], b[2], b[3], b[4], b[5]);
printf("%f,%f,%f,%f,%f,%f", b[0], b[1], b[2], b[3], b[4], b[5]);
fclose(fp3);
return 0;
}

/code

アバター
usao
記事: 1887
登録日時: 11年前

Re: 学校で課された問題について

#2

投稿記事 by usao » 2年前

何はともあれ,
逆行列ってどうやったら求められるんですか? っていう方法自体を確定させる(調べる)必要があるのでは? 数学の話として.

で,その手順を実装する.

アバター
usao
記事: 1887
登録日時: 11年前

Re: 学校で課された問題について

#3

投稿記事 by usao » 2年前

方法論を見つけたならば,運がよければその方法の名前もわかるかもしれない.
「○○法」みたいな.

そしたら,「C言語 ○○法」とかで検索すれば実装例も見つかるかも.

アバター
あたっしゅ
記事: 664
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: 学校で課された問題について

#4

投稿記事 by あたっしゅ » 2年前

東上☆海美☆「
usao 氏へのレスがつかないみみ。
『c++ 逆行列』で検索することもできないみみ ?

https://qiita.com/r9y9/items/dfba578b7bba63f44a9d
C++ の行列ライブラリ Eigen で逆行列を求めるときの注意 - Qiita(ja)

を参考に、Eigen 入れて .inverse() すれば、結果は求まるみみ。
でも、宿題の答えとしては駄目っぽいみみ。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

返信

“C言語何でも質問掲示板” へ戻る