- ベストアンサー
C言語を用いた3×3の平方行列と列ベクトルの積
C言語を最近始めたのですが3×3の平方行列と列ベクトルの掛け算の方法が分からず困っています。 問題は{{1,4,2},{6,7,2},{3,9,4}}×{{3},{8},{5}}を配列とfor文のみでとけという問題です。 2重ループを使うのはなんとなくわかるのですが使い方がわからずなにがなんだかさっぱりですよければ教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
行列の積の計算方法はわかってますか? A x B = C A= a11 a12 a13 a21 a22 a23 a31 a32 a33 B= b1 b2 b3 C= c1 c2 c3 だと cj = aj1 * b1 + aj2 * b2 + aj3 * b3 (ただし j=1,2,3) ですよね? これは、足し算を分解すれば次のようになります。 cj = 0 ; cj += aj1 * b1 ; cj += aj2 * b2 ; cj += aj3 * b3 ; これをもうちょっと変形して cj = 0 ; cj += aji * bi ; (i=1,2,3) これでわかりませんかね? ※ Cの配列の添字は0から始まることに注意しましょう。