计算方法实验报告9.2
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Next‘此循环求解拟合多项式的各项系数,即正规方程组的解
Fori= 1Ton + 1
i_tem3 =Fwk.baidu.comrmat(a(i), "0.000000000000000")
List3.AddItem i_tem3
List3.AddItem ""
Next
DimwcAs Double,p(1 To 10) As Double, ax As Double
然后在解此方程组,可以借用高斯消元法进行求解,求解后,并进行偏差平方和的计算。可利用如下的公式。
偏差平方和=
利用上正规方程组可使此项最小。
六、程序结构流程图
七、符号意义
标志符
数学符号
类型
形式
作用
n
N
整型
1
方程组的最大次数
a
A
双精度
N
系数矩阵
b
B
双精度
N
方程组的右端常数项
xx
X
双精度
NxN
求和项
wc
δ
b(i) = b(i) + (x(k) ^ (i- 1)) * y(k)‘求方程右边常数矩阵
Next
i_tem2 =Format(b(i), "0.0000")
For j = 1Ton + 1
For k = 1 To 10
xx(i, j) = xx(i, j) + x(k) ^ (i+ j - 2)‘求正规方程组的求和项组成的矩阵
0.9987
25
0.9983
50
0.9996
按照上表,拟合多项式
Pn(x)=a0+a1x+a2x2+…+anxn
并分别对n=2,3,4,5,6进行数值计算,最后根据各自偏差的平方和大小分析拟合效果的好坏。
五、数学模型
根据最小二乘法思想,拟合多项式各点值与实际值的差的平方和越小,拟合效果越好,此题中,令权系数(反映该点数据的重要程度)ω=1,根据这个思想得到的正规方程组为
For k = 1Ton
Fori= k + 1Ton + 1
m(i, k) = xx(i, k) / xx(k, k)
For j = kTon + 1
xx(i, j) = xx(i, j) - m(i, k) * xx(k, j)
Next
b(i) = b(i) - b(k) * m(i, k)
Next
Next‘利用高斯消元法求解
a(n + 1) = b(n + 1) / xx(n + 1, n + 1)
Dim sum As Double
Fori= nTo1 Step -1
sum= 0
For k =i+ 1Ton + 1 Step 1
sum= sum + xx(i, k) * a(k)
Next
a(i) = (b(i) - sum) / xx(i,i)
List4.AddItem ("n=" & n & "时,偏差平方和为 " & Format(wc, "0.000000000000000"))
End Sub
Private SubForm_Load()
Combo1.ListIndex = 0
End Sub
九、实验结果
n=2
n=3
n=4
n=5
n=6
十、结果讨论
由上可得,n分别等于2,3,4,5,6时,各偏差平方和分别为0.000000739225587,
0.000000691192355,0.000000511016109,0.000000291014360,0.000000097515150,由此可见,随着n的增加,即拟合多项式次数的增加,拟合效果越来越好。
因此,在实际计算时,由于多是依靠计算机进行计算,可以适当的增加n,即拟合多项式的次数,特别是精度要求特别高的行业。又由于在n比较大时,继续增大n对精度影响减弱,而又增加了不少计算量,因此n也不宜取过大,当n>7时,方程组是病态的,因此n不宜大于7。
n =Combo1.List(Combo1.ListIndex)
ReDima(1 To n + 1), b(1 To n + 1), xx(1 To n + 1, 1 To n + 1), m(1 To n + 1, 1 To n + 1)
Fori= 1Ton + 1
i_tem1 = ""
For k = 1 To 10
双精度
N
偏差平方
八、程序代码
Private Sub Command1_Click()
List1.Clear
List2.Clear
List3.Clear
List4.Clear
Dimx(1 To 10) As Single, y(1 To 10) As Single
Dim n As Integer,iAs Integer, j As Integer, i_tem1 As String, i_tem2 As String, i_tem3 As String, k As Integer
Pn(x)=a0+a1x+a2x2+…+anxn,n《N,
的数值软件,要求在软件中能任意令拟合多项式Pn(x)中第p项系数为0,并自动调整相应正规方程组。
(2)已知实验数据如下表
x
y
x
y
5
1.0029
30
0.9979
10
1.0023
35
0.9978
15
1.0000
40
0.9981
20
0.9990
45
For k = 1 To 10
Fori= 1Ton + 1
p(k) = p(k) + a(i) * x(k) ^ (i- 1)
Next
Next‘此过程求解拟合多项式对应原来各点的值
Fori= 1 To 10
wc=wc+ (p(i) - y(i)) * (p(i) - y(i))
Next‘此过程求解偏差平方和
计算方法上机实习报告
一、实验名称:曲线拟合问题的数值实验
二、班级姓名:新能源科学与工程(9121086701),李旨敬(912108670122)
三、摘要
本次实验运用最小二乘法思想利用计算机程序进行实验,并对结果进行讨论。
四、问题
对实验数据(xi,yi),i=1,2,…,N,要求:
(1)利用最小二乘法原理,编制确定拟合多项式
Dima() As Double, b() As Double, xx() As Double, m() As Double
Fori= 1 To 10
x(i) = 5 *i
Next
y(1) = 1.0029: y(2) = 1.0023: y(3) = 1: y(4) = 0.999: y(5) = 0.9983: y(6) = 0.9979: y(7) = 0.9978: y(8) = 0.9981: y(9) = 0.9987: y(10) = 0.9996
Next
i_tem1 = i_tem1 &Space(4) & Format(xx(i, j), "0.0000")
Next
List1.AddItem i_tem1
List1.AddItem ""
List2.AddItem i_tem2
List2.AddItem ""
Next‘此循环是为了求解正规方程组的求和项组成的矩阵和右方常数矩阵
Fori= 1Ton + 1
i_tem3 =Fwk.baidu.comrmat(a(i), "0.000000000000000")
List3.AddItem i_tem3
List3.AddItem ""
Next
DimwcAs Double,p(1 To 10) As Double, ax As Double
然后在解此方程组,可以借用高斯消元法进行求解,求解后,并进行偏差平方和的计算。可利用如下的公式。
偏差平方和=
利用上正规方程组可使此项最小。
六、程序结构流程图
七、符号意义
标志符
数学符号
类型
形式
作用
n
N
整型
1
方程组的最大次数
a
A
双精度
N
系数矩阵
b
B
双精度
N
方程组的右端常数项
xx
X
双精度
NxN
求和项
wc
δ
b(i) = b(i) + (x(k) ^ (i- 1)) * y(k)‘求方程右边常数矩阵
Next
i_tem2 =Format(b(i), "0.0000")
For j = 1Ton + 1
For k = 1 To 10
xx(i, j) = xx(i, j) + x(k) ^ (i+ j - 2)‘求正规方程组的求和项组成的矩阵
0.9987
25
0.9983
50
0.9996
按照上表,拟合多项式
Pn(x)=a0+a1x+a2x2+…+anxn
并分别对n=2,3,4,5,6进行数值计算,最后根据各自偏差的平方和大小分析拟合效果的好坏。
五、数学模型
根据最小二乘法思想,拟合多项式各点值与实际值的差的平方和越小,拟合效果越好,此题中,令权系数(反映该点数据的重要程度)ω=1,根据这个思想得到的正规方程组为
For k = 1Ton
Fori= k + 1Ton + 1
m(i, k) = xx(i, k) / xx(k, k)
For j = kTon + 1
xx(i, j) = xx(i, j) - m(i, k) * xx(k, j)
Next
b(i) = b(i) - b(k) * m(i, k)
Next
Next‘利用高斯消元法求解
a(n + 1) = b(n + 1) / xx(n + 1, n + 1)
Dim sum As Double
Fori= nTo1 Step -1
sum= 0
For k =i+ 1Ton + 1 Step 1
sum= sum + xx(i, k) * a(k)
Next
a(i) = (b(i) - sum) / xx(i,i)
List4.AddItem ("n=" & n & "时,偏差平方和为 " & Format(wc, "0.000000000000000"))
End Sub
Private SubForm_Load()
Combo1.ListIndex = 0
End Sub
九、实验结果
n=2
n=3
n=4
n=5
n=6
十、结果讨论
由上可得,n分别等于2,3,4,5,6时,各偏差平方和分别为0.000000739225587,
0.000000691192355,0.000000511016109,0.000000291014360,0.000000097515150,由此可见,随着n的增加,即拟合多项式次数的增加,拟合效果越来越好。
因此,在实际计算时,由于多是依靠计算机进行计算,可以适当的增加n,即拟合多项式的次数,特别是精度要求特别高的行业。又由于在n比较大时,继续增大n对精度影响减弱,而又增加了不少计算量,因此n也不宜取过大,当n>7时,方程组是病态的,因此n不宜大于7。
n =Combo1.List(Combo1.ListIndex)
ReDima(1 To n + 1), b(1 To n + 1), xx(1 To n + 1, 1 To n + 1), m(1 To n + 1, 1 To n + 1)
Fori= 1Ton + 1
i_tem1 = ""
For k = 1 To 10
双精度
N
偏差平方
八、程序代码
Private Sub Command1_Click()
List1.Clear
List2.Clear
List3.Clear
List4.Clear
Dimx(1 To 10) As Single, y(1 To 10) As Single
Dim n As Integer,iAs Integer, j As Integer, i_tem1 As String, i_tem2 As String, i_tem3 As String, k As Integer
Pn(x)=a0+a1x+a2x2+…+anxn,n《N,
的数值软件,要求在软件中能任意令拟合多项式Pn(x)中第p项系数为0,并自动调整相应正规方程组。
(2)已知实验数据如下表
x
y
x
y
5
1.0029
30
0.9979
10
1.0023
35
0.9978
15
1.0000
40
0.9981
20
0.9990
45
For k = 1 To 10
Fori= 1Ton + 1
p(k) = p(k) + a(i) * x(k) ^ (i- 1)
Next
Next‘此过程求解拟合多项式对应原来各点的值
Fori= 1 To 10
wc=wc+ (p(i) - y(i)) * (p(i) - y(i))
Next‘此过程求解偏差平方和
计算方法上机实习报告
一、实验名称:曲线拟合问题的数值实验
二、班级姓名:新能源科学与工程(9121086701),李旨敬(912108670122)
三、摘要
本次实验运用最小二乘法思想利用计算机程序进行实验,并对结果进行讨论。
四、问题
对实验数据(xi,yi),i=1,2,…,N,要求:
(1)利用最小二乘法原理,编制确定拟合多项式
Dima() As Double, b() As Double, xx() As Double, m() As Double
Fori= 1 To 10
x(i) = 5 *i
Next
y(1) = 1.0029: y(2) = 1.0023: y(3) = 1: y(4) = 0.999: y(5) = 0.9983: y(6) = 0.9979: y(7) = 0.9978: y(8) = 0.9981: y(9) = 0.9987: y(10) = 0.9996
Next
i_tem1 = i_tem1 &Space(4) & Format(xx(i, j), "0.0000")
Next
List1.AddItem i_tem1
List1.AddItem ""
List2.AddItem i_tem2
List2.AddItem ""
Next‘此循环是为了求解正规方程组的求和项组成的矩阵和右方常数矩阵