Calcul matriciel en C++ - produit d'une matrice par un vecteur
using namespace std;
#include<stdio.h>
#include<stdlib.h>
#include <iostream>
int * produit (int **M, int *V, int N)
{
int *Vp = new int[N];
for(int i = 0; i < N; i++)
Vp[i]=0;
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++)
Vp[i] += M[i][j] * V[j];
}
return Vp;
}
void affichage(int **Mat, int N, int M){
for(int i = 0; i < N; i++) {
for(int j = 0; j < M; j++) {
cout << Mat[i][j] ;
cout << "\t";
}
cout << "\n";
}
cout << "\n";
}
int main(int argc, char *argv[])
{
int n=3;
int** M = new int* [ n ];
for (int i=0; i < n; i++)
M[i] = new int[ n ];
srand(time(NULL));
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
M[i][j] =rand()%10;
affichage(M,n,n);
int V[3] = {2,6,3};
cout << "\n V = [ ";
for(int i = 0; i < n; i++)
cout << " "<<V[i]<<" ";
cout << " ] ";
int *Vp = produit(M,V,n);
cout << "\n Vp = [ ";
for(int i = 0; i < n; i++)
cout << " "<<Vp[i]<<" ";
cout << " ] ";
system("pause");
}
#include<stdio.h>
#include<stdlib.h>
#include <iostream>
int * produit (int **M, int *V, int N)
{
int *Vp = new int[N];
for(int i = 0; i < N; i++)
Vp[i]=0;
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++)
Vp[i] += M[i][j] * V[j];
}
return Vp;
}
void affichage(int **Mat, int N, int M){
for(int i = 0; i < N; i++) {
for(int j = 0; j < M; j++) {
cout << Mat[i][j] ;
cout << "\t";
}
cout << "\n";
}
cout << "\n";
}
int main(int argc, char *argv[])
{
int n=3;
int** M = new int* [ n ];
for (int i=0; i < n; i++)
M[i] = new int[ n ];
srand(time(NULL));
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
M[i][j] =rand()%10;
affichage(M,n,n);
int V[3] = {2,6,3};
cout << "\n V = [ ";
for(int i = 0; i < n; i++)
cout << " "<<V[i]<<" ";
cout << " ] ";
int *Vp = produit(M,V,n);
cout << "\n Vp = [ ";
for(int i = 0; i < n; i++)
cout << " "<<Vp[i]<<" ";
cout << " ] ";
system("pause");
}