1、数值分析实验报告书 数值分析实验报告实验一、误差分析误差问题是数值分析的基础,又是数值分析中一个困难的课题。在实际计算中,如果选用了不同的算法,由于舍入误差的影响,将会得到截然不同的结果。因此,选取算法时注重分析舍入误差的影响,在实际计算中是十分重要的。同时,由于在数值求解过程中用有限的过程代替无限的过程会产生截断误差,因此算法的好坏会影响到数值结果的精度。一、实验目的1、 通过上机编程,复习巩固以前所学程序设计语言及上机操作指令;2、 通过上机计算,了解误差、绝对误差、误差界、相对误差界的有关概念;3、 通过上机计算,了解舍入误差所引起的数值不稳定性。二、实验任务对,计算定积分 .算法1:利
2、用递推公式 , ,取 .算法2:利用递推公式 .注意到,取 .思考:从计算结果看,哪个算法是不稳定的,哪个算法是稳定的。算法1:t=log(6.0)-log(5.0);n=0;y=zeros(1,21);y(1)=t;for k=2:21y(k)=1/k-5*y(k-1);n=n+1;endy(1:6)y(7:21)运行结果:ans = 0.1823 -0.4116 2.3914 -11.7069 58.7343 -293.5049算法2:y=zeros(21,1);n=1;y1=(1/105+1/126)/20;for k=21:-1:2y(k-1)=1/(5*k)-y(k)/5;n=n+1
3、;end运行结果:y =0.0884 0.0580 0.0431 0.0343 0.0285 0.0243 0.0212 0.0188 0.0169 0.0154 0.0141 0.0130 0.0120 0.0112 0.0105 0.0099 0.0093 0.0089 0.0081 0.0095 0由数据对比可知,算法2较为稳定。实验二、插值法插值法是函数逼近的一种重要方法,它是数值积分、微分方程数值解等数值计算的基础与工具,其中多项式插值是最常用和最基本的方法。拉格朗日插值多项式的优点是表达式简单明确,形式对称,便于记忆,它的缺点是如果想要增加插值节点,公式必须整个改变,这就增加了计算
4、工作量。而牛顿插值多项式对此做了改进,当增加一个节点时只需在原牛顿插值多项式基础上增加一项,此时原有的项无需改变,从而达到节省计算次数、节约存储单元、应用较少节点达到应有精度的目的。一、实验目的1、理解插值的基本概念,掌握各种插值方法,包括拉格朗日插值和牛顿插值等,注意其不同特点;2、通过实验进一步理解并掌握各种插值的基本算法。二、实验任务1、 已知函数表2、 0.56160 0.56280 0.56401 0.56521 0.82741 0.82659 0.82577 0.82495用二次拉格朗日插值多项式求时的函数近似值。3、 已知函数表4、 0.4 0.55 0.65 0.8 0.9 0
5、.41075 0.57815 0.69675 0.88811 1.02652用牛顿插值多项式求和。1.function y,R=lagranzi(X,Y,x,M)x=0.5635;M=2;X=0.56160,0.56280,0.56401,0.56521;Y=0.82741,0.82659,0.82577,0.82495;n=length(X); m=length(x);for i=1:m z=x(i);s=0.0; for k=1:n p=1.0; q1=1.0; c1=1.0;for j=1:n if j=kp=p*(z-X(j)/(X(k)-X(j); end q1=abs(q1*(z-
6、X(j); c1=c1*j; end s=p*Y(k)+s; end y(i)=s;endR=M.*q1./c1;运行结果:ans = 0.82612.N3(0.596)function y,R= newcz(X,Y,x,M) x=0.596; M=3; X=0.4,0.65,0.9; Y=0.41075,0.69675,1.02652; n=length(X); m=length(x); for t=1:m z=x(t); A=zeros(n,n);A(:,1)=Y; s=0.0; p=1.0; q1=1.0; c1=1.0; for j=2:n for i=j:n A(i,j)=(A(i,
7、j-1)-A(i-1,j-1)/(X(i)-X(i-j+1); end q1=abs(q1*(z-X(j-1);c1=c1*j; end C=A(n,n);q1=abs(q1*(z-X(n); for k=(n-1):-1:1 C=conv(C,poly(X(k);d=length(C); C(d)=C(d)+A(k,k); end y(k)= polyval(C, z);endR=M*q1/c1;运行结果:ans = 0.6313N4(0.895)function y,R= newcz(X,Y,x,M) x=0.895; M=4; X=0.4,0.55,0.65,0.8,0.9; Y=0.4
8、1075,0.57815,0.69675,0.88811,1.02652; n=length(X); m=length(x); for t=1:m z=x(t); A=zeros(n,n);A(:,1)=Y; s=0.0; p=1.0; q1=1.0; c1=1.0; for j=2:n for i=j:n A(i,j)=(A(i,j-1)-A(i-1,j-1)/(X(i)-X(i-j+1); end q1=abs(q1*(z-X(j-1);c1=c1*j; end C=A(n,n);q1=abs(q1*(z-X(n); for k=(n-1):-1:1 C=conv(C,poly(X(k);
9、d=length(C); C(d)=C(d)+A(k,k); end y(k)= polyval(C, z);endR=M*q1/c1;运行结果:ans = 1.0194实验三、解线性方程组的直接法解线性方程组的直接法是指经过有限步运算后能求得方程组精确解的方法。但由于实际计算中舍入误差是客观存在的,因而使用这类方法也只能得到近似解。目前较实用的直接法是古老的高斯消去法的变形,即主元素消去法及矩阵的三角分解法。引进选主元的技巧是为了控制计算过程中舍入误差的增长,减少舍入误差的影响。一般说来,列主元消去法及列主元三角分解法是数值稳定的算法,它具有精确度较高、计算量不大和算法组织容易等优点,是目前
10、计算机上解中、小型稠密矩阵方程组可靠而有效的常用方法。一、实验目的1、 了解求线性方程组的直接法的有关理论和方法;2、 会编制列主元消去法、LU分解法的程序;3、 通过实际计算,进一步了解各种方法的优缺点,选择合适的数值方法。 二、实验任务1、 用列主元高斯消去法求解方程组.2、用矩阵直接三角分解法求解方程组,其中, .1.主程序:function RA,RB,n,X=liezhu(A,b)B=A b; n=length(b); RA=rank(A); (求矩阵的秩)RB=rank(B);zhica=RB-RA;if zhica0,disp(请注意:因为RA=RB,所以此方程组无解.)retu
11、rnendif RA=RB if RA=ndisp(请注意:因为RA=RB=n,所以此方程组有唯一解.) X=zeros(n,1); C=zeros(1,n+1); for p= 1:n-1Y,j=max(abs(B(p:n,p); C=B(p,:);B(p,:)= B(j+p-1,:); B(j+p-1,:)=C;for k=p+1:n m= B(k,p)/ B(p,p); B(k,p:n+1)= B(k,p:n+1)-m* B(p,p:n+1);endend b=B(1:n,n+1);A=B(1:n,1:n); X(n)=b(n)/A(n,n); for q=n-1:-1:1 X(q)=(
12、b(q)-sum(A(q,q+1:n)*X(q+1:n)/A(q,q); endelse disp(请注意:因为RA=RBn,所以此方程组有无穷多解.)endend计算程序:A=0.101 2.304 3.555;-1.347 3.712 4.623;-2.835 1.072 5.643; b=1.183;2.137;3.035; RA,RB,n,X=liezhu(A,b)运行结果:ans =求矩阵的秩请注意:因为RA=RB=n,所以此方程组有唯一解.RA = 3RB = 3n = 3X = -0.3982 0.01380.33512. 程序:function X=LUjfcz(A,b)n,n
13、 =size(A); X=zeros(n,1); Y=zeros(n,1); C=zeros(1,n);r=1:n; for p=1:n-1max1,j=max(abs(A(p:n,p);C=A(p,:); A(p,:)= A(j+p-1,:); A(j+p-1,:)=C;g=r(p); r(p)= r(j+p-1);r(j+p-1)=g; if A(p,p)=0 disp(A是奇异阵,方程组无唯一解); break;endfor k=p+1:nH= A(k,p)/A(p,p); A(k,p) = H; A(k,p+1:n)=A(k,p+1:n)- H* A(p,p+1:n);endendY(
14、1)=b(r(1);for k=2:nY(k)= b(r(k)- A(k,1:k-1)* Y(1:k-1); endX(n)= Y(n)/ A(n,n);for i=n-1:-1:1 X(i)= (Y(i)- A(i, i+1:n) * X (i+1:n)/ A(i,i);endEnd计算程序:A=1,2,-12,8;5,4,7,-2;-3,7,9,5;6,-12,-8,3; b=27;4;11;49;X=LUjfcz(A,b)运行结果:X = 3.0000 -2.0000 1.00005.0000实验四、解线性方程组的迭代法解线性方程组的迭代法是用某种极限过程去逐步逼近线性方程组精确解的方法,即是从一个初始向量出发,按照一定的迭代格式产生一个向量序列,使其收敛到方程组的解。迭代法的优点是所需计算机存储单元少,程序设计简单,原始系数矩阵在计算过程中始终不变等。但迭代法存在收敛性及收敛速度问题。迭代法是解大型稀疏矩阵方程组的重要方法。一、实验目的 1、熟悉迭代法的有关理论和方法;2、会编制雅可比迭代法、高斯-塞德尔迭代法的程序;3、注意所用方法的收敛性及其收敛速度问题。二、实验
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1