#include <stdio.h>
#include<math.h>
#include <stdlib.h>
#define N 1000
#define epsilon 0.0000005
double norma(double *x1, double *x0, int n);
int main(){
int i,n,maxiter,itcount;
double w;
double a[N],b[N],c[N],d[N],x0[N],x1[N];
printf("dwse diastasi N\n");
scanf("%d",&n);
printf("dwse maxiter\n");
scanf("%d",&maxiter);
for(i=0;i<n;i++){
if(i!=0 && i!=n-1){
a[i]=-1
c[i]=-2
}
else if(i==0){
a[i]=0
c[i]=-2
}
else{
a[i]=-1
c[i]=0
}
b[i]=4
d[i]=a[i]+b[i]+c[i];
x0[i]=d[i];
}
for(w=0.1;w<=1.9;w+=0.1){
itcount=0;
while (itcount<=maxiter){
for(i=0;i<n;i++){
/*4.1*/
/*homework*/
x1[i]=(1-w)*d[i]+w*.....
/*homework*/
}
itcount++;
/*4.3*/
if(norm(x0,x1,n)<epsilon){
printf("Brethike lusi gia w=%lf se itcount=%d!\n Auti einai:\n",w,itcount);
for(i=0;i<n;i++){
printf("x1[%d]=%lf",i,x1[i]);
}
break;
}
for (i=0;i<n;i++){
x0[i]=x1[i];
}
if(itcount==maxiter+1)
printf("Oxi sugklisi meta apo %d epanalipseis",maxiter);
}
}
system("PAUSE");
}
double norma(double *x1, double *x0,int n){
double norm=0.0;
int i;
for(i=0;i<n;i++)
/*code to be done*/
.......
/*code to be done*/
norm = ..............
return norm;
}