Dev - C++ - problema con el producto entre matriz y vector

 
Vista:
sin imagen de perfil

problema con el producto entre matriz y vector

Publicado por luis (1 intervención) el 29/02/2020 00:46:25
el programa recibe un sistema de ecuaciones (en forma de matriz) al cual le calcula su inversa para luego realizar el producto por los valores de cada ecuación para así hallar la solución a cada una de las incógnitas del sistema, pero el problema es que a la hora de realizar el producto entre la inversa y vector me arroja un resultado erróneo; llevo bastante tiempo intentando encontrar el error :(. les agradecería su ayuda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include "iostream"
using namespace std;
 
int i, j, k, n, p, q, s, z;
double C[1000],V[1000],M[1000][1000], coef, aux[1000], elemento;
 
int main()
{
	cout << "introduzca la dimension de la matriz: ";
	cin >> n;
 
	for (i = 0; i<n; i++)
	{
		for (j = 0; j<n; j++)
		{
			cout << "Ingrese el valor de M" "[" << i << "]""[" << j << "]:";
			cin >> M[i][j];
		}
	}
 
	for (i = 0; i<n; i++)
		for (j = n; j<2 * n; j++)
		{
			if (i == (j - n))
				M[i][j] = 1;
			else
				M[i][j] = 0;
		}
	for (s = 0; s<n; s++)
	{
		elemento = M[s][s];
		for (j = 0; j<2 * n; j++)
			M[s][j] = M[s][j] / elemento;
 
		for (i = 0; i<n; i++)
		{
			if (i == s)
				;
			else
			{
				coef = M[i][s];
				for (j = 0; j<2 * n; j++)
					aux[j] = M[s][j] * (coef*-1);
				for (j = 0; j<2 * n; j++)
					M[i][j] = M[i][j] + aux[j];
			}
		}
	}
	//Imprimir la matriz inversa
 
	for (i = 0; i<n; i++)
	{
		for (j = n; j < 2 * n; j++)
		{
			cout << M[i][j] << "   ";
		}
 
		cout << endl;
	}
 
 
	for (i = 1; i<=n; i++)
	{
		cout << "Ingrese el valor de la ecuacion "<<i<<": ";
		cin >> V[i];
	}
	cout<<"la solucion al sistema de ecuaciones es: "<<endl;
 
    C[i]=0;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{
			C[i]=C[i]+M[i][j]*V[j];
		}
 
	}
 
	for(i=0;i<n;i++)
	{
		cout<<C[i]<<endl;
	}
 
 
 
	return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder