ESTE PROGRAMA ES ELAVORADO EN C++
#include<stdio.h>
#include<conio.h>
#include<math.h>
void llenarm(float matrizA[100][100],int n){
for(int i=0;i<=n-1;i++){
for(int j=0;j<=n-1;j++){
printf("Ingresar A[%d][%d]=",i,j);
scanf("%f",&matrizA[i][j]);}
}
}
void llenarv(float matrizB[100],int n){
for(int j=0;j<=n-1;j++){
printf("Ingresar B[%d]=",j);
scanf("%f",&matrizB[j]);}
}
void llenaraprox(float maprox[100],int n){
for(int j=0;j<=n-1;j++){
printf("Ingresar X[%d]=",j);
scanf("%f",&maprox[j]);}
}
void mostrar(float matrizB[100],int n){
for(int j=0;j<=n-1;j++){
printf("nn");
printf("t%f",matrizB[j]);}
}
void mostrar2(float matriz[100][100],float B[100],int n){
for(int i=0;i<=n-1;i++){
printf("nn");
for(int j=0;j<=n-1;j++){
printf("t%f",matriz[i][j]);}
printf("t%f",B[i]);
}
}
//Aca esta el metodo SOR!!!
void SOR(float A[100][100],float B[100],float X0[100],float X[100],float max,float w,int n){
int t=1;
while(t<=max){
for(int i=0;i<=n-1;i++){
float suma=0,suma1=0;
for(int j=0;j<=i-1;j++){
suma=suma+A[i][j]*X[j];}
for(int j=i+1;j<=n-1;j++){
suma1=suma1+A[i][j]*X0[j];}
X[i]=(1-w)*X0[i]+w*(-suma-suma1+B[i])/A[i][i];
}
for(int k=0;k<n;k++)
{X0[k]=X[k];}
t++;
}
}
int main(){
float A[100][100],B[100],X0[100],X[100],tol,w;
int n,max;
printf("tttResolucion de Sistemas AX=Bn");
printf("ttt METODO SORn");
printf("nIngresar numero de incognitas: ");
scanf("%d",&n);
printf("nIngresar el numero maximo de iteraciones: ");
scanf("%d",&max);
printf("nIngresar el parametro de relajacion w: ");
scanf("%f",&w);
printf("nINGRESAR A:n");
llenarm(A,n);
printf("nINGRESAR B:n");
llenarv(B,n);
printf("nIngresar Aproximacion Inicial X0: n");
llenaraprox(X0,n);
printf("nEl Sistema ingresado es:n");
mostrar2(A,B,n);
printf("nnnDespues de %d iteraciones con un parametro de relajacion w=%fn",max,w);
printf("nLas soluciones aproximadas son:n");
SOR(A,B,X0,X,max,w,n);
mostrar(X,n);
getch();
getch();
}
<>