📄 d16r2.cpp
字号:
#include<math.h>
#include<iomanip.h>
#include<iostream.h>
#include<process.h>
void main()
{
//program d16r2
//driver for routine ADI
int jmax,i,j,mid1,k;
double pi,aaa,alpha,beta,alim,eps;
double a[12][12],b[12][12],c[12][12],d[12][12];
double e[12][12],f[12][12],u[12][12],g[12][12];
jmax = 11;
pi = 3.1415926;
for (i=1; i<=jmax; i++)
{
for (j = 1; j<=jmax; j++)
{
a[i][j] = -1.0;
b[i][j] = 2.0;
c[i][j] = -1.0;
d[i][j] = -1.0;
e[i][j] = 2.0;
f[i][j] = -1.0;
g[i][j] = 0.0;
u[i][j] = 0.0;
}
}
mid1 = jmax / 2 + 1;
g[mid1][mid1] = 2.0;
alpha = 2.0 * (1.0 - cos(pi / jmax));
beta = 2.0 * (1.0 - cos((jmax - 1) * pi / jmax));
alim = log(4.0 * jmax / pi);
k = 0;
do
k = k + 1;
while (pow(2 , k) < alim);
eps = 0.0001;
adi(a,b,c,d,e,f,g,u,jmax,k,alpha,beta,eps);
cout<<endl;
cout<<"adi Solution:"<<endl;
cout<<endl;
cout<<setprecision(2)<<setiosflags(ios::fixed);
for (i = 1; i<=jmax; i++)
{
for (j = 1; j<=jmax; j++)
cout<<setw(7)<<u[i][j];
cout<<endl;
}
cout<<endl;
cout <<"Test that sulotion satisfies Difference Eqns:"<<endl;
cout<<endl;
for (i = 2; i<=jmax - 1; i++)
{
for (j = 2; j<=jmax-1 ; j++)
{
aaa = -4.0 * u[i][j] + u[i + 1][j];
g[i][j] = aaa + u[i-1][j] + u[i][j-1] + u[i][j + 1];
}
for (j = 2; j<=jmax-1 ; j++)
cout<<setw(8)<<g[i][j];
cout<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -