Exercício 12: Construir um trecho de código que realize a multiplicação de uma matriz A por um vetor ve armazene o resultado em um vetor r .
Passo 1
O enunciado pede um código que receba uma matriz A de tamanho m×n e um vetor v de tamanho n, faça a multiplicação A·v e armazene o resultado num vetor r de tamanho m. O conteúdo é multiplicação matriz-vetor, em que cada componente r_i é o produto escalar da i-ésima linha de A pelo vetor v.
Passo 2
Para multiplicar A por v usamos a definição de produto matriz-vetor: para todo i de 0 até m-1, vale
Precisamos então percorrer cada linha i de A e, para cada linha, somar A[i][j]*v[j] em r[i].
Passo 3
Implementamos isso com dois loops aninhados em C (ou linguagem similar): o loop externo varia i de 0 a m-1 e inicializa r[i] com zero; o loop interno varia j de 0 a n-1 e acumula o produto A[i][j]*v[j] em r[i].
Resposta
// Supondo A[][], v[] e r[] já declarados e m,n definidos
for(int i = 0; i < m; i++) {
r[i] = 0; // inicializa cada componente do resultado
for(int j = 0; j < n; j++) {
r[i] += A[i][j] * v[j]; // acumula o produto escalar da linha i com o vetor
}
}
for(int i = 0; i < m; i++) {
r[i] = 0; // inicializa cada componente do resultado
for(int j = 0; j < n; j++) {
r[i] += A[i][j] * v[j]; // acumula o produto escalar da linha i com o vetor
}
}