数值分析课程设计实验报告.docx
《数值分析课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《数值分析课程设计实验报告.docx(28页珍藏版)》请在冰点文库上搜索。
数值分析课程设计实验报告
数值分析课程设计实验报告
班级:
软件111
姓名:
吴明洲
学号:
2011122590
一、计算水塔的水流量
1、将所给的数据中的时刻输入到表格中,如下图所示:
2、计算出每两个相邻的时刻之间的时间差(表格列B(n)=A
(1)-A(n)),然后除以2(表格列C(n)(n)/2)得到相邻两个时刻的中间时刻:
3、将原始数据中的水位数据输入到该表格中:
4、根据公式:
*D*D*4计算各个时刻水塔中水的体积(表格列E(n)*D*D*表格列D(n)/4),然后求出各个时间段内用水的体积(表格列F(n)
(1)(n)):
5、求中间时刻的用水率,即求该时间段(时刻差)内的平均用水量(表格列G(n)(n)(n)):
6、将中间时刻和中间时刻的用水率复制到另一张表中,以便处理(这时共产生22组数据):
到这里所有的数据处理已经结束。
接下来是研究数据所包含的规律,根据数据提出适当的数学模型,拟合一条光滑的连续的曲线。
7、在中有拟合曲线的工具,所以我先用中的工具对这组数据进行了拟合
*画出散点图:
*确定横纵坐标的意义:
*形成散点图:
*通过添加趋势线,来拟合光滑曲线:
*得到拟合的函数曲线,以及表达式
在中就可以很方便的拟合出比较符合要求的曲线,并且可以得到函数表达式。
然后开始尝试利用编程解决这个问题,也就是说用编程的方法得到相同的函数表达式!
最小二乘法通常用于曲线拟合,所谓拟合是指已知某函数的若干离散函数值{f12,…},通过调整该函数中若干待定系数f(λ1,λ2,…,λ3),使得该函数与已知点集的差别(最小二乘意义)最小。
如果待定函数是线性,就叫线性拟合或者线性回归(主要在统计中),否则叫作非线性拟合或者非线性回归。
表达式也可以是分段函数,这种情况下叫作样条拟合。
而插值是指已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给定离散点上满足约束。
插值函数又叫作基函数,如果该基函数定义在整个定义域上,叫作全域基,否则叫作分域基。
如果约束条件中只有函数值的约束,叫作插值,否则叫作插值。
从几何意义上将,拟合是给定了空间中的一些点,找到一个已知形式未知参数的连续曲面来最大限度地逼近这些点而插值是找到一个(或几个分片光滑的)连续曲面来穿过这些点。
可以看出利用最小二乘法拟合比较方便,我采用的函数形式为多项式函数,最高次为5。
拟合部分代码执行结果如下:
经过比较,可以发现在误差允许的范围内通过拟合出来的函数和通过编程而拟合出来的多项式是相统一的。
然后再将该函数应用到中,利用程序代码所求出来的多项式,画出一条光滑连续的曲线,如果这条曲线和最上面在中,纯粹用拟合出来的曲线相同的话表明拟合成功!
1、按照递增的顺序,将从0-24的数据输入到中,如下图所示。
并在第二列中输入公式:
0.00015*A2*A2*A2*A2*A2+0.012193*A2*A2*A2*A2-0.366317*A2*A2*A2+4.760591*A2*A2-22.665987*A2+66.02523,
如下图所示。
将数据填充完毕:
利用和上面的相同的方法,直接选择光滑的曲线图,而不是选择散点图:
然后就画出了一条曲线:
经过比较,可以知道在误差允许的范围内数学模型已经成功建立!
到这里该问题的数学模型已经建立好了(采用编程所得的结果进行建模和进一步的计算):
f(t)=
-0.00015t5+0.012193t4-0.366317t3+4.760591t2-22.66598766.025230
最后再通过编程计算任意时刻的用水率、一天的总用水量和水泵的工作功率:
任意时刻的用水率的算法简单,只要给出任意时间,根据上面的式子就可以求出;
一天的总用水量为上式在0-24内的积分
∫024f(t)
=[-0.000025t6+0.0024386t5-0.09157925t4+1.58686367t3-11.3329935t2+66.02523]024
水泵的工作功率的计算方法是用一次的总泵水量除以泵水时间
水泵泵一次水泵水量为:
2**D*D*(h21)/4=2*3.1415926*17.4*17.4*(10.82-8.22)/4
泵水时间为:
21=(10.954-8.967)+(22.958-20.839)
所以水泵的工作功率为:
ρ(h21)/2T
其中ρ为水的密度(3),V为上面的体积(m3),g为重力单位(9.8)。
然后将程序加以修改,将上述的三个求解功能加进去就完成了本次设计。
最终源代码:
<>
<>
<>
();
();
();
([][][]);
()
{
i;
a[6];
x[22]={0.4605,1.382,2.396,3.41,4.4245,5.439,6.453,7.467,
8.4475,11.493,12.493,13.4145,14.4285,15.4425,16.3645,
17.3785,18.484,19.498,20.399,23.419,24.433,25.447};
y[22]={51.12036405,44.10152093,39.3445281,36.88021926,36.08693844,
33.01166479,34.61458483,35.33279747,38.44874,70.58616637,74.79205304,
70.74232197,60.78930702,62.99681227,58.99594462,55.73472518,55.68433211,
59.05993154,57.55529831,59.05993154,50.95438885,44.87523183};
(,22,5);
(0<=5)
("a[]\n"[i]);
("拟合多项式为:
\(t)=()*t*t*t*t*()*t*t*t*()*t*t*()*t*()*()\n"[5][4][3][2][1][0]);
();
();
s;
(1)
{
<<"您是否还要查询某时刻的用水率():
"<<;
>>s;
(s)
{
'Y':
();
;
'N':
;
}
('N')
;
}
}
(x[]y[]a[])
{
;
*[
(1)*
(2)];
();
(*[]);
(0<)
{
(0<)
{
*(*
(2))=0;
(0<1)
*(*
(2))([t]);
}
*(*
(2)1)=0;
(0<1)
*(*
(2)1)[j]*([j]);
}
(1);
c;
}
(*x[])
{
;
p;
(0<2)
{
;
(1<1)
((*(*
(1)))>((*(*
(1)))));
()
(<)
{
*(*
(1));
*(*
(1))=*(*
(1));
*(*
(1));
}
(1<1)
{
(*(*
(1)))/(*(*
(1)));
(<)
*(*
(1))*(*(*
(1)));
}
}
(1>=0)
{
(1>1)
(*(*
(1)))[j]*(*(*
(1)));
x[i]=*(*
(1))/(*(*
(1)));
}
}
(v)
{
1;
()a*;
a;
}
()
{
t;
<<"请输入任意一个时刻,程序将就算出该时刻的用水率"<<;
>>t;
0.00015*t*t*t*t*0.012193*t*t*t*0.366317*t*t*4.760591*t*22.665987*66.025230;
<"<}
()
{
v;
0.000025*24*24*24*24*24*24+0.0024386*24*24*24*24*24-0.09157925*24*24*24*24+1.58686367*24*24*24-11.3329935*24*24+66.02523*24;
<<"这个居民区的居民一天的用水量约为:
"<}
()
{
3.1415926*17.4*8.7*(10.82-8.22);
2*(10.954-8.967)+(22.958-20.839);
*9.8*(10.82-8.22);
<<"该水塔的水泵的工作功率为"<
}
程序运行结果:
二、家乡温度问题
四川省江油市2013年6月2号一天的温度如下表:
时间(h)
0
1
2
3
4
5
6
7
8
9
10
11
温度(゜C)
23
23
23
23
22
23
24
26
27
28
29
30
时间(h)
12
13
14
15
16
17
18
19
20
21
22
23
温度(゜C)
31
31
32
31
31
30
30
29
28
28
27
27
实际温度曲线如下:
调试数据:
1
23
2
23.003
3
23.0058
4
23.0082
5
23.0101
6
23.0113
7
23.0115
8
23.0107
9
23.0086
10
23.0051
11
23
12
22.9962
13
22.9916
14
22.9869
15
22.9832
16
22.9812
17
22.982
18
22.9863
19
22.9952
20
23.0095
21
23
22
23.012
23
23.0279
24
23.044
25
23.0572
26
23.0638
27
23.0605
28
23.0439
29
23.0106
30
22.957
31
23
32
22.9546
33
22.889
34
22.8099
35
22.7242
36
22.6386
37
22.56
38
22.495
39
22.4505
40
22.4334
41
22
42
21.9425
43
21.9202
44
21.9273
45
21.958
46
22.0067
47
22.0677
48
22.1351
49
22.2033
50
22.2665
51
22.3191
52
23.1332
53
23.2542
54
23.3669
55
23.4757
56
23.5844
57
23.6974
58
23.8187
59
23.9524
60
24.1026
61
24.2734
62
24.1255
63
24.2711
64
24.4319
65
24.6033
66
24.7805
67
24.9587
68
25.1332
69
25.2993
70
25.4522
71
25.5871
72
26.1926
73
26.3654
74
26.5213
75
26.663
76
26.7935
77
26.9157
78
27.0324
79
27.1464
80
27.2607
81
27.378
82
27.075
83
27.1552
84
27.24
85
27.3286
86
27.4203
87
27.5144
88
27.6102
89
27.707
90
27.8041
91
27.9007
92
28.1074
93
28.2137
94
28.3188
95
28.4226
96
28.5252
97
28.6266
98
28.7267
99
28.8255
100
28.923
101
29.0192
102
29.0953
103
29.19
104
29.285
105
29.3809
106
29.4787
107
29.5791
108
29.6829
109
29.7909
110
29.9038
111
30.0225
112
30.1114
113
30.2263
114
30.3414
115
30.4536
116
30.5598
117
30.6569
118
30.7417
119
30.811
120
30.8617
121
30.8907
122
31.058
123
31.0969
124
31.1225
125
31.1406
126
31.1569
127
31.1773
128
31.2074
129
31.2531
130
31.3202
131
31.4145
132
31.0286
133
31.0821
134
31.1525
135
31.232
136
31.3125
137
31.3861
138
31.4447
139
31.4804
140
31.4853
141
31.4513
142
32.0548
143
32.0709
144
32.0563
145
32.0194
146
31.968
147
31.9105
148
31.8548
149
31.8092
150
31.7816
151
31.7804
152
30.8953
153
30.8185
154
30.7631
155
30.7225
156
30.6903
157
30.66
158
30.625
159
30.5789
160
30.5151
161
30.4273
162
30.9919
163
30.959
164
30.9072
165
30.8425
166
30.7706
167
30.6976
168
30.6291
169
30.5713
170
30.5298
171
30.5106
172
29.9092
173
29.8415
174
29.7919
175
29.7555
176
29.7271
177
29.7017
178
29.6744
179
29.6401
180
29.5937
181
29.5303
182
29.9995
183
29.9791
184
29.9411
185
29.8876
186
29.821
187
29.7435
188
29.6572
189
29.5644
190
29.4673
191
29
192
28.8639
193
28.7301
194
28.6008
195
28.478
196
28.3638
197
28.2604
198
28.1699
199
28.0944
200
28.0361
201
28
202
27.9458
203
27.9083
204
27.8828
205
27.8645
206
27.8488
207
27.8309
208
27.8062
209
27.7699
210
27.7173
211
28
212
27.9807
213
27.9405
214
27.8839
215
27.8159
216
27.7409
217
27.6638
218
27.5893
219
27.5221
220
27.4669
221
27
222
26.9032
223
26.8257
224
26.7654
225
26.72
226
26.6875
227
26.6658
228
26.6526
229
26.6458
230
26.6433
三次样条函数模拟曲线:
代码:
<>
<>
;
#24定义()的最大的维数
点的结构
{
x;
y;
};
()
{
("");
24;插值点的数目:
是24小时
;
[+1];
h[+1][+1][+1][+1][+1];
u[+1][+1][+1];
;
<<"请输入零点到23点的温度!
()已给出\n"输入插值点的数目
输入插值点()0值和值
(0<)
{
[i];
<<[i]<<"";
>>[i];
}
M[0]=0;0和的临界条件都是零
M[n]=0;
计算M关系式中各参数的值
h[0][1][0];
(1<)
{
h[i][1][i];
b[i][i]/(h[i][1])
c[i]=1[i];
d[i]=6*(([1][i])[i]-([i][1])[1])/(h[i][1]);
}
用追赶法计算1,…1
d[1]c[1]*M[0];
d[1][1]*M[n];
b[1]=0;
c[1]=0[0]=0;
(1<)
{
u[i]=2[i]*v[1];
v[i][i][i];
y[i]=(d[i][i]*y[1])[i];
}
(1<)
{
M[][][]*M[1];
}
(0<=230.1)
{
0;
(x>=[k])
;
1;
[1];
[k];
(p*p*p*M[k]*q*q*M[1])/(6*h[k])+(p*[k]*[1])/h[k][k]*(p*M[k]*M[k]*M[1])/6;
<
}
0;
}