追赶法的C语言程序
#include
#include
void main()
{
float a[3][3] = {5,1,0,1,5,1,0,1,5}, b[3] = {17,14,7},x[3] = {0},y[3] = {0};
float temp;
int i,j,k;
for(i = 0;i < 3;i ++)
{
temp = 0;
for(j = 0,k = i + 1;j < i;j ++)
temp += a[j][i]*a[i][j];
a[i][i] = a[i][i] - temp;
a[i][k] = a[i][k]/a[i][i];
}
y[0] = b[0]/a[0][0];
for(i = 1;i < 3;i ++)
{
temp = 0;
for(j = 0;j < i;j ++)
temp += y[j]*a[i][j];
y[i] = (b[i] - temp)/a[i][i];
}
printf("the changed array is:\n");
for(i = 0;i < 3;i ++)
{
for(j = 0;j < 3;j ++)
printf("%10.5f",a[i][j]);
printf("|%10.5f\n",y[i]);
}
x[2] = y[2];
for(i = 1;i >= 0;i --)
{
temp = 0;
for(j = 2;j > i;j --)
temp += x[j]*a[i][j];
x[i] = y[i] - temp;
}
printf("the array answer is x[3]=[");
for(i = 0;i < 3;i ++)
printf("%10.5f",x[i]);
printf("]\n");
#include "stdio.h"
#include "process.h"
#define N 4
double a[N-1]={-1,-1,-1}; double d[N]={2,2,2,2}; double c[N]={-1,-1,-1,-1}; double p[N];
double q[N-1];
double b[N]={5,-12,11,-1}; void p_q()
{
int k;
if(d[0]==0){printf("Method failed\n");exit(0);}
p[0]=d[0];
q[0]=c[0]/p[0];
for(k=1;k=0;k--)
x[k]=y[k]-q[k]*x[k+1]; for(k=0;k