当前位置:
文档之家› 北航数值分析第二次大作业(最小二乘 simpson rk)
北航数值分析第二次大作业(最小二乘 simpson rk)
3.442724
50248449
2.3
3.787994
64875364
3.787995
11610470
3.787995
11615298
3.787995
11615314
3.787995
11615500
2.4
4.160165
86770901
4.160166
37838632
4.160166
37843906
68954997
2.081044
68957296
2.081044
68957297
2.081044
68957283
1.8
2.308420
90889291
2.308421
16958140
2.308421
16960836
2.308421
16960837
2.308421
16960820
1.9
2.557186
0.3818300505
0.4179591837
0.1012285363
0.2223810345
0.3137066459
0.3626837834
0.0812743884
0.1806481607
0.2606106964
0.3123470770
0.3302393550
截断误差:
,
最高精度2n-1阶
二、计算结果
2.1
3.123238
20863730
3.123238
59095791
3.123238
59099743
3.123238
59099745
3.123238
59099784
2.2
3.44272
407791075
3.442724
50243946
3.442724
50248333
3.442724
50248341
{
b[i]=0;
for(k=0;k<N;k++)
b[i]+=Base(x,i,k)*y[k];
}
Guass(a,b,c);
s=0;
for(k=0;k<N;k++)
{
yy[k]=0;
for(i=0;i<3;i++)
yy[k]+=c[i]*Base(x,i,k);
s+=pow(yy[k]-y[k],2);
5.25E-04
4点
3.1416119052
1.93E-05
5点
3.1415926966
4.30E-08
6点
3.1415926112
4.24E-08
7点
3.1415926564
2.82E-09
8点
3.1415926538
2.43E-10
程序运行截图:
三、结论
由复化Simpson求积公式的截断误差公式可知其具有4阶收敛性。对于本算例,当步长 时,绝对误差-步长拟合函数关系式近似为:
(2)使用Gauss求积公式重新计算上述积分,比较各阶Gauss积分的数值精度和对 的近似精度。
一、算法描述:
1)Simpson复化求积公式:
截断误差:
,
截断误差随h减小而减小,然而过小的h可能会造成累积误差。
2)Gauss-Legendre求积公式(权函数 ):
Gauss-Legendre求积节点和求积系数
4.989698
18726518
4.98969
18726587
4.989698
18727057
2.7
5.449311
54277910
5.449312
18554878
5.449312
18561509
5.449312
18561606
5.449312
18562187
2.8
5.940331
96328716
5.940332
}
for(i=0;i<3;i++)
printf("c%d:%f\n",i+1,c[i]);
printf("节点拟合误差:%f\n",s);
}
float Base(float x[],int m,int n)
{
float b;
b=sin((m+1)*x[n]);
return(b);
}
void Guass(float a[][3],float b[],float c[])
1)复化Simpson解:(精确解: )
步长h
1e-1
1e-2
1e-3
1e-4
1e-5
1e-6
1e-7
1e-8
数值积
分解S
3.268
2594
3.154
8593
3.142
9253
3.141
7260
3.141
6060
3.141
5940
3.141
5928
3.141
5926
绝对误
差E
1.27e-1
1.33e-2
60118370
1.686170
60118371
1.686170
60118363
1.6
1.873981
67160519
1.873981
85688338
1.873981
85690253
1.873981
85690254
1.873981
85690243
1.7
2.081044
46724338
2.081044
进而可求解出系数向量 ,从而找到最小二乘拟合函数 。
二、
1)节点数据:
i
1
2
3
4
5
6
7
8
9
9
1
2
3
4
5
6
7
8
9
拟合函数:
精确函数:y=x
拟合误差:251.947067
拟合曲线:
程序运行截图:
2)节点数据:
i
1
2
3
4
5
6
7
8
9
0
0
1.5
3
1.5
0
-1.5
-3
-1.5
0
拟合函数:
拟合误差:0.000000
23964234
2.557186
53989904
2.557186
53993009
2.557186
53993010
2.557186
53992990
2
2.828426
78386010
2.828427
12471086
2.828427
12474610
2.828427
12474611
2.828427
12474587
1.106816
60630836
1.2
1.227879
53964033
1.227879
59356063
1.227879
59356619
1.227879
59356619
1.227879
59356617
1.3
1.364135
90632094ห้องสมุดไป่ตู้
1.364135
99027967
1.364135
99028835
一方面,随着步长的减小,复化Simpson解有效数字增加。另一方面,随着步长的减小,其计算时间逐步增加(步长每缩短10倍,计算时间增长10倍)。因此本算例未考虑步长大于 的情况。理论上,随着 ,应有 。
Gauss-Legendre求积公式收敛速度快,计算精度高。对于本算例,采用5节点Gauss-Legendre求积公式既可使误差控制到 量级,较相同精度的复化Simpson求积法大大减少了计算量。Gauss-Legendre代数精度为2n-1,积分节点数每增加1,代数精度增加2。对于本算例,Gauss-Legendre的有效数字随积分节点数增加而增加,逐步收敛于精确解。
数值分析
第二次上机作业
学号:BY×××
姓名:云××
问题
编写程序编写程序实现如下的线性最小二乘拟合算法:用函数 拟合给定的数据 ,i=0,1,2,…,m。
算法步骤如下:
1.输入m及其数据 ,i=1,2…,m;
2.建立法方程 ;
3.解法方程组;
4.输出 。
用此程序求出如下数据的拟合曲线,计算出拟合误差,并画出这些数据点和拟合曲线的图形,比较分析拟合的效果。
拟合曲线:
程序运行截图:
三、结论
通过比较以上两组给定数据的最小二乘拟合结果可知,拟合基函数对拟合结果的好坏存在很大的影响。对于来自三角函数类型的离散数据点,采用三角函数类型基函数并适当控制基函数个数,可得到良好的拟合结果。
问题
数学上已经证明:
(1)使用Simpson复化求积公式计算 的近似值。选择不同的h,将误差刻画为h的函数绘图,分析该方法的精度。
4.160166
37843935
4.160166
37844207
2.5
4.560358
53227084
4.560359
08668122
4.560359
08673845
4.560359
08673891
4.560359
08674259
2.6
4.989697