一、问答题1、什么是近似值x*有效数字?若近似值x*的误差限是某一位的半个单位,该位到x*的第一位非零数字共有n位,就说x*有n位有效数字。它可表示为X=±10m×(a1+a2×10-1+…+an×10-(n-1),其中ai(i=1,2,…,n)是0到9中的一个数字,a1≠0,m为整数,且︱x-x*︱≠21×10m-n+12、数值计算应该避免采用不稳定的算法,防止有效数字的损失.因此,在进行数值运算算法设计过程中主要注意什么?(1)简化计算过程,减少运算次数;(2)避免两个相近的数相减;(3)避免除数的绝对值远小于被除数的绝对值;(4)防止大数“吃掉”小数的现象;(5)使用数值稳定的算法,设法控制误差的传播。3、写出“n阶阵A具有n个不相等的特征值”的等价条件(至少写3个)(1)|A|不为零(2)n阶矩阵A的列或行向量组线性无关(3)矩阵A为满秩矩阵(4)n阶矩阵A与n阶可逆矩阵B等价4、迭代法的基本思想是什么?就是用某种极限过程去逐步逼近线性方程组精确解得方法。其基本思想为:先任取一组近似解初值X0,然后按照某种迭代原则,由X0计算新的近似解X1,以此类推,可计算出X2,X3,…XK,。。。,如果{X}收敛,则取为原方程组的解。5、病态线性方程组的主要判断方法有哪些?(1)系数矩阵的某两行(列)几乎近似相关(2)系数矩阵的行列式的值很小(3)用主元消去法解线性方程组时出现小主元(4)近似解x*已使残差向量r=b-Ax*的范数很小,但该近似解仍不符合问题要求。6、Lagrange插值的前提条件是什么?并写出二次Lagrange插值的基函数。前提条件是:ijijxj,,(01)li.2,1,0,nji,二次Lagrange插值的基函数:))(())((2010210xxxxxxxxxl))(())((2101201xxxxxxxxxl))(())((1202102xxxxxxxxxl7、什么是数值积分的代数精度?如果某一个求积公式对于次数不超过m的多项式均能准确地成立,但对于m+1次多项式就不准确成立,则称该求积公式具有m次代数精度(或代数精确度)。8、写出解线性方程组的全主元消去法、列主元消去法和标度化列主元消去法各自的优缺点。一般来说列主元法能保证算法的稳定,所谓算法的稳定是指在运算过程中计算误差(对消去法这种直接法来说主要指由于计算机字长有限带来的舍入误差)能得到控制;全主元是较列主元更稳定的算法,但是它的计算量要比列主元算法大得多,列主元算法每做一次消元仅与同列的元素做比较,比较的次数与线性方程组的阶n是同阶的量,而全主元每做一次要与系数矩阵所有元素进行比较,计算量是与n2同阶的量。9、求矩阵特征值的QR方法的算法步骤是什么?对于给定的n阶实对称矩阵A与迭代次数M;(1)令A1=A,对于k=1,2,…,M;(2)迭代计算下一个矩阵:Ak=QkRk(对Ak作QR分解),(3)Ak=RQ(交换乘法次序),令k=k+1,Ak+1=QkTAKQK(4)返回到2,直到k=M,输出A的主对角元素。10、什么是高斯型求积公式与高斯点?一般可设求积公式=In(ƒ),为具有n个节点的插值求积公式,且具有2n+1次最高代数精度,则称其求积点x0,x1,…,xn称为高斯点具有,相应的公式称为高斯型求积公式。11、什么是插值计算的龙格现象?增加插值节点,提高插值多项式的次数,可以使插值函数在更多的点与所逼近的函数取相同的值,但会使插值函数在两端发生激烈的振荡,这就是插值计算的龙格现象。12、龙格—库塔方法的基本思想是什么?基本思想是,在每一步内多预报几个点的斜率值,将其加权平均作为平均斜率,从而构造出更高的计算格式。具体做法是,用函数f(x,y)在若干点上的函数值的线性组合来构造近似公式,构造时让近似公式在(xi,yi)处的泰勒展开式与解y(x)在xi处的泰勒展开式的前面几项重合,从而使近似公式达到所需要的阶数,这样既避免求偏导数,又提高了计算方法的精度。二、计算题1、随机生成4*4的矩阵,做列主元的三角分解,并验证等式PA=LU。解:A=rand(4)%随机生成的四位矩阵A=0.81470.63240.95750.95720.90580.09750.96490.48540.12700.27850.15760.80030.91340.54690.97060.1419[L,U,P]=lu(A)L=1.00000000.99171.0000000.8920-0.32501.000000.1390-0.45520.25671.0000U=0.91340.54690.97060.14190-0.44480.00240.3447000.09250.94260000.6955P=0001010010000010P*A%验证PA=LUans=0.91340.54690.97060.14190.90580.09750.96490.48540.81470.63240.95750.95720.12700.27850.15760.8003L*Uans=0.91340.54690.97060.14190.90580.09750.96490.48540.81470.63240.95750.95720.12700.27850.15760.80032、用Lagrange插值和Newton插值拟合[0,2*pi]上的sin函数,并画图比较。解:建立拉格朗日函插值函数function[yt,L]=LagInterp1(x,y,xt)%拉格朗日差值%x,y:差值条件%xt:用拉格朗日插值函数要计算的自变量,可以是多个%yt:用拉格朗日插值函数计算出xt对应的函数值数组%L:拉格朗日插值多项式表达式symst;n=length(x);ny=length(y);ifn~=nyerror('差值节点x与函数值y不一致');endL=0.0;fork=1:nlk=1;forj=1:nifj~=klk=lk*(t-x(j))/(x(k)-x(j));endend;L=L+y(k)*lk;endsimplify(L);%简化拉格朗日插值多项式表达式L=collect(L);%将拉格朗日插值多项式展开yt=subs(L,'t',xt);%计算插值点处的函数值建立牛顿函数:function[yt,N]=NewtInterp(x,y,xt)%已知数据点的牛顿插值%x,y:差值条件%xt:要计算的插值点,可以是多个%yt:用牛顿插值函数算出xt对应的函数值数组%L:牛顿插值多项式表达式symst;n=length(x);ny=length(y);ifn~=nyerror('差值节点x与函数值y不一致');enda=zeros(1,n);N=y(1);w=1;fork=1:n-1yy=zeros(1,n);%记录差商forj=k+1:nyy(j)=(y(j)-y(k))/(x(j)-x(k));enda(k)=yy(k+1);w=w*(t-x(k));N=N+a(k)*w;y=yy;endyt=subs(N,'t',xt);simplify(N);N=collect(N);%将插值多项式展开N=vpa(N,6);%系数转化为6位精度命令:x=0:pi/10:2*pi;y=sin(x);z=0:pi/20:2*pi;y1=LagInterp1(x,y,z);%拉格朗日拟合法y2=NewtInterp(x,y,z);%牛顿拟合法figure;plot(z,sin(z),'--r',z,y1,'-b',z,y2,'-.k')%绘制函数图象holdonplot(x,y,'+')xlabel('x')ylabel('y')3、对不同初值用Jacobi迭代法解方程组Axb,其中.100101,2112112112112112bA解:建立雅可比函数functiontx=jacobi(A,b,imax,x0,acc)%利用Jacobi迭代法解线性方程组AX=b,迭代初值为x0,迭代次数为imax,精度为acc%利用Jacobi迭代法解线性方程组AX=b,%迭代初值为x0,%迭代次数为imax,%精度为accdel=10^(-10);%主对角元素不能太小tx=[x0];n=length(x0);fori=1:ndg=A(i,i);ifabs(dg)deldisp('主对角元素太小');returnendendfork=1:imaxfori=1:nsm=b(i);forj=1:nifj~=ism=sm-A(i,j)*x0(j);endendx(i)=sm/A(i,i);endtx=[tx;x];ifnorm(x-x0)accreturnelsex0=x;endend命令:A=[2,-1,0,0,0,0;-1,2,-1,0,0,0;0,-1,2,-1,0,0;0,0,-1,2,-1,0;0,0,0,-1,2,-1,;0,0,0,0,-1,2];b=[1,0,1,0,0,1];acc=1.0*10^(-6);imax=20;(10,20,30都可取)x0=zeros(1,6);tx=jacobi(A,b,imax,x0,acc)(此命令一行一行的复制)tx=0000000.500000.5000000.50000.50000.50000.50000.25000.25000.50000.75000.50000.87500.37500.37500.62500.75000.81250.93750.62500.50000.68750.90630.84381.21880.71880.65630.75000.92191.06251.28130.93750.73440.82811.03131.10161.50001.00780.88280.86721.05081.26561.55471.19140.93750.94141.13281.30271.72851.24611.06640.96881.15141.43071.77441.39751.10741.03321.21531.46291.91411.44091.21531.05371.23141.56471.95191.56471.24731.10771.28231.59172.06471.59961.33621.12371.29581.67352.09561.70041.36161.16811.33681.69572.18701.72861.43431.18081.34791.76192.21221.81061.45471.21711.38091.78002.28621.83351.51391.22741.39001.83362.30671.90011.53041.25691.41681.84842.36681.91861.57851.26521.42421.89182.38351.97271.59191.28934、用最小二乘法求一个多项式,使它与下列数据相拟合x-1.0-0.50.00.51.01.52.0y-4.447-0.4520.5510.048-0.4470.5494.552(1)求拟合曲线y=Pn(x),(n=1,2,3)(2)求拟合误差(3)画出y=Pn(x)的图像解:(1)命令x=[-1.0-0.50.00.51.01.52.0];y=[-4.447-0.4520.5510.048-0.4470.5494.552];p1=polyfit(x,y,1)%一次多项式拟合p1=2.0001-0.9495p2=polyfit(x,y,2)%二次多项式拟合p2=0.00101.9991-0.9502p3=polyfit(x,y,3)%三次多项式拟合p3=1.9991-2.9977-0.00000.