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

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

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 学校で課された問題について

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

#4

by あたっしゅ » 3年前

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

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

を参考に、Eigen 入れて .inverse() すれば、結果は求まるみみ。
でも、宿題の答えとしては駄目っぽいみみ。

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

#3

by usao » 3年前

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

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

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

#2

by usao » 3年前

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

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

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

#1

by princessprincess » 3年前

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

ページトップ