实验名称:用追赶法解三对角线方程组C语言程序设计
实验内容:
1.实验目的
掌握追赶法解三对角线方程组求解方法的C语言程序设计思想;
2.实验步骤
1)解决的问题:用追赶法求解三对角线方程组
2)软件: C语言
3)程序来源:自编
4)公式:
5)程序源代码:
#include <stdio.h>
#include <conio.h>
#include <dos.h>
void main()
{
char play;
int i,n;
float a[100],b[100],c[100],d[100];
float u[100],l[100],y[100],x[100];
do
{
textcolor(14);
clrscr();
cprintf("Please input the square distance set of piece n:\r\n");
scanf("%d",&n);
clrscr();
printf("Please input a2--an:\n");
for(i=2;i<=n;i++)
{
printf("a%d=",i);
scanf("%f",&a[i]);
}
clrscr();
printf("Please input b1--bn:\n");
for(i=1;i<=n;i++)
{
printf("b%d=",i);
scanf("%f",&b[i]);
}
clrscr();
printf("Please input c1--c(n-1):\n");
for(i=1;i<n;i++)
{
printf("c%d=",i);
scanf("%f",&c[i]);
}
clrscr();
printf("Please input d1--dn:\n");
for(i=1;i<=n;i++)
{
printf("d%d=",i);
scanf("%f",&d[i]);
}
clrscr();
u[1]=b[1];
y[1]=d[1];
for(i=2;i<=n;i++)
{
l[i]=a[i]/u[i-1];
u[i]=b[i]-l[i]*c[i-1];
y[i]=d[i]-l[i]*y[i-1];
}
x[n]=y[n]/u[n];
for(i=n-1;i>0;i--)
x[i]=(y[i]-c[i]*x[i+1])/u[i];
cprintf("The result:\r\n\n");
for(i=n;i>=1;i--)
printf(" x%d=%f\n",i,x[i]);
getche();
printf("\n");
printf("continue?(y/n)");
play=getche();
}while(play=='y'||play=='Y');
sound(555);
delay(10000);
nosound();
}
5)运行过程及结果:
先输入n的值,再分别输入a2---an,b1---bn,c1---cn-1,d1---dn的值即可。
如:用追赶法解三对角方程组
过程:
Please input the square distance set of piece n:
4↙ (↙表示回车键)
Please input a2--an:
1↙
1↙
2↙
Please input b1--bn:
2↙
3↙
1↙
1↙
Please input c1--c(n-1):
1↙
1↙
1↙
Please input d1--dn:
1↙
2↙
2↙
0↙
结果:
The result:
X4=2.000000
X3=-1.000000
X2=1.000000
X1=0.000000
3.分析与讨论