行列の計算 – プログラミング – Home

通知
すべてクリア

行列の計算


kimen3
 kimen3
(@kimen3)
ゲスト
結合: 24年前
投稿: 2
Topic starter  

3行3列の行列ABにそれぞれデータを読み込ませます。そして二つを掛け合せます。
その積Cを計算して出力するプログラムを作りたいのですが
このやり方がわかりません。

この計算式は以下のようにするみたいです。

    n
Cij =∑Aik × Bkj  
で出るみたいなのですが

意味がわからないのです。

行列の掛け算をできるプログラムを教えてください。


引用解決済
トピックタグ
Niji
 Niji
(@Niji)
ゲスト
結合: 24年前
投稿: 5
 

まずは計算方法を覚えましょう。

|a11 a12 a13| |b11 b12 b13|
|a21 a22 a23| x |b21 b22 b23|
|a31 a32 a33| |b31 b32 b33|

の場合、

| a11b11 + a12b21 + a13b31 a11b12 + a12b22 + a13b32 a11b13 + a12b23 + a13b33 |
| a21b11 + a22b21 + a23b31 a21b12 + a22b22 + a23b32 a21b13 + a22b23 + a23b33 |
| a31b11 + a32b21 + a33b31 a31b12 + a32b22 + a33b32 a31b13 + a32b23 + a33b33 |

となります。
法則をよく覚えましょう。

(覚えたらプログラムにおとすなんて簡単だよね(^-^))


返信引用
kimen3
 kimen3
(@kimen3)
ゲスト
結合: 24年前
投稿: 2
Topic starter  

#include <stdio.h>

// 3行3列のA行列の読み込み
void rmatrix( int X[3][3] )
{ int i, j;

for ( i=0; i<3; i++ )
for ( j=0; j<3; j++ )
scanf( %d, &X[i][j] );

// 3行3列Aの行列の表示
void wmatrix( int X[3][3] )
{ int i, j;

for ( i=0; i<3; i++ )
{ for ( j=0; j<3; j++ )
printf( %d , X[i][j] );
printf( \n ); } }

// 3行3列の行列の入出力
void main()
{ int A[3][3];

printf( \n3行3列の行列データを入力して下さい\n );
rmatrix( A ); // 行列の入力

printf( \n3行3列の行列データを表示します\n );
wmatrix( A ); // 行列の表示

}

というプログラムで読み込まなければならないのですが
教えていただいたものからどのようにしていったらいいのでしょうか?
まったくプログラムが苦手なので
教えてもらえないでしょうか?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました