东南大学数值分析上机报告完整版选编.docx
文本预览下载声明
数值分析上机实验报告
目录
TOC \o 1-3 \h \z \u HYPERLINK \l _Toc437011878 1.chapter1舍入误差及有效数 PAGEREF _Toc437011878 \h 1
HYPERLINK \l _Toc437011879 2.chapter2Newton迭代法 PAGEREF _Toc437011879 \h 3
HYPERLINK \l _Toc437011880 3.chapter3线性代数方程组数值解法-列主元Gauss消去法 PAGEREF _Toc437011880 \h 7
HYPERLINK \l _Toc437011881 4.chapter3线性代数方程组数值解法-逐次超松弛迭代法 PAGEREF _Toc437011881 \h 9
HYPERLINK \l _Toc437011882 5.chapter4多项式插值与函数最佳逼近 PAGEREF _Toc437011882 \h 10
1.chapter1舍入误差及有效数
1.1题目
设SN=j=2N1j2-1,其精确值为。
(1)编制按从大到小的顺序,计算SN的通用程序。
(2)编制按从小到大的顺序,计算SN的通用程序。
(3)按两种顺序分别计算,并指出有效位数。(编制程序时用单精度)
(4)通过本次上机题,你明白了什么?
1.2编写相应的matlab程序
clear;
N=input(please input N:);
AValue=((3/2-1/N-1/(N+1))/2);
sn1=single(0);
sn2=single(0);
for i=2:N
sn1=sn1+1/(i*i-1); %从大到小相加的通用程序%
end
ep1=abs(sn1-AValue);
for j=N:-1:2
sn2=sn2+1/(j*j-1); %从小到大相加的通用程序%
end
ep2=abs(sn2-AValue);
fprintf(精确值为:%f\n,AValue);
fprintf(从大到小的顺序累加得sn=%f\n,sn1);
fprintf(从大到小相加的误差ep1=%f\n,ep1);
fprintf(从小到大的顺序累加得sn=%f\n,sn2);
fprintf(从小到大相加的误差ep2=%f\n,ep2);
disp(=================================);
1.3matlab运行程序结果
chaper1
please input N:100
精确值为:0.740050
从大到小的顺序累加得sn=0.740049
从大到小相加的误差ep1=0.000001
从小到大的顺序累加得sn=0.740050
从小到大相加的误差ep2=0.000000
chaper1
please input N:10000
精确值为:0.749900
从大到小的顺序累加得sn=0.749852
从大到小相加的误差ep1=0.000048
从小到大的顺序累加得sn=0.749900
从小到大相加的误差ep2=0.000000
chaper1
please input N:1000000
精确值为:0.749999
从大到小的顺序累加得sn=0.749852
从大到小相加的误差ep1=0.000147
从小到大的顺序累加得sn=0.749999
从小到大相加的误差ep2=0.000000
1.4结果分析以及感悟
按照从大到小顺序相加的有效位数为:5,4,3。按照从小到大顺序相加的和的有效位数为:6,6,6。
从程序的输出误差结果可以看出,按照不同的顺序相加造成的误差限是不同的,按照从大到小相加的顺序就是一个病态问题,而按照从小到大顺序相加的误差很小,并且在从大到小顺序相加的误差随着n的增大而增大。因此,采取从小到大的顺序累加得到的结果更加精确。
2.chapter2Newton迭代法
2.1题目
(1)给定初值及容许误差,编制牛顿法解方程f(x)=0的通用程序。
(2)给定方程,易知其有三个根
eq \o\ac(○,1)由牛顿方法的局部收敛性可知存在当时,Newton迭代序列收敛于根x2*。试确定尽可能大的δ。
eq \o\ac(○,2)试取若干初始值,观察当时Newton序列的收敛性以及收敛于哪一个根。
(3)通过本上机题,你明白了什么?
2.2编写相应的matlab程序
2.2.1定义f(x)函数
function F=fu(x)
F=x^3/3-x;
end
2.2.2定义f(x)的导函数
function F=dfu(x)
显示全部