Anche quì, come nel caso dell'argomento "Metodo di eliminazione di Gauss senza pivoting" ho il problema che il programma parte, ovvero non ci sono errori tecnici segnalati dal pc, ma i risultati, eccetto il primo, sono completamente sbagliati.
Algoritmo per il calcolo del prodotto tra matrice n*m e vettore di dimensione m;
Vi posto il codice della function
float gaxpy(float A[][100], float b[], float x[], int n, int m)
{
int i, j;
for(i=0;i<n;i++)
x[i]==0;
for(i=0;i<n;i++) /*ciclo sulle righe */
for(j=0;j<m;j++)
x[i]=x[i]+A[i][j]*b[j];
return x[n];
}
E questo è il programma chiamante
#include<stdio.h>
float gaxpy(float A[][100], float b[], float x[], int n, int m);
main()
{int i, j, n, m;
printf("Inserire la dimensione del vettore m=");
scanf("%d", &m);
printf("La matrice ha dimensioni nxm, con m=%d e n=", m);
scanf("%d", &n);
float A[n][m], b[m], x[n];
printf("Inserire le n*m=%d componenti della matrice A per righe:\n", n*m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
printf("A[%d][%d]=", i, j);
scanf("%f", &A[i][j]);
};
printf("Inserire le m=%d componenti del vettore b:\n", m);
for(i=0;i<m;i++)
{
printf("b[%d]=", i);
scanf("%f", &b[i]);
};
x[n]=gaxpy(A, b, x, n, m);
printf("Le n=%d componenti del vettore x prodotto di matrice n*m per vettore di lunghezza m sono:\n", n);
for(i=0;i<n;i++)
printf("x[%d]=%f\n", i, x[i]);
}
Io credo di commettere lo stesso errore sia in questo algoritmo che in quello di gauss.
Spero che mi possiate aiutare.
Grazie!!