哈工大_计算方法实验_1拉格朗日
- 格式:doc
- 大小:231.00 KB
- 文档页数:14
实验题目1 Lagrange插值
摘要
给定平面上n+1个不同的数据点:
则满足条件
的n次拉格朗日插值多项式
是存在唯一的。 若,且充分光滑,则当时,有误差估计式
前言 利用拉格朗日插值多项式求的近似值
程序设计流程
拉格朗日插值框图 开始
结束 输入(xi,yi),n
i=0,1,2,…,n
L=0
i=0
xl=1
xl=jijxxxx*xl
j=0,1,…,i-1,i+1,…,n
L=L+xl*iy
i=n?
输出y 否
是 i=i+1
问题1 (1)
N = 5时,程序运行如下:
TestLag(inline('1./(1+x.^2)'), -5, 5, 5, 0.75:4.75);
将区间[-5,5]分为了5段
计算插值的点 xi =
0.7500 1.7500 2.7500 3.7500 4.7500
计算出的插值 yi =
0.9054 0.5258 0.0096 -0.3568 -0.1595
插值点处函数值 yFact =
0.6400 0.2462 0.1168 0.0664 0.0424
计算误差 err =
-0.2654 -0.2796 0.1072 0.4232 0.2020
N = 10时,程序运行如下:
TestLag(inline('1./(1+x.^2)'), -5, 5, 10, 0.75:4.75);
将区间[-5,5]分为了10段
计算插值的点 xi =
0.7500 1.7500 2.7500 3.7500 4.7500
计算出的插值 yi =
0.6907 0.2330 0.1122 0.1084 -0.2360
插值点处函数值 yFact =
0.6400 0.2462 0.1168 0.0664 0.0424
计算误差 err =
-0.0507 0.0132 0.0045 -0.0420 0.2785
N = 20时,程序运行如下:
TestLag(inline('1./(1+x.^2)'), -5, 5, 20, 0.75:4.75);
将区间[-5,5]分为了20段
计算插值的点 xi =
0.7500 1.7500 2.7500 3.7500 4.7500
计算出的插值 yi =
0.6413 0.2491 0.1282 0.1903 6.4150
插值点处函数值 yFact =
0.6400 0.2462 0.1168 0.0664 0.0424
计算误差 err =
-0.0013 -0.0029 -0.0114 -0.1239 -6.3726
问题1 (2)
N = 5时,程序运行如下:
TestLag(inline('exp(x)'), -1, 1, 5, [-0.95 -0.05 0.05 0.95]);
将区间[-1,1]分为了5段
计算插值的点 xi =
-0.9500 -0.0500 0.0500 0.9500
计算出的插值 yi =
0.3863 0.9513 1.0512 2.5863
插值点处函数值 yFact =
0.3867 0.9512 1.0513 2.5857
计算误差 err =
1.0e-003 *
0.4471 -0.1051 0.1069 -0.6129
N = 10时,程序运行如下:
TestLag(inline('exp(x)'), -1, 1, 10, [-0.95 -0.05 0.05 0.95]);
将区间[-1,1]分为了10段
计算插值的点 xi =
-0.9500 -0.0500 0.0500 0.9500
计算出的插值 yi =
0.3867 0.9512 1.0513 2.5857
插值点处函数值 yFact =
0.3867 0.9512 1.0513 2.5857
计算误差 err =
1.0e-008 *
-0.3126 -0.0055 -0.0055 -0.3714
N = 20时,程序运行如下:
TestLag(inline('exp(x)'), -1, 1, 20, [-0.95 -0.05 0.05 0.95]);
将区间[-1,1]分为了20段
计算插值的点 xi =
-0.9500 -0.0500 0.0500 0.9500
计算出的插值 yi =
0.3867 0.9512 1.0513 2.5857
插值点处函数值 yFact =
0.3867 0.9512 1.0513 2.5857
计算误差 err =
1.0e-012 *
0.7339 0 -0.0002 -0.5671
问题2 (1)
N = 5时,程序运行如下:
TestLag(inline('1./(1+x.^2)'), -1, 1, 5, [-0.95 -0.05 0.05 0.95]);
将区间[-1,1]分为了5段
计算插值的点 xi =
-0.9500 -0.0500 0.0500 0.9500
计算出的插值 yi =
0.5136 0.9978 0.9978 0.5136
插值点处函数值 yFact =
0.5256 0.9975 0.9975 0.5256
计算误差 err =
0.0121 -0.0002 -0.0002 0.0121
N = 10时,程序运行如下:
TestLag(inline('1./(1+x.^2)'), -1, 1, 10, [-0.95 -0.05 0.05 0.95]);
将区间[-1,1]分为了10段
计算插值的点 xi =
-0.9500 -0.0500 0.0500 0.9500
计算出的插值 yi =
0.5243 0.9975 0.9975 0.5243
插值点处函数值 yFact =
0.5256 0.9975 0.9975 0.5256
计算误差 err =
0.0014 0.0000 0.0000 0.0014
N = 20时,程序运行如下:
TestLag(inline('1./(1+x.^2)'), -1, 1, 20, [-0.95 -0.05 0.05 0.95]);
将区间[-1,1]分为了20段
计算插值的点 xi =
-0.9500 -0.0500 0.0500 0.9500
计算出的插值 yi =
0.5256 0.9975 0.9975 0.5256
插值点处函数值 yFact =
0.5256 0.9975 0.9975 0.5256
计算误差 err =
1.0e-005 *
-0.7023 0.0000 0.0000 -0.7023
实验2 (2)
N = 5时,程序运行如下:
TestLag(inline('exp(x)'), -5, 5, 5, [-4.75 -0.25 0.25 4.75]);
将区间[-5,5]分为了5段
计算插值的点 xi =
-4.7500 -0.2500 0.2500 4.7500
计算出的插值 yi =
-1.9321 1.4275 0.5882 123.7146
插值点处函数值 yFact =
0.0087 0.7788 1.2840 115.5843
计算误差 err =
1.9408 -0.6487 0.6958 -8.1303
N = 10时,程序运行如下:
TestLag(inline('exp(x)'), -5, 5, 10, [-4.75 -0.25 0.25 4.75]);
将区间[-5,5]分为了10段
计算插值的点 xi =
-4.7500 -0.2500 0.2500 4.7500
计算出的插值 yi =
0.0425 0.7796 1.2848 115.6630
插值点处函数值 yFact =
0.0087 0.7788 1.2840 115.5843
计算误差 err =
-0.0339 -0.0008 -0.0008 -0.0788
N = 20时,程序运行如下:
TestLag(inline('exp(x)'), -5, 5, 20, [-4.75 -0.25 0.25 4.75]);
将区间[-5,5]分为了20段
计算插值的点 xi =
-4.7500 -0.2500 0.2500 4.7500
计算出的插值 yi =
0.0087 0.7788 1.2840 115.5843
插值点处函数值 yFact =
0.0087 0.7788 1.2840 115.5843
计算误差 err =
1.0e-007 *
-0.0914 0.0000 0.0000 -0.1434