※ ChatGPTを利用し、要約された質問です(原文:C++で行列とベクトルの積を求める)
C++で行列とベクトルの積を求める方法
このQ&Aのポイント
C++で行列とベクトルの積を求める方法についてご質問です。行列とベクトルの掛け算 y=Ax (A(3*3行列以上)とxを適当に初期化) を作成する方法を教えてください。
現在、行列とベクトルの積の計算方法について分からない状況です。同じような計算を行っているコードがありますが、より効率的な方法があるような気がしています。質問文のコードを参考にしつつ、行列とベクトルの積の計算方法について詳しく教えていただけると嬉しいです。
C++で行列とベクトルの積を求める方法がわかりません。行列の和と積の計算方法については理解していますが、それを応用して行列とベクトルの積を求める方法が分かりません。質問文のコードを見ながら、行列とベクトルの積を求める方法を教えてください。
行列とベクトルの掛け算
y=Ax (A(3*3行列以上)とxを適当に初期化) を作成せよ
これが分からないんですが誰か分かる人いませんか?下は行列の和と積をそれぞれ求めてるんですが、こんな感じになりそうなんですよね
#include<iostream>
using namespace std;
int main() {
double A[3][3]={{1,1,6},{5,3,2},{2,2,2}};
double B[3][3]={{4,1,3},{2,4,3},{5,9,2}};
double temp;
int i,j,k;
for(i=0;i<3;i++){
for(k=0;k<3;k++){
}
}
for(i=0;i<3;i++){
for(k=0;k<3;k++){
}
}
cout<<"和:A+B="<< '\n';
for(i=0;i<3;i++){
cout<<" { ";
for(j=0;j<3;j++){
cout<< (A[i][j]+B[i][j]);
if(j!=2)
cout<<" , ";
}
cout<< " }" << '\n';
}
cout<< '\n';
cout<<"積:A*B="<< '\n';
for(i=0;i<3;i++){
cout<<" { ";
for(j=0;j<3;j++){
temp=0.0;
for(k=0;k<3;k++)
temp += A[i][k]*B[k][j];
cout<< temp;
if(j!=2)
cout<< " , ";
}
cout<< " }" << '\n';
}
return 0;
}