作业:
已知一流场满足下面的稳态对流扩散方程:
(
ρu
x
v
y
2
2
2
2
x
y
其中:
5u , 3v ,
5.0
。下图中,流场为正方形,边长为 1,且
50AB
,
BC
100
,
CD
300
,
AD
200
。用数值解法,计算此流场的分布。
解:
一、离散化:
原式代入数据并变形有:
5
x
3
y
5.0
2
2
2
2
x
y
对上式进行数值求解,取各边步长均相等,并分别设 0.1,0.05,0.04 三种网格,此三种网
,均大于零小于 2,可以采用中心差分,离散后公式变为:
格的贝克利数:
u
x
P
x
1j,i
2
1-ji,
5
x
j,1i
2
j,1-i
3
5.0
j,1i
2
j,i
2
x
j,1-i
1j,i
2
j,i
2
x
1-ji,
整理后有:
j,i
25.1-25.0
x
j,1i
75.0-25.0
x
1j,i
25.0
25.1
x
j,1-i
25.0
75.0
x
1-j,i
二、源程序:
根据上式,利用 C++进行编程,主要程序如下:
f1[200][200],f2[200][200],x;
float
int i,j,n,a;
printf("%s","输入步长 x:");
scanf("%f",&x);
n=1.00/x;
for(i=0;i<=n;i++)
{
j=0;
f1[i][j]=50;
}
for(j=0;j<=n;j++)
{
i=0;
f1[i][j]=200;
}
for(i=0;i<=n;i++)
{
j=n;
f1[i][j]=300;
}
for(j=0;j<=n;j++)
{
i=n;
f1[i][j]=100;
}
for(i=1;i=1e-3)
a=1;
}
}
//保证每个节点值的误差都小于 0.001
{f1[i][j]=(0.25-1.25*x)*f1[i][j+1]+(0.25-0.75*x)*f1[i-1][j]+(0.25+1.25*x)*f1[i][j-1]+(0.25+0.75
*x)*f1[i+1][j];
}
while(a==1);
三、计算结果
(1)步长为 0.1,则共有 11 行节点。运行结果如下:
第 0 行 200.000
200.000
200.000
200.000
200.000
200.000
200.000
200.000
200.000
第 1 行 50.000
第 2 行 50.000
200.000
86.161
181.214
59.752
119.448 164.660
147.199
第 3 行 50.000
106.592
第 4 行 50.000
102.180
第 5 行 50.000
102.191
第 6 行 50.000
第 7 行 50.000
106.206
第 8 行 50.000
106.948
第 9 行 50.000
104.987
第 10 行 100.000
100.000
53.265
155.860
51.837
152.532
52.017
152.121
53.157
104.119 152.634
55.616
152.209
60.771
148.217
72.262
135.308
100.000
100.000
300.000
103.935
300.000
68.902
300.000
57.693
300.000
54.881
300.000
55.358
300.000
57.828
300.000
62.502
300.000
70.423
300.000
83.016
300.000
100.000
100.000
113.848
120.211
124.991
129.432 135.272
76.449
82.752
88.409
94.314 102.569
62.596
67.679
72.969
79.041
87.995
58.838
63.392
68.425
74.382
83.327
59.628
64.404
69.494
75.305
83.883
63.144
68.502
73.708
79.210
87.039
69.112
74.887
79.867
84.649
91.203
77.730
83.074
87.092
90.575
95.238
88.746
92.103
94.278
95.991
98.287
100.000
100.000
100.000
100.000
100.000
(2)步长为 0.05,则共有 21 行节点。运行结果如下:
第 0 行 200.000
200.000
200.000
第 1 行 50.000
154.431
171.447
第 2 行 50.000
121.712
150.264
200.000
200.000
200.000
101.746
155.962
179.340
70.400
124.177
163.141
58.978
第 3 行 50.000
101.883
98.995
150.603
134.714
54.325
第 4 行 50.000
86.758
83.786
141.278
123.572
52.271
第 5 行 50.000
74.023
76.909
115.877 134.677
51.322
第 6 行 50.000
68.103
70.855
110.841 130.277
50.886
67.500
127.586
第 7 行 50.000
64.856
107.821
200.000
200.000
200.000
124.700
157.343
193.919
86.389
126.446
185.472
68.130
104.622
177.173
59.412
89.676
170.346
55.182
79.837
165.277
53.116
73.728
161.809
52.137
70.312
159.643
200.000
200.000
200.000
136.360
158.678
224.280
97.617
128.673
225.844
76.054
107.374
222.521
64.497
92.685
218.827
58.410
82.937
215.854
55.264
76.833
213.754
53.721
73.390
212.418
200.000
200.000
300.000
143.071
160.081
300.000
105.486
131.040
300.000
82.545
110.348
300.000
69.209
95.999
300.000
61.712
86.416
300.000
57.646
80.371
300.000
55.585
76.931
300.000
200.000
200.000
200.000
200.000
200.000
200.000
147.368
161.705
150.371
163.798
152.626
166.785
111.179
133.802
115.481
137.369
118.886
142.441
87.814
113.855
92.148
118.405
95.806
124.859
73.443
99.959
77.228
105.125
80.643
112.453
64.956
90.623
60.167
84.692
57.673
81.283
68.086
96.149
71.099
103.998
62.767
90.403
59.935
87.061
65.414
98.535
62.336
95.313
第 8 行 50.000
63.470
106.296
第 9 行 50.000
63.411
105.847
第 10 行 50.000
64.343
106.135
第 11 行 50.000
66.065
106.881
第 12 行 50.000
68.460
107.841
第 13 行 50.000
71.458
108.795
第 14 行 50.000
75.004
109.526
第 15 行 50.000
79.024
109.817
第 16 行 50.000
83.404
109.452
第 17 行 50.000
87.964
108.241
第 18 行 50.000
92.453
106.090
第 19 行 50.000
96.566
103.147
第 20 行 100.000
100.000
100.000
51.741
50.713
68.835
66.061
158.470
126.176
51.689
50.688
68.771
66.006
158.004
125.682
51.875
50.767
69.757
66.984
157.997
125.799
52.271
50.934
71.549
68.769
158.221
126.262
52.894
51.203
73.975
71.215
158.455
126.827
53.811
51.606
76.904
74.218
158.461
127.254
55.147
52.211
80.218
77.687
157.950
127.283
57.121
53.147
83.794
81.516
156.521
126.606
60.105
54.668
87.489
85.569
153.569
124.845
64.739
57.321
91.135
89.668
148.120
121.542
72.086
62.401
93.592
94.549
116.226 138.607
73.318
83.641
97.553
97.106
122.856
108.717
100.000
100.000
100.000
100.000
100.000
100.000
54.726
53.086
71.884
75.398
211.676 300.000
53.010
54.636
71.794
75.262
211.359 300.000
53.329
55.100
72.751
76.152
211.310 300.000
53.990
56.038
74.495
77.794
211.382 300.000
57.455
55.012
76.834
79.983
211.425 300.000
59.427
56.476
79.617
82.552
211.265 300.000
62.085
58.530
85.356
82.710
210.673
300.000
65.618
61.405
88.259
85.980
209.285
300.000
70.249
65.441
91.128
89.285
300.000
206.451
71.089
76.191
93.837
92.477
300.000
200.826
78.838
83.506
96.272
95.409
300.000
189.279
88.859
91.832
98.344
97.949
300.000
163.614
100.000
100.000
100.000
100.000
100.000
100.000
(3)步长为 0.04,则共有 26 行节点。运行结果如下:
第 0 行 200.000
200.000
200.000
200.000
第 1 行 50.000
159.983
200.000
200.000
200.000
300.000
105.613
161.367
200.000
200.000
200.000
200.000
200.000
200.000
129.762
162.535
141.846
163.559
200.000
200.000
200.000
148.723
164.493
56.623
79.728
56.531
79.527
57.141
80.311
58.340
81.798
60.111
83.772
62.504
86.055
65.609
88.493
69.541
90.949
74.401
93.300
80.211
95.439
86.808
97.291
93.701
98.812
58.736
85.490
58.653
85.209
59.395
85.850
60.819
87.131
62.878
88.825
65.581
90.742
68.970
92.720
61.027
93.745
60.957
93.376
61.809
93.848
63.410
94.876
65.677
96.226
68.580
97.695
72.107
99.101
73.083
94.613
76.233
100.278
77.919
96.302
80.887
101.083
83.383
97.696
85.912
101.416
89.219
98.754
91.037
101.254
94.968
99.495
95.879
100.699
100.000
100.000
100.000
100.000
100.000
100.000
200.000
200.000
200.000
200.000
200.000
200.000
200.000
200.000
200.000
153.077
165.381
156.073
166.269
158.276
167.207
168.264
231.660
第 2 行 50.000
129.381
143.551
237.778
第 3 行 50.000
106.654
124.525
237.083
第 4 行 50.000
90.253
110.084
234.767
第 5 行 50.000
78.738
99.319
232.369
第 6 行 50.000
70.877
91.487
230.339
第 7 行 50.000
65.684
85.978
228.770
第 8 行 50.000
62.410
82.300
227.637
第 9 行 50.000
60.515
80.057
226.876
第 10 行 50.000
59.621
78.935
226.413
第 11 行 50.000
59.473
78.687
226.176
第 12 行 50.000
59.910
79.117
226.098
第 13 行 50.000
169.536
300.000
73.788
131.661
145.795
300.000
61.393
109.365
127.484
300.000
55.939
93.047
113.551
300.000
53.308
81.408
103.131
300.000
51.955
73.334
95.522
300.000
51.231
67.920
90.145
300.000
50.841
64.466
86.535
300.000
50.636
62.451
84.313
300.000
50.542
61.500
83.176
300.000
50.520
61.354
82.883
300.000
50.550
61.841
83.239
300.000
50.624
171.175
173.417
176.658
181.597
189.584
203.608
91.817
133.618
148.682
72.482
111.752
131.291
62.532
95.583
118.013
57.269
83.912
108.044
54.410
75.716
100.732
52.830
70.156
95.539
51.958
66.574
92.029
51.496
64.470
89.846
51.282
63.476
88.699
51.233
63.332
88.356
51.304
63.858
88.625
104.188
135.357
152.618
81.779
113.917
136.462
112.694
136.960
158.264
89.185
115.946
143.818
68.845
97.943
124.057
74.472
100.200
132.596
61.425
86.307
114.689
57.161
78.057
107.775
54.711
72.410
102.835
53.324
68.742
99.470
52.575
66.575
97.350
52.228
65.550
96.206
52.150
65.406
95.813
52.271
65.956
95.986
65.467
88.652
124.031
60.026
80.402
117.653
56.782
74.713
113.057
54.894
70.995
109.897
53.857
68.786
107.880
53.373
67.736
106.759
53.269
67.587
106.324
53.450
68.147
106.400
118.733
138.499
166.726
95.030
117.921
154.672
79.338
102.434
145.051
69.241
91.015
137.557
62.881
82.810
131.891
58.961
77.118
127.759
56.623
73.376
124.888
55.318
71.141
123.029
54.705
70.072
121.965
54.580
69.911
121.508
54.826
70.464
121.497
123.196
140.047
179.939
99.693
119.928
171.167
83.512
104.737
163.646
72.699
93.488
157.537
65.657
85.366
152.801
61.192
79.704
149.292
58.471
75.962
146.820
56.930
73.714
145.197
56.204
72.627
144.244
56.066
72.445
143.801
56.378
72.974
143.725
126.633
141.692
201.432
103.489
122.080
196.791
87.110
107.230
191.818
75.852
96.195
187.419
68.323
88.196
183.873
63.439
82.594
181.190
60.407
78.873
179.275
58.669
76.622
178.001
57.850
75.518
177.236
57.704
75.307
176.859
58.082
75.796
176.757
51.476
52.562
53.872
55.384
57.070
58.897
第 14 行 50.000
62.192
81.422
226.165
第 15 行 50.000
63.966
83.069
226.182
62.852
60.833
80.071
84.089
226.115 300.000
50.742
64.322
85.304
300.000
50.911
66.216
86.777
300.000
51.145
68.517
88.414
300.000
51.469
71.214
90.132
300.000
51.922
74.295
91.856
300.000
52.577
77.730
93.518
300.000
53.559
81.465
95.060
300.000
55.117
85.407
96.436
300.000
第 22 行 50.000
57.782
87.844
89.421
96.355
97.618
211.582 300.000
62.819
93.326
98.595
300.000
73.582
96.919
99.380
300.000
第 20 行 50.000
79.202
92.901
221.899
第 21 行 50.000
83.425
94.715
218.241
第 24 行 50.000
96.401
99.006
170.174
第 16 行 50.000
66.155
84.923
226.090
第 17 行 50.000
68.771
86.903
225.794
第 18 行 50.000
71.823
88.937
225.160
第 19 行 50.000
75.310
90.957
223.980
第 23 行 50.000
92.256
97.791
198.544
64.934
89.351
51.749
66.482
90.402
52.137
68.453
91.667
52.668
70.813
93.047
53.392
73.534
94.454
54.389
76.583
95.805
55.786
79.911
97.030
57.796
83.449
98.069
60.775
87.099
98.878
65.337
90.733
99.442
72.517
94.198
99.777
83.812
97.335
99.937
67.073
96.571
69.280
106.836
71.588
121.787
74.066
143.887
76.830
176.825
53.018
68.666
97.435
53.658
70.673
98.462
54.522
73.046
99.547
55.678
75.740
100.591
57.228
78.707
101.501
59.324
81.889
102.192
62.191
85.207
102.590
66.150
88.564
102.642
71.638
91.846
102.330
79.148
94.925
101.697
88.918
97.678
100.858
54.526
70.886
107.499
55.432
72.890
108.268
56.636
75.233
109.029
58.210
77.857
109.670
60.258
80.705
110.079
62.925
83.710
110.139
66.393
86.793
109.739
70.884
89.861
108.780
76.613
92.815
107.206
83.677
95.550
105.053
91.809
97.970
102.517
56.239
73.175
122.248
57.406
75.141
122.757
58.928
77.415
123.192
60.870
79.933
123.424
63.324
82.628
123.310
66.402
85.432
122.686
70.225
88.266
121.364
74.905
91.047
119.136
80.487
93.689
115.803
86.859
96.108
111.271
93.622
98.229
105.739
58.116
75.604
144.166
59.521
77.497
144.443
61.319
79.667
144.592
63.562
82.042
144.470
66.315
84.554
143.905
69.650
87.131
142.671
73.627
89.700
140.468
78.269
92.188
136.884
83.516
94.521
131.379
89.172
96.634
123.356
94.851
98.472
112.523
60.113
78.290
176.963
61.723
80.076
177.069
63.745
82.106
177.026
66.211
84.304
176.698
69.160
86.597
175.903
72.622
88.916
174.377
76.606
91.195
171.718
81.075
93.368
167.269
85.915
95.377
159.921
90.910
97.173
147.826
95.736
98.721
128.313
第 25 行 100.000
100.000
100.000
100.000
100.000
100.000
100.000
100.000
四、数据分析:
100.000
100.000
100.000
100.000
100.000
100.000
100.000
100.000
100.000
100.000
100.000
100.000
100.000
100.000
100.000
100.000
100.000
100.000
通过对比可知,步长为 0.1 的数据组,相对于其他两组,数据明显误差较大,此处不
详细分析。同时步长为 0.05 和 0.04 的两组数据变化情况也更符合实际,更合理。
我们将步长为 0.05 和 0.04 的两组数据,取同一节点处的数值结果(数据中标黄色的
数据),进行误差分析,来判断精确度。
第 4 行 69.209
第 8 行 54.726
第 12 行 57.455
第 16 行 70.249
步长 0.05
83.786
63.470
68.460
83.404
95.999
75.398
79.983
91.128
123.572 第 5 行
69.241
106.296 第 10 行 54.705
107.841 第 15 行 57.406
109.452 第 20 行 70.225
步长 0.04
83.912
63.476
68.453
83.449
96.195
75.578
80.276
91.195
124.031
106.759
108.268
109.739
计算可知,两次数据相差很小,均小于 0.5,精度都在 0.5%以下,所以可以认为数据
基本稳定,计算结果准确。