当前位置:首页 > 思想汇报 > 【追赶法求解方程组】用追赶法解方程组例题
 

【追赶法求解方程组】用追赶法解方程组例题

发布时间:2019-07-25 09:27:33 影响了:

// 程序7.5 追赶法求解三对角方程组

#include

#include

#include

#define MAX_n 100

#define PRECISION 0.0000001

//解输出

void SulutionOutput(float x[],int n)

{

int i;

for(i=1;i

printf("\nx[%d]=%f",i,x[i]);

}

//三对角方程组元素输入

void TriDiagonalMatrixInput(float a[],float b[],float c[],float f[],int n)

{

int i;

printf("Input b[1],c[1],f[1]:");

scanf("%f %f %f",&b[1],&c[1],&f[1]);

for(i=2;i

{

printf("Input a[%d],b[%d],c[%d],f[%d]:",i,i,i,i);

scanf("%f %f %f %f",&a[i],&b[i],&c[i],&f[i]);

}

printf("Input a[%d],b[%d],f[%d]:",n,n,n);

scanf("%f %f %f",&a[n],&b[n],&f[n]);

}

//三对角方程组求解 — 追赶法

int Z_G_method(float a[],float b[],float c[],float f[],int n)

{

int i;

//

c[1]/=b[1];

for(i=2;i

c[i]/=(b[i]-a[i]*c[i-1]);

//

f[1]/=b[1];

for(i=2;i

f[i]=(f[i]-a[i]*f[i-1])/(b[i]-a[i]*c[i-1]);

//

for(i=n-1;i>0;--i)

f[i]-=c[i]*f[i+1];

}

void main()

{

int n;

float a[MAX_n],b[MAX_n],c[MAX_n],f[MAX_n];

printf("\nInput n=");

scanf("%d",&n);

TriDiagonalMatrixInput(a,b,c,f,n);

Z_G_method(a,b,c,f,n);

SulutionOutput(f,n);

}

/*

运行实例:

Input n=4

Input b[1],c[1],f[1]:2 1 1

Input a[2],b[2],c[2],f[2]:1 3 1 2

Input a[3],b[3],c[3],f[3]:1 4 1 3

Input a[4],b[4],f[4]:1 5 4

x[1]=0.294118

x[2]=0.411765

x[3]=0.470588

x[4]=0.705882

*/

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3