数值分析实验报告 实验一 舍入误差与数值稳定性
1.实验名称
对 n = 0,1,2,…,20 计算定积分yn = 2.实验目的
学会用递推公式解定积分计算问题,并且学习将算法转换成可以运行的程序。 3.算法描述
算法 1 利用递推公式
11?x?5dx
0xnyn =
1 - 5nyn?1
n = 1,2,…,20
1dx? ln6- ln5 ? 0.182 322 取 y0??x?50算法 2 利用递推公式yn?11120?11?5n51yn n = 20,19,…,1
11112020??xdx??xdx??xdx?注意到 12660x?5510500 取 4.源程序 算法一:
y20?111(?)?0.008 730 20105126#include
float n=1; float y=0.182322;
cout<<\
}
for(n;n<=20;n++) { }
y=1/n-5*y;
cout<<\
算法二:
#include
5.运行结果 算法一运行结果: y0=0.182322 y1=0.08839 y2=0.0580499 double n=20; double y=0.008730;
cout<<\for(n;n>=0;n--) { }
y=1/(5*n)-0.2*y;
cout<<\
y3=0.0430839 y4=0.0345805 y5=0.0270974 y6=0.0311798 y7=-0.0130418 y8=0.190209 y9=-0.839935 y10=4.29967 y11=-21.4075 y12=107.121 y13=-535.526 y14=2677.7 y15=-13388.4 y16=66942.3 y17=-334711 y18=1.67356e+006 y19=-8.36779e+006 y20=4.18389e+007 Press any key to continue 算法二运行结果: y20=0.00873 y19=0.00878032 y18=0.00935505 y17=0.0098937
y16=0.0105213 y15=0.0112291 y14=0.0120399 y13=0.0129766 y12=0.0140713 y11=0.0153676 y10=0.0169265 y9=0.0188369 y8=0.0212326 y7=0.0243249 y6=0.0284684 y5=0.0343063 y4=0.0431387 y3=0.0580389 y2=0.0883922 y1=0.182322
Press any key to continue
6.对算法的理解与分析(包括改进与建议)
在程序运行过程中,将数值定义为浮点型会“警告”,而更改为双精度类型是就不会“警告”。推断是因为参与计算的数有效数字太多,但是,忽略“警告”将得到一样的结果。
实验二 拉格朗日插值与牛顿插值 计算机121班 吴珍珍 122460
一、 目的与要求:
? 熟悉拉格朗日插值多项式和牛顿插值多项式,注意其不同特点; 二、 实验内容:
? 通过拉格朗日插值和牛顿插值多项式的两个实例的计算,了解两种求解方法,分析他们的优缺点。 三、 程序与实例 ? 拉格朗日多项式 算法 1. 2. l
输入xi,yi(i=0,1,2,?,n),令L(xn)=0; 对=0,1,2,?,n计算
li(x)=
?xi?0j?inx?xji?xj
Ln? Ln+li(x)yi 四、 程序与实例 例1已知函数表 xi yi
0.56160 0.82741 0.56280 0.82659 0.56401 0.82577 0.56521 0.82495