西安交通大学计算方法上机作业.docx
《西安交通大学计算方法上机作业.docx》由会员分享,可在线阅读,更多相关《西安交通大学计算方法上机作业.docx(30页珍藏版)》请在冰点文库上搜索。
计算方法上机作业
学院:
能动学院
班级:
硕4011班
P81页第四题
求20阶三对角方程组的解,其中:
,
算法分析:
追赶法的算法组织如下:
(1)输入三对角矩阵和右端向量;
(2)将压缩为四个一维数组,将分解矩阵压缩为三个一维数组
(3)对做分解(也可以用分解)导出追赶法的计算步骤如下:
(4)回代求解
(5)停止,输出结果
结果:
将结果带入方程可以验证结果完全正确。
第五题
算法分析:
将原始线性代数方程组改写为的形式,其中为的矩阵函数。
于是可以得到迭代格式:
,此即为迭代法的迭代格式。
如果在计算时,将已经算出的分量立即代换对应分量,则得到迭代法的迭代格式。
1.迭代法的算法组织如下:
(1)给出迭代格式
(2)给出迭代初始向量、允许误差和最大迭代次数
(3)按照迭代格式进行迭代,直至达满足迭代停止条件
(4)停止,输出结果
2.迭代法的算法组织如下:
(1)给出迭代格式
(2)给出迭代初始向量、允许误差和最大迭代次数
(3)按照迭代格式,并且将已经算出的分量立即代换对应分量进行迭代,直至达满足迭代停止条件
(4)停止,输出结果
结果:
将结果带入方程验证的确满足误差<1e-3
P131页第一题
已知,对
a计算函数在点处的值
b求插值数据点的插值多项式和三次样条插值多项式
c对,计算和相应的函数值
d计算,,解释所得到结果。
算法分析
1.插值
插值多项式是实质是插值多项式的零次式和一次式的推广,一般形式为:
2.三次样条插值
在节点分成的每个小区间上利用其节点处的二次导数值(即弯矩值)进行线性插值,再在此区间上积分两次,利用节点处的函数值求得两个积分常数,从而得到三次样条函数的表达式。
要确定三次样条插值函数,用到的光滑性,利用三次样条函数在节点处的一阶导数连续得到满足个方程:
其中
三弯矩方程组只有个方程,不能确定未知量。
为此,可
以给出区间的端点处的一阶导数值。
由和可以导出
其中
联合先前得到的三弯矩方程组和两个补充方程得到恰定的三弯矩方程组。
它是严格对角占优的三对角方程组,可以用追赶法求解。
结果:
a直接计算即可得出
对于n=5有
对于n=10有
对于n=20有
b对于n=5有牛顿插值多项式
样条插值函数(分别对于各个小区间)为:
对于n=10有牛顿插值函数
p=
(9094987740384*X^9+5272349642029869237892763424*X^8-16938813146112*X^7-10950865478705002051580730624*X^6+10150693091136*X^5+7491941821973715378406714008*X^4+1915628554944*X^3-2014100801013926045821422321*X^2+322192441744*X+210052147079480949741593257)/243810615467456022706126848
pp=
3.73*10^(-14)*X^9+21.6*X^8-6.95*10^(-14)*X^7-44.9*X^6+4.16*10^(-14)*X^5+30.7*X^4+7.86*10^(-15)*X^3-8.26*X^2+1.32*10^(-15)*X+0.862
对于n=10有样条插值函数:
对于n=20有牛顿插值函数
-6.82*10^(-10)*X^19-25770.0*X^18+2.52*10^(-9)*X^17+95660.0*X^16-3.79*10^(-9)*X^15-1.47*10^5*X^14+3.02*10^(-9)*X^13+1.21*10^5*X^12-1.46*10^(-9)*X^11-58660.0*X^10+4.3*10^(-10)*X^9+17220.0*X^8-6.6*10^(-11)*X^7-3066.0*X^6+4.06*10^(-12)*X^5+328.0*X^4-3.19*10^(-13)*X^3-21.6*X^2+3.08*10^(-15)*X+0.993
对于n=20有样条插值函数:
-5.25*X^3-14.37*X^2-12.98*X-3.827
1.723*X^3+4.461*X^2+3.963*X+1.256
0.07504*X^3+0.5066*X^2+0.7996*X+0.4127
0.9738*X^3+2.394*X^2+2.121*X+0.721
1.552*X^3+3.436*X^2+2.746*X+0.846
3.552*X^3+6.434*X^2+4.245*X+1.096
5.726*X^3+9.044*X^2+5.289*X+1.235
12.54*X^3+15.17*X^2+7.127*X+1.419
-32.79*X^3-12.02*X^2+1.688*X+1.056
-89.07*X^3-28.91*X^2-2.345*10^(-15)*X+1.0
89.07*X^3-28.91*X^2-6.395*10^(-15)*X+1.0
32.79*X^3-12.02*X^2-1.688*X+1.056
-12.54*X^3+15.17*X^2-7.127*X+1.419
-5.726*X^3+9.044*X^2-5.289*X+1.235
-3.552*X^3+6.434*X^2-4.245*X+1.096
-1.552*X^3+3.436*X^2-2.746*X+0.846
-0.9738*X^3+2.394*X^2-2.121*X+0.721
-0.07504*X^3+0.5066*X^2-0.7996*X+0.4127
-1.723*X^3+4.461*X^2-3.963*X+1.256
5.25*X^3-14.37*X^2+12.98*X-3.827
c容易计算各点函数值
YK=
0.04000.04160.04330.04510.04710.04910.05130.05360.05610.05880.06170.06480.06810.07160.07550.07960.08410.08900.09430.10000.10630.11310.12060.12890.13790.14790.15900.17120.18480.20000.21690.23580.25710.28090.30770.33780.37170.40980.45250.50000.55250.60980.67110.73530.80000.86210.91740.96150.99011.00000.99010.96150.91740.86210.80000.73530.67110.60980.55250.50000.45250.40980.37170.33780.30770.28090.25710.23580.21690.20000.18480.17120.15900.14790.13790.12890.12060.11310.10630.10000.09430.08900.08410.07960.07550.07160.06810.06480.06170.05880.05610.05360.05130.04910.04710.04510.04330.04160.0400
对于n=5可以计算相应插值函数的值
Nk=
-0.0496-0.1257-0.1906-0.2449-0.2891-0.3239-0.3497-0.3672-0.3769-0.3793-0.3750-0.3643-0.3479-0.3263-0.2997-0.2688-0.2340-0.1957-0.1542-0.1101-0.0636-0.01520.03470.08590.13790.19050.24340.29620.34870.40050.45150.50140.54990.59680.64190.68500.72600.76460.80080.83420.86490.89270.91740.93910.95760.97280.98460.99320.99831.00000.99830.99320.98460.97280.95760.93910.91740.89270.86490.83420.80080.76460.72600.68500.64190.59680.54990.50140.45150.40050.34870.29620.24340.19050.13790.08590.0347-0.0152-0.0636-0.1101-0.1542-0.1957-0.2340-0.2688-0.2997-0.3263-0.3479-0.3643-0.3750-0.3793-0.3769-0.3672-0.3497-0.3239-0.2891-0.2449-0.1906-0.1257-0.0496
Sk=
0.03830.03780.03710.03630.03550.03480.03440.03430.03470.03570.03730.03970.04300.04720.05260.05920.06720.07650.08740.10000.11430.13020.14750.16600.18570.20630.22770.24970.27210.29480.31750.34030.36280.38490.40640.42730.44720.46610.48370.50000.51470.52790.53960.54970.55820.56520.57060.57450.57680.57760.57680.57450.57060.56520.55820.54970.53960.52790.51470.50000.48370.46610.44720.42730.40640.38490.36280.34030.31750.29480.27210.24970.22770.20630.18570.16600.14750.13020.11430.10000.08740.07650.06720.05920.05260.04720.04300.03970.03730.03570.03470.03430.03440.03480.03550.03630.03710.03780.0383
对于n=20可以计算相应插值函数的值
Nk=
8.20657.77494.88262.14010.3516-0.4925-0.6818-0.5282-0.2658-0.03080.12040.18430.18390.14920.10650.07290.05600.05580.06800.08650.10570.12180.13340.14070.14540.14970.15570.16480.17790.19480.21490.23730.26110.28610.31230.34030.37130.40660.44760.49500.54920.60940.67410.74080.80630.86690.91890.95890.98410.99270.98410.95890.91890.86690.80630.74080.67410.60940.54920.49500.44760.40660.37130.34030.31230.28610.26110.23730.21490.19480.17790.16480.15570.14970.14540.14070.13340.12180.10570.08650.06800.05580.05600.07290.10650.14920.18390.18430.1204-0.0308-0.2658-0.5282-0.6818-0.49250.35162.14014.88267.77498.2065
Sk=
0.03900.04030.04230.04460.04710.04940.05160.05390.05630.05880.06160.06470.06800.07160.07550.07960.08410.08900.09430.10000.10630.11310.12060.12890.13790.14790.15890.17120.18480.20000.21700.23590.25720.28100.30770.33750.37110.40890.45170.50000.55410.61270.67420.73720.80000.86060.91520.95940.98911.00000.98910.95940.91520.86060.80000.73720.67420.61270.55410.50000.45170.40890.37110.33750.30770.28100.25720.23590.21700.20000.18480.17120.15890.14790.13790.12890.12060.11310.10630.10000.09430.08900.08410.07960.07550.07160.06800.06470.06160.05880.05630.05390.05160.04940.04710.04460.04230.04030.0390
d有c得出的结果很容易计算
对于n=5个节点时
E(N)=0.4381
E(s)=0.4224
对于n=20个节点时
E(N)=8.1665
E(s)=0.0031
这是由于已知数据的误差对插值多项式计算的结果带来了很大的误差。
具体说,当函数值有误差而变为且误差限为。
由于插值与插值本质上是一样的,则插值与插值的误差估计是一样的。
由插值多项式的计算值也会有误差,于是可以导出插值多项式的误差
当很大时,的误差就很大,于是就出现了前面观察到的现象。
p189第三题
算法分析:
此方法称为复化积分法
那么有了算法就可以计算了。
结果:
利用simpson公式可以计算得出如下的方程式,求解方程式便可得出相应函数节点上的值。
y1为函数y(x)在x=0处的值
y2为函数y(x)在x=0.125处的值以此类推y9为函数y(x)在x=1处的值
可以得出下列方程
(1)y1/24+(4*y2)/27+y3/15+(4*y4)/33+y5/18+(4*y6)/39+y7/21+(4*y8)/45+y9/48+5/8=y1
(2)(7*y1)/192+(55*y2)/432+(9*y3)/160+(53*y4)/528+(13*y5)/288+(17*y6)/208+(25*y7)/672+(49*y8)/720+y9/64+619/1296=y2
(3)y1/32+(23*y2)/216+(11*y3)/240+(7*y4)/88+(5*y5)/144+(19*y6)/312+(3*y7)/112+(17*y8)/360+y9/96+39/100=y3
(4)(5*y1)/192+(37*y2)/432+(17*y3)/480+(31*y4)/528+(7*y5)/288+(25*y6)/624+(11*y7)/672+(19*y8)/720+y9/192+661/1936=y4
(5)y1/48+(7*y2)/108+y3/40+(5*y4)/132+y5/72+y6/52+y7/168+y8/180+23/72=y5
(6)y1/64+(19*y2)/432+(7*y3)/480+(3*y4)/176+y5/288-y6/624-y7/224-(11*y8)/720-y9/192+855/2704=y6
(7)y1/96+(5*y2)/216+y3/240-y4/264-y5/144-(7*y6)/312-(5*y7)/336-(13*y8)/360-y9/96+16/49=y7
(8)y1/192+y2/432-y3/160-(13*y4)/528-(5*y5)/288-(9*y6)/208-(17*y7)/672-(41*y8)/720-y9/64+1249/3600=y8
(9)3/8-y3/60-y4/22-y5/36-(5*y6)/78-y7/28-(7*y8)/90-y9/48-y2/54=y9
容易解得函数f(x)在各个节点处的值
用三次样条函数近似真解
90.779386156063992530107498168945*X^3-24.781023269490106031298637390137*X^2-0.00000000000363797880709171295166015625*X+1.0000999999988380295690149068832
26.782958468349534086883068084717*X^3+19.3048559646649664500728249