Hola .
Necesito sus ayudas para poder armar una matriz a partir de un sistema de ecuaciones, cuyos parámetros son ingresados por el usuario. Sólo preciso la matriz.
El sistema de ecuaciones es el siguiente: https://imageshack.com/i/p5jShAlcj
Los parámetros ingresados por el usuario son k y W .
Lo que me interesa es obtener ésta matriz:
k1+k2 -k2 0
-ki ki+ki+1 -ki+1
-kn kn
(Para enésimas k ingresadas)
Eme aquí el código construido (desastroso) hasta ahora:
Necesito sus ayudas para poder armar una matriz a partir de un sistema de ecuaciones, cuyos parámetros son ingresados por el usuario. Sólo preciso la matriz.
El sistema de ecuaciones es el siguiente: https://imageshack.com/i/p5jShAlcj
Los parámetros ingresados por el usuario son k y W .
Lo que me interesa es obtener ésta matriz:
k1+k2 -k2 0
-ki ki+ki+1 -ki+1
-kn kn
(Para enésimas k ingresadas)
Eme aquí el código construido (desastroso) hasta ahora:
Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
using namespace std;
const int nb=100;
int main()
{
float D[nb][nb];
int i,j;
float m[i][j];
int nbloques;
int nresortes;
float w[100];
float k[100];
cout<<"-------------------------------------------\n";
cout<<"Bienvenido al sistema vertical masa resorte.\n";
cout<<"Ingrese cantidad de bloques y resortes al sistema:\n"<<endl;
do{
cout<<"Cantidad de bloques: ";
cin>>nbloques;
cout<<"Cantidad de resortes: ";
cin>>nresortes;
cout<<endl;
if((nbloques<nresortes)||(nbloques>nresortes))
{
cout<<"RECUERDE: el sist. admite igual cantidad de resortes y bloques.\n";
cout<<endl;
cout<<"Vuelva a ingresar los par\xa0metros, por favor: \n"<<endl;
}else
break;
}while(1);
cout<<"Pesos (kg) de cada uno de los bloques:"<<endl;
for(int i=0; i<nbloques; i++)
{ cout<<"Bloque "<<i+1<<": ";
cin>>w[i];
cout<<endl;
}
for(int i=0; i<nresortes;i++)
{
cout<<"Ki del resorte "<<i+1<<": ";
cin>>k[i];
cout<<endl;
}
cout<<"El sistema matricial a resolver:\n"<<endl;
//------AQUI COMIENZA EL HORROR
for (int i=0; i<(nbloques+1); i++)
for (int j=0; j<(nbloques+1); j++)
{
if(i==0 && j==1)
{
m[i][j]=-k[0];
}
else if((i==0) && (j==nbloques+1))
{
m[i][j]=0;
}
else if((j==0) && (i==nbloques+1))
{
m[i][j]=0;
}
else if(i==j)
{
m[i][j]=k[j+1]+k[i];
}
else
{
m[i][j]=-k[(j+1)-i];
}
}
for (int i=0; i<(nbloques+1); i++)
for (int j=0; j<(nbloques+1); j++)
{
cout<<m[i][j]<<endl;
}
system("pause");
}