Powrót do listy plików
forwardsubstitution.c
#include<stdio.h>
#include<math.h>
#include<ctype.h>
#define NWIER 50
typedef double typ;
int main(){
double **L;
double *b;
double *x;
double temp;
int i,j;
L = (typ **)calloc(NWIER,sizeof(typ));
for(i=0; i<NWIER; i++){
L[i] = (typ *)calloc(NWIER,sizeof(typ));
}//for i
b= (typ **)calloc(NWIER,sizeof(typ));
x= (typ **)calloc(NWIER,sizeof(typ));
for(i=0;i<NWIER;i++){
for(j=0;j<NWIER;j++){
if(j<=i){
L[i][j]=cos(.1*(2*NWIER+2-i-j));
// printf("L[%i][%i]=%f\n",i,j,L[i][j]);
}//if j>=i
else{
L[i][j]=0;
}
}//for j
}//for i
for(i=0;i<NWIER;i++){
x[i]=0;
b[i]=1;
}
// printf("%f,%f,%f",x[NWIER-1],b[NWIER-1],L[NWIER-1][NWIER-1]);
// x[0]=b[0]/L[0][0];
// ^- niepotrzebne bo x[0]=(b[0] - L[0][0]*(x[0]=0))/L[0][0]
// czyli x[0]= b[0]/L[0][0]
//fortuna-mecukow 5.3.2 str 200
for(j=0;j<NWIER;j++){
temp=0.;
for(i=0;i<j;i++){
temp+=L[j][i]*x[i];
}
x[j]=(b[j]-temp)/L[j][j];
}
for(i=0;i<NWIER;i++)
printf("%.10f\n",x[i]);
return 0;
}
syntax highlighted by
Code2HTML, v. 0.9.1
kod przerobiony z HTML na XHTML za pomocą HTML Tidy for Linux/x86
Materiały z Metod Numerycznych udostępnione zostały na zasadach licencji GPL w wersji 2.