数值分析上机题目详解
数值分析报告上机报告材料
第一题:1、已知A 与b12.38412 2.115237 -1.061074 1.112336 -0.1135840.718719 1.742382 3.067813 -2.031743 2.11523719.141823 -3.125432 -1.012345 2.189736 1.563849-0.784165 1.112348 3.123124 -1.061074 -3.125A =43215.567914 3.123848 2.031454 1.836742-1.056781 0.336993 -1.010103 1.112336 -1.012345 3.12384827.108437 4.101011-3.741856 2.101023 -0.71828 -0.037585 -0.1135842.189736 2.031454 4.10101119.8979180.431637-3.111223 2.121314 1.784317 0.718719 1.563849 1.836742 -3.741856 0.4316379.789365-0.103458 -1.103456 0.238417 1.742382 -0.784165 -1.056781 2.101023-3.111223-0.10345814.7138465 3.123789 -2.213474 3.067813 1.112348 0.336993-0.71828 2.121314-1.103456 3.12378930.719334 4.446782 -2.031743 3.123124 -1.010103-0.037585 1.7843170.238417-2.213474 4.44678240.00001[ 2.1874369 33.992318 -25.173417 0.84671695 1.784317 -86.612343 1.1101230 4.719345 -5.6784392]TB ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦=(1)用Househloser 变换,把A 化为三对角阵(并打印B )。
数值分析上机题目4
实验一实验项目:共轭梯度法求解对称正定的线性方程组实验内容:用共轭梯度法求解下面方程组(1) 123421003131020141100155x x x x -⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪--- ⎪ ⎪ ⎪= ⎪ ⎪ ⎪-- ⎪ ⎪ ⎪-⎝⎭⎝⎭⎝⎭ 迭代20次或满足()(1)1110k k x x --∞-<时停止计算。
编制程序:储存m 文件function [x,k]=CGmethod(A,b)n=length(A);x=2*ones(n,1);r=b-A*x;rho=r'*r;k=0;while rho>10^(-11) & k<1000k=k+1;if k==1p=r;elsebeta=rho/rho1;p=r+beta*p;endw=A*p;alpha=rho/(p'*w);x=x+alpha*p;r=r-alpha*w;rho1=rho;rho=r'*r;end运行程序:clear,clcA=[2 -1 0 0;-1 3 -1 0;0 -1 4 -1;0 0 -1 5];b=[3 -2 1 5]';[x,k]=CGmethod(A,b)运行结果:x =1.5058823529411760.0117647058823530.5294117647058821.105882352941177(2) Ax b =,A 是1000阶的Hilbert 矩阵或如下的三对角矩阵,A[i,i]=4,A[i,i-1]=A[i-1,i]=-1,i=2,3,..,nb[1]=3, b[n]=3, b[i]=2,i=2,3,…,n-1迭代10000次或满足()()710k k r b Ax -=-≤时停止计算。
编制程序:储存m 文件function [x,k]=CGmethod_1(A,b)n=length(A);x(1:n,1)=0;r=b-A*x;r1=r;k=0;while norm(r1,1)>10^(-7)&k<10^4k=k+1;if k==1p=r;elsebeta=(r1'*r1)/(r'*r);p=r1+beta*p;endr=r1;w=A*p;alpha=(r'*r)/(p'*w);x=x+alpha*p;r1=r-alpha*w;end运行程序:clear,clcn=1000;A=hilb(n);b=sum(A')';[x,k]=CGmethod(A,b)实验二1、 实验目的:用复化Simpson 方法、自适应复化梯形方法和Romberg 方法求数值积分。
数值分析习题与解析
习 题 一 解 答1.取3.14,3.15,227,355113作为π的近似值,求各自的绝对误差,相对误差和有效数字的位数。
分析:求绝对误差的方法是按定义直接计算。
求相对误差的一般方法是先求出绝对误差再按定义式计算。
注意,不应先求相对误差再求绝对误差。
有效数字位数可以根据定义来求,即先由绝对误差确定近似数的绝对误差不超过那一位的半个单位,再确定有效数的末位是哪一位,进一步确定有效数字和有效数位。
有了定理2后,可以根据定理2更规范地解答。
根据定理2,首先要将数值转化为科学记数形式,然后解答。
解:(1)绝对误差:e(x)=π-3.14=3.14159265…-3.14=0.00159…≈0.0016。
相对误差:3()0.0016()0.51103.14r e x e x x -==≈⨯ 有效数字:因为π=3.14159265…=0.314159265…×10,3.14=0.314×10,m=1。
而π-3.14=3.14159265…-3.14=0.00159…所以│π-3.14│=0.00159…≤0.005=0.5×10-2=21311101022--⨯=⨯ 所以,3.14作为π的近似值有3个有效数字。
(2)绝对误差:e(x)=π-3.15=3.14159265…-3.14=-0.008407…≈-0.0085。
相对误差:2()0.0085()0.27103.15r e x e x x --==≈-⨯ 有效数字:因为π=3.14159265…=0.314159265…×10,3.15=0.315×10,m=1。
而π-3.15=3.14159265…-3.14=-0.008407…所以│π-3.15│=0.008407……≤0.05=0.5×10-1=11211101022--⨯=⨯ 所以,3.15作为π的近似值有2个有效数字。
(3)绝对误差:22() 3.14159265 3.1428571430.0012644930.00137e x π=-=-=-≈- 相对误差:3()0.0013()0.4110227r e x e x x--==≈-⨯ 有效数字: 因为π=3.14159265...=0.314159265 (10)22 3.1428571430.3142857143107==⨯,m=1。
东南大学数值分析上机题答案
东南⼤学数值分析上机题答案数值分析上机题第⼀章17.(上机题)舍⼊误差与有效数设∑=-=Nj N j S 2211,其精确值为)111-23(21+-N N 。
(1)编制按从⼤到⼩的顺序1-1···1-311-21222N S N +++=,计算N S 的通⽤程序;(2)编制按从⼩到⼤的顺序121···1)1(111222-++--+-=N N S N ,计算NS 的通⽤程序;(3)按两种顺序分别计算210S ,410S ,610S ,并指出有效位数(编制程序时⽤单精度);(4)通过本上机题,你明⽩了什么?解:程序:(1)从⼤到⼩的顺序计算1-1···1-311-21222N S N +++=:function sn1=fromlarge(n) %从⼤到⼩计算sn1format long ; sn1=single(0); for m=2:1:nsn1=sn1+1/(m^2-1); end end(2)从⼩到⼤计算121···1)1(111222-++--+-=N N S N function sn2=fromsmall(n) %从⼩到⼤计算sn2format long ; sn2=single(0); for m=n:-1:2sn2=sn2+1/(m^2-1); end end(3)总的编程程序为: function p203()clear allformat long;n=input('please enter a number as the n:') sn=1/2*(3/2-1/n-1/(n+1));%精确值为sn fprintf('精确值为%f\n',sn);sn1=fromlarge(n);fprintf('从⼤到⼩计算的值为%f\n',sn1);sn2=fromsmall(n);fprintf('从⼩到⼤计算的值为%f\n',sn2);function sn1=fromlarge(n) %从⼤到⼩计算sn1 format long;sn1=single(0);for m=2:1:nsn1=sn1+1/(m^2-1);endendfunction sn2=fromsmall(n) %从⼩到⼤计算sn2 format long;sn2=single(0);for m=n:-1:2sn2=sn2+1/(m^2-1);endendend运⾏结果:从⽽可以得到N值真值顺序值有效位数2 100.740050 从⼤到⼩0.740049 5从⼩到⼤0.740050 64 100.749900 从⼤到⼩0.749852 3从⼩到⼤0.749900 66 100.749999 从⼤到⼩0.749852 3从⼩到⼤0.749999 6(4)感想:通过本上机题,我明⽩了,从⼩到⼤计算数值的精确位数⽐较⾼⽽且与真值较为接近,⽽从⼤到⼩计算数值的精确位数⽐较低。
数值分析上机实习题及答案.docx
方詡文金兴:爭[数值分析]2017-2018第二学期上机实习题1:编程计算亍丄,其中C= 4. 4942x10307,给出并观察计算结心C"果,若有问题,分析之。
解:mat lab 编程如下:E) funct ion diy i ti formatlong g;n 二input C 输入ii 值= c= 4.4942E307; sum 二0; s 二 0;E3 for i = l:n s = l/ (c*i);>> diyiti 输入n 值:10 104.6356e-308 >> diyiti输入ri 值:1001004.6356e-308 >> diyiti 输入n 值:1000 10004.6356e-308 >> diyiti揄入n 值* 1000001000004・ 6356e-308 >> diyiti输入n 值;1000000001000000004.6356e-308图二:运行结果Mat lab 中,forma t long g 对双精度,显示15位定点或浮点格式,由上图 可知,当输入较小的n 值5分别取10, 100, 1000, 100000, 100000000)的时候, 结果后面的指数中总是含有e-308,这和题目中的C 值很相似,我认为是由于分 母中的C 值相对于n 值过大,出现了 “大数吃小数”的现彖,这是不符合算法原 则的。
2:利用牛顿法求方程-1^ = 2于区间241的根,考虑不同初值下牛顿法的收敛情况。
解:牛顿法公式为:利用mat lab 编程function di2ti21 3i=l ;2 2.85208156699784 xO 二input ('输入初值x0:‘ );A 二[i x0];3 2.55030468822809 t=x0+ (x0-log (xO) -2) /(1-1/xO) ; %迭代函数4 1.91547247100476 三 while (abs (t _x0)>0.01)i=i+l; 5 0.37867158538991 xO 二 t; 6 0.774964959780275 A = [A;i xO];t =x0+(x0-log(xO)-2)/(1-1/xO): 7 4.11574081641933 cnd| 8 5.04162436446126 disp (A);96.81782826645596当输入初值二3的时候并不能收敛。
数值分析(课后习题答案详解).ppt
x x 41 2 0 . 25 0 . 5451 1 1 再解 3 x 0 . 875 ,得 x 1 . 2916 2 2 2 0 3 1 . 7083 . 5694 x x 3 3
4 41 2 T 故得 GG 分解: A 1 2 3 2 2 3 3 3 1 1 16 11 4 2 T 3 1 LDL 分解为: A 1 4 4 1 2 3 1 1 9 1 2 2
一.习题1(第10页)
1-1.下列各数都是经过四舍五入得到的近似值 ,试分 别指出它们的绝对误差限,相对误差限和有效数字的位数.
x1=5.420,x2=0.5420,x3=0.00542,x4=6000,x5=0.6105.
解 绝对误差限分别为: 1=0.510-3,2=0.510-4, 3=0.510-5,4=0.5,5=0.5104 . 相对误差限分别为: r1=0.510-3/5.420=0.00923%, r2=0.00923%,r3=0.0923%,4=0.0083%,5=8.3%. 有效数位分别为: 4位,4位,3位,4位,1位. 1-2.下列近似值的绝对误差限都是0.005,试问它们有
2 11 2 1 2 故得 Crout 分解: A 4 3 13 6 12 1 1
1 2 11 2 1 2 LDM 分解为: A 21 13 3 3 4 1 1 1
几位有效数字. a=-1.00031,b=0.042,c=-0.00032
数值分析上机题目详解
第一章一、题目 设∑=-=N N j S 2j 211,其精确值为)11123(21+--N N 。
1) 编制按从大到小的顺序11131121222-+⋯⋯+-+-=N S N ,计算S N 的通用程序。
2) 编制按从小到大的顺序1211)1(111222-+⋯⋯+--+-=N N S N ,计算S N 的通用程序。
3) 按两种顺序分别计算64210,10,10S S S ,并指出有效位数。
(编制程序时用单精度)4) 通过本次上机题,你明白了什么?二、通用程序N=input('Please Input an N (N>1):');AccurateValue=single((0-1/(N+1)-1/N+3/2)/2);Sn1=single(0);for a=2:N;Sn1=Sn1+1/(a^2-1);endSn2=single(0);for a=2:N;Sn2=Sn2+1/((N-a+2)^2-1);endfprintf('The value of Sn (N=%d)\n',N);fprintf('Accurate Calculation %f\n',AccurateValue); fprintf('Caculate from large to small %f\n',Sn1);fprintf('Caculate from small to large %f\n',Sn2);disp('____________________________________________________')三、结果从结果可以看出有效位数是6位。
感想:可以得出,算法对误差的传播有一定的影响,在计算时选一种好的算法可以使结果更为精确。
从以上的结果可以看到从大到小的顺序导致大数吃小数的现象,容易产生较大的误差,求和运算从小数到大数所得到的结果才比较准确。
《数值分析》练习题及答案解析
《数值分析》练习题及答案解析第一章 绪论主要考查点:有效数字,相对误差、绝对误差定义及关系;误差分类;误差控制的基本原则;。
1. 3.142和3.141分别作为π的近似数具有( )和( )位有效数字.A .4和3B .3和2C .3和4D .4和4 答案:A2. 设 2.3149541...x *=,取5位有效数字,则所得的近似值x=___________ .答案:2.31503.若近似数2*103400.0-⨯=x 的绝对误差限为5105.0-⨯,那么近似数有几位有效数字 解:2*103400.0-⨯=x ,325*10211021---⨯=⨯≤-x x 故具有3位有效数字。
4 . 14159.3=π具有4位有效数字的近似值是多少?解:10314159.0⨯= π,欲使其近似值*π具有4位有效数字,必需!41*1021-⨯≤-ππ,3*310211021--⨯+≤≤⨯-πππ,即14209.314109.3*≤≤π即取( , )之间的任意数,都具有4位有效数字。
第二章 非线性方程求根 主要考查点:二分法N 步后根所在的区间,及给定精度下二分的次数计算;非线性方程一般迭代格式的构造,(局部)收敛性的判断,迭代次数计算; 牛顿迭代格式构造;求收敛阶;1.用二分法求方程012=--x x 的正根,要求误差小于0.05。
(二分法)解:1)(2--=x x x f ,01)0(<-=f ,01)2(>=f ,)(x f 在[0,2]连续,故[0,2]为函数的有根区间。
"(1)计算01)1(<-=f ,故有根区间为[1,2]。
(2)计算041123)23()23(2<-=--=f ,故有根区间为]2,23[。
(3)计算0165147)47()47(2>=--=f ,故有根区间为]47,23[。
(4)计算06411813)813()813(2>=--=f ,故有根区间为]813,23[。
数值分析上机试题对应参考答案
一、 问答题1、什么是近似值x * 有效数字?若近似值x*的误差限是某一位的半个单位,该位到x*的第一位非零数字共有n 位,就说x*有n 位有效数字。
它可表示为X=±10m ×(a 1+a 2×10-1+…+a n ×10-(n-1),其中a i (i=1,2,…,n)是0到9中的一个数字,a 1≠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、迭代法的基本思想是什么?就是用某种极限过程去逐步逼近线性方程组精确解得方法。
其基本思想为:先任取一组近似解初值X 0,然后按照某种迭代原则,由X 0计算新的近似解X 1,以此类推,可计算出X 2,X 3,…X K ,。
,如果{X }收敛,则取为原方程组的解。
5、病态线性方程组的主要判断方法有哪些?(1)系数矩阵的某两行(列)几乎近似相关 (2)系数矩阵的行列式的值很小(3)用主元消去法解线性方程组时出现小主元(4)近似解x*已使残差向量r=b-Ax*的范数很小,但该近似解仍不符合问题要求。
6、Lagrange 插值的前提条件是什么?并写出二次Lagrange 插值的基函数。
前提条件是:⎩⎨⎧≠==i j i j x j,,(01)l i .2,1,0,n j i , = 二次Lagrange 插值的基函数:()))(())((2010210x x x x x x x x x l ----=()))(())((2101201x x x x x x x x x l ----= ()))(())((1202102x x x x x x x x x l ----=7、什么是数值积分的代数精度?如果某一个求积公式对于次数不超过m 的多项式均能准确地成立,但对于m+1次多项式就不准确成立,则称该求积公式具有m 次代数精度(或代数精确度)。
数值分析上机作业1-1解析
数值计算方法上机题目11、实验1. 病态问题实验目的:算法有“优”与“劣”之分,问题也有“好”和“坏”之别。
所谓坏问题就是问题本身的解对数据变化的比较敏感,反之属于好问题。
希望读者通过本实验对此有一个初步的体会。
数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。
病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。
问题提出:考虑一个高次的代数多项式∏=-=---=201)()20)...(2)(1()(k k x x x x x p (E1-1)显然该多项式的全部根为l ,2,…,20,共计20个,且每个根都是单重的(也称为简单的)。
现考虑该多项式方程的一个扰动0)(19=+xx p ε (E1-2)其中ε是一个非常小的数。
这相当于是对(E1-1)中19x 的系数作一个小的扰动。
我们希望比较(E1-1)和(E1-2)根的差别,从而分析方程(E1-1)的解对扰动的敏感性。
实验内容:为了实现方便,我们先介绍两个 Matlab 函数:“roots ”和“poly ”,输入函数u =roots (a )其中若变量a 存储1+n 维的向量,则该函数的输出u 为一个n 维的向量。
设a 的元素依次为121,...,,+n a a a ,则输出u 的各分量是多项式方程0...1121=++++-n n n n a x a x a x a的全部根,而函数b=poly(v)的输出b 是一个n +1维变量,它是以n 维变量v 的各分量为根的多项式的系数。
可见“roots ”和“Poly ”是两个互逆的运算函数.ve=zeros(1,21); ve(2)=ess;roots(poly(1:20))+ve)上述简单的Matlab 程序便得到(E1-2)的全部根,程序中的“ess ”即是(E1-2)中的ε。
实验要求:(1)选择充分小的ess ,反复进行上述实验,记录结果的变化并分析它们。
数值分析实验(参考答案)
数值分析上机实验学生姓名: 学号: 教师:实验1:1. 实验项目的性质和任务通过上机实验,使学生对病态问题、线性方程组求解和函数的数值逼近方法有一个初步理解。
2.教学内容和要求 1)对高阶多多项式201()(1)(2)(20)()k p x x x x x k ==---=-∏编程求下面方程的解 19()0p x x ε+=并绘图演示方程的解与扰动量ε的关系。
Matlab 程序:x=1:20;y=zeros(1,20); ve=zeros(1,21); plot(x,y,'o') hold on ; pause; for x=1:5ve(2)=10^(-x);e=roots(poly(1:20)+ve);plot(e,'*') hold on pause; end0510152025303540-20-15-10-5051015202)对2~20n =,生成对应的Hilbert 矩阵,计算矩阵的条件数;通过先确定解获得常向量b 的方法,确定方程组 n H x b =最后,用矩阵分解方法求解方程组,并分析计算结果。
Matlab 程序:for n=2:20; H=hilb(n); ca=cond(H,2) x=(1:n)'; b=H*x; [L,U]=lu(H); y=L\b;x1=U\yplot(x,x,'o',x1,x1,'*') hold on pause; end-500-400-300-200-100100200300400500-500-400-300-200-10001002003004005003)对函数 21()[1,1]125f x x x=∈-+的Chebyshev 点 (21)cos()1,2,...,12(1)kk x k n n π-==++编程进行Lagrange 插值,并分析插值结果。
Matlab 程序:function y=lagrangen(x0,y0,x) n=length(x0);m=length(x); for i=1:m z=x(i);s=0;for k=1:nL=1;for j=1:nif j~=kL=L*(z-x0(j))/(x0(k)-x0(j));endends=s+L*y0(k);endy(i)=s;endy;for n=5:20x=-1:0.01:1; y=1./(1+25*x.^2);plot(x,y,'r')hold onk=n+1:-1:1;x0=cos((2*k-1)*pi./(2*(n+1))),y0=1./(1+25*x0.^2);x=-1:0.01:1; y1=lagrangen(x0,y0,x);plot(x0,y0,'o',x,y1), pausehold off end-1-0.8-0.6-0.4-0.200.20.40.60.81-0.200.20.40.60.811.2-1-0.8-0.6-0.4-0.200.20.40.60.81-1-0.8-0.6-0.4-0.200.20.40.60.81。
数值分析_第三次上机
4.求f(x)=sin x 在[0,π/2]上的最佳一次逼近多项式。
解:设P 1(x)=a 0+a 1x 是f(x) 的最佳一次逼近多项式,则P 1(x)在[0,π/2]上有三个交错点, 满足0<=x 1<x 2<x 3<=π/2。
由于 [f(x)- P 1(x)]’’=(cos x-a 1)’= -sin x 在[0,π/2]上小于0,定号, 故(cos x-a 1)’在[0,π/2]上单调递减,且仅有一个驻点。
故f(x)- P 1(x)在[0,π/2]上只有一个偏差点x 2,满足[f(x)- P 1(x)]’|x=x2 =cos x 2-a 1=0 (1)。
另外两个偏差点x 1=0 ,x 3=π/2 .于是sin 0-a 0 =sin π/2-a 0-π/2a 1 (2), sin x 2 –a 0-a 1x 2= -( sin 0-a 0) (3) 由(1)(2)(3)式得:a 1=2/π x 2=arccos 2/π=0.88 a 0=-1.18 所以P 1= -1.18+2/π x 。
6.求f(x)=2x 4+3x 3-x 2+1在[-1,1]上的三次最佳一致逼近多项式。
解:设f(x)的三次最佳一致逼近多项式为P 3(x),由切比雪夫多项式的极性可得 1/2[f(x)- P 3(x)]=1/8T 4(x)=1/8(8x 4-8x 2+1)所以P 3(x)=f(x)-1/4(8x 4-8x 2+1)= 2x 4+3x 3-x 2+1-2x 4+2x 2-1/4 =3x 3+x 2+3/49.求函数f(x)在指定区间上关于Φ(x)=span{1,x}的最佳平方逼近多项式。
(3)f(x)=cosπx, x ∈[0,1];(4)f(x)=ln x, x ∈[1,2].解:(3)在[0,1]上,经计算得 d 0= ⎰1)(f dx x =0 ,d 1=⎰1)(x dx x f = -2/π2得到法方程组为a 0+1/2a 1=0 ,1/2a 0+1/3a 1= -2/π2 由上面两式解得 a 0=12/π2 ,a 1= -24/π2所以f(x)=cosπx 在[0,1]上的最佳平方逼近多项式为 S 1*=12/π2 -24/π2 x 。
数值分析上机题答案
数值分析上机题答案【篇一:数值分析上机试题对应参考答案】么是近似值x* 有效数字?若近似值x*的误差限是某一位的半个单位,该位到x*的第一位非零数字共有n位,就说x*有n位有效数字。
它可表示为2、数值计算应该避免采用不稳定的算法,防止有效数字的损失. 因此,在进行数值运算算法设计过程中主要注意什么?(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 插值的基函数。
1,j?i?(x)? 前提条件是:l i ,j?0,1,2?,n.?ij0,j?i?二次lagrange 插值的基函数: (x?x)(x?x)12??lx0(xx)(xx) 0?10?2 (x?x)(x?x)02?? lx1(xx)(xx)1?01?2(x?x)(x?x)01?? lx2(x?x)(x?x)20217、什么是数值积分的代数精度?如果某一个求积公式对于次数不超过m的多项式均能准确地成立,但对于m+1次多项式就不准确成立,则称该求积公式具有m次代数精度(或代数精确度)。
数值分析试题(卷)与答案解析
数值分析试题一、 填空题(2 0×2′)1.⎥⎦⎤⎢⎣⎡-=⎥⎦⎤⎢⎣⎡-=32,1223X A 设x =0.231是精确值x *=0.229的近似值,则x 有 2位有效数字。
2. 若f (x )=x 7-x 3+1,则f [20,21,22,23,24,25,26,27]= 1 ,f [20,21,22,23,24,25,26,27,28]= 0 。
3. 设,‖A ‖∞=___5 ____,‖X ‖∞=__ 3_____,‖AX ‖∞≤_15_ __。
4. 非线性方程f (x )=0的迭代函数x =(x )在有解区间满足 |’(x )| <1 ,则使用该迭代函数的迭代解法一定是局部收敛的。
5. 区间[a ,b ]上的三次样条插值函数S (x )在[a ,b ]上具有直到 2 阶的连续导数。
6. 当插值节点为等距分布时,若所求节点靠近首节点,应该选用等距节点下牛顿差商公式的 前插公式 ,若所求节点靠近尾节点,应该选用等距节点下牛顿差商公式的 后插公式 ;如果要估计结果的舍入误差,应该选用插值公式中的 拉格朗日插值公式 。
7. 拉格朗日插值公式中f (x i )的系数a i (x )的特点是:=∑=ni i x a 0)( 1 ;所以当系数a i (x )满足 a i (x )>1 ,计算时不会放大f (x i )的误差。
8. 要使20的近似值的相对误差小于0.1%,至少要取 4 位有效数字。
9. 对任意初始向量X (0)及任意向量g ,线性方程组的迭代公式x (k +1)=Bx (k )+g (k =0,1,…)收敛于方程组的精确解x *的充分必要条件是(B)<1 。
10. 由下列数据所确定的插值多项式的次数最高是 5 。
x 0 0.5 1 1.5 2 2.5 y =f (x )-2-1.75-10.2524.2511. 牛顿下山法的下山条件为 |f(xn+1)|<|f(xn)| 。
数值分析习题与答案知识讲解
数值分析习题与答案第一章绪论习题一1.设x>0,x*的相对误差为δ,求f(x)=ln x的误差限。
解:求lnx的误差极限就是求f(x)=lnx的误差限,由公式(1.2.4)有已知x*的相对误差满足,而,故即2.下列各数都是经过四舍五入得到的近似值,试指出它们有几位有效数字,并给出其误差限与相对误差限。
解:直接根据定义和式(1.2.2)(1.2.3)则得有5位有效数字,其误差限,相对误差限有2位有效数字,有5位有效数字,3.下列公式如何才比较准确?(1)(2)解:要使计算较准确,主要是避免两相近数相减,故应变换所给公式。
(1)(2)4.近似数x*=0.0310,是 3 位有数数字。
5.计算取,利用:式计算误差最小。
四个选项:第二、三章插值与函数逼近习题二、三1. 给定的数值表用线性插值与二次插值计算ln0.54的近似值并估计误差限. 解:仍可使用n=1及n=2的Lagrange插值或Newton插值,并应用误差估计(5.8)。
线性插值时,用0.5及0.6两点,用Newton插值误差限,因,故二次插值时,用0.5,0.6,0.7三点,作二次Newton插值误差限,故2. 在-4≤x≤4上给出的等距节点函数表,若用二次插值法求的近似值,要使误差不超过,函数表的步长h应取多少?解:用误差估计式(5.8),令因得3. 若,求和.解:由均差与导数关系于是4. 若互异,求的值,这里p≤n+1.解:,由均差对称性可知当有而当P=n+1时于是得5. 求证. 解:解:只要按差分定义直接展开得6. 已知的函数表求出三次Newton均差插值多项式,计算f(0.23)的近似值并用均差的余项表达式估计误差.解:根据给定函数表构造均差表由式(5.14)当n=3时得Newton均差插值多项式N3(x)=1.0067x+0.08367x(x-0.2)+0.17400x(x-0.2)(x-0.3) 由此可得f(0.23) N3(0.23)=0.23203由余项表达式(5.15)可得由于7. 给定f(x)=cosx的函数表用Newton等距插值公式计算cos 0.048及cos 0.566的近似值并估计误差解:先构造差分表计算,用n=4得Newton前插公式误差估计由公式(5.17)得其中计算时用Newton后插公式(5.18)误差估计由公式(5.19)得这里仍为0.5658.求一个次数不高于四次的多项式p(x),使它满足解:这种题目可以有很多方法去做,但应以简单为宜。
数值分析上机题目及其实现
float sum1=0;
for(q=1;q<k;q++)
sum1+=a[k][q]*a[q][j];
a[k][j]=a[k][j]-sum1;
}
for(i=k+1;i<=n;i++)
//算出第k列列元素的值
{
float sum2=0;
for(q=1;q<k;q++)
sum2+=a[i][q]*a[q][k];
分析:我感觉是提高了查错误点的能力和编循环语句的能力,即利用很规整的迭代公式进行编程。另外列主元三角分解法的阶梯步骤有了更深的了解!
36.逐次超松弛迭代法
(1)编制解n阶线性方程组Ax=b的SOR方法的通用程序(要求 );
(2)对于35题中所给的线性方程组,取松弛因子 ,容许误差 ,打印松弛因子、迭代次数、最佳松弛因子及解向量。
(3)通过本上机题,你明白了什么?
解:(1)编制的通用程序:
#include<iostream.h>
#include<math.h>
#define eps 0.000001 /给定容许误差
float f(float x) //定义函数f(x)
{
float f;
f=x*x*x/3-x; //f(x)的表达式;
{0,0,0,-9,0,0,0,-2,29}};
float b[9]={-15,27,-23,0,-20,12,-7,7,10};
float max(float m[9]);
for(t=1;t<=99;t++)
{
l=0;
float x0[9]={1,1,1,1,1,1,1,1,1};
数值分析上机实例
《数值分析实验报告》实验题目:曲线拟合的最小二乘法一、实验目的:1、掌握拟合曲线的最小二乘法;2、探求拟合函数的选择和拟合精度间的关系。
二、实验要求:1、用最小二乘法进行三次多项式的拟合;2、计算y j与y(t j)的误差,j=1,2…11;3、另外选取一个拟合函数,进行拟合效果比较;4、* 绘制出曲线拟合图。
三、实验问题:在某冶炼过程中,通过实验检测得到的含碳量与时间关系数据如下,试求含碳量y与时间t内在关系的拟合曲线。
四、实验过程与结果:先画出实验数据图形,如下图:应实验要求取拟合函数为三次函数:即:设Y=X(1)+X(2)*t+X(3)*t.^2+X(4)*t.^3;取权函数均为1令x=(0,5,10,15,20,25,30,35,40,45,50)’y=(0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51 ,4.58,4.02)’;x1=(1,1,1,1,1,1,1,1,1,1,1)’;x2=x;x3=x.^2;x4=x.^3;B=[(x1*x1'),(x1*x2'),(x1*x3'),(x1*x4');(x2*x1'),(x2*x2'),(x2*x3'),(x2*x4');(x3*x1'),(x3*x2'),(x3*x3'),(x3*x4');(x4*x1'),(x4*x2'),(x4*x3'),(x4*x4')];C=((x1*y'),(x2*y'),(x3*y'),(x4*y'))’;其矩阵形式是 B*X=C’X=(X(1), X(2),X(3),X(4))’解出得X =(0.0887412587412430.233658896658901-0.0033839160839160.000006790986791)所以得到三次拟合曲线为:Y=0.088741258741243+0.233658896658901*t-0.003383916083916*t.^2+ 0.000006790986791*t.^3 得到曲线拟合图为:求y j与y(t j)均方误差:sum=0sum=(0.088741258741243*x1(j)+0.233658896658901*x2(j)-0.00338 3916083916*x3(j)+ 0.000006790986791*x4(j)-y(j))^2+sumsqrt(sum) j=1,2,3,4,5,6,7,8,9,10,11求得均方误差结果为:ans = 0.317886926283700另外同理选取一个二次多项式进行拟合:得到二次拟合曲线系数为:Q =( 0.1193006993006950.223947785547786-0.002874592074592)二次拟合曲线为:Y1=0.119300699300695+0.223947785547786*t1-0.002874592074592*t1.^2;二次拟合均方误差为ans =0.324813161284437得到二次拟合图:五、结果分析与讨论将二次多项式和三次多项式的曲线拟合图放在一块比较如下图:可以看出三次拟合要比二次拟合要好一点但并不是很明显,其均方误差比较接近相差-0.006926235000737即二次和三次拟合精度相差较小。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章
一、题目
设∑
=-=
N
N j S 2
j 2
1
1,其精确值为)11
123(21+--N N 。
1) 编制按从大到小的顺序1
1
13112122
2-+⋯⋯+-+-=N S N ,计算S N 的通用程序。
2) 编制按从小到大的顺序1
21
1)1(111222-+
⋯⋯+--+-=
N N S N ,计算S N 的通用程序。
3) 按两种顺序分别计算64210,10,10S S S ,并指出有效位数。
(编制程序时用单精度) 4) 通过本次上机题,你明白了什么?
二、通用程序
N=input('Please Input an N (N>1):'); AccurateValue=single((0-1/(N+1)-1/N+3/2)/2); Sn1=single(0);
for a=2:N; Sn1=Sn1+1/(a^2-1); end
Sn2=single(0);
for a=2:N; Sn2=Sn2+1/((N-a+2)^2-1); end
fprintf('The value of Sn (N=%d)\n',N);
fprintf('Accurate Calculation %f\n',AccurateValue); fprintf('Caculate from large to small %f\n',Sn1); fprintf('Caculate from small to large %f\n',Sn2); disp('____________________________________________________')
三、结果
从结果可以看出有效位数是6位。
感想:可以得出,算法对误差的传播有一定的影响,在计算时选一种好的算法可以使结果更为精确。
从以上的结果可以看到从大到小的顺序导致大数吃小数的现象,容易产生较大的误差,求和运算从小数到大数所得到的结果才比较准确。
第二章
一、题目
(1)给定初值0x 及容许误差ε,编制Newton 法解方程f(x)=0的通用程序。
(2)给定方程03
)(3
=-=x x x f ,易知其有三个根3,0,3321=
*=*-=*
x x x
a) 由Newton 方法的局部收敛性可知存在,0>δ当),(0δδ+-∈x 时,Newton 迭代序列收敛于根x 2*。
试确定尽可能大的δ。
b)试取若干初始值,观察当),1(),1,(),,(),,1(),1,(0+∞+-----∞∈δδδδx 时Newton 序列的收敛性以及收敛于哪一个根。
(3)通过本上机题,你明白了什么?
二、通用程序
1、定义函数和导函数 %% 定义函数f(x) function Fx=fx(x) Fx=x^3/3-x;
---------------------------------- %% 定义导函数df(x) function Fx=dfx(x) Fx=x^2-1; 2、寻找最大的δ clear flag=1; k=1; x0=0; while flag==1 delta=k*10^-6; x0=delta; k=k+1; m=0;
flag1=1;
while flag1==1 && m<=10^3
x1=x0-fx(x0)/dfx(x0);
if abs(x1-x0)<10^-6 flag1=0;
end
m=m+1;
x0=x1;
end
if flag1==1||abs(x0)>=10^-6 flag=0;
end
end
fprintf('The maximun delta is %f\n',delta);
3、Newton法求方程的根
clear
ef=10^-6; %% 给定容许误差10^-6
k=0;
x0=input('Please input initial value Xo:'); disp('k Xk');
fprintf('0 %f\n',x0);
flag=1;
while flag==1 && k<=10^3
x1=x0-fx(x0)/dfx(x0);
if abs(x1-x0)<ef
flag=0;
end
k=k+1;
x0=x1;
fprintf('%d %f\n',k,x0);
end
三、结果
寻找最大的δ值:
在题目给出的不同区间内进行牛顿迭代:
综上所述:首先得到最大的δ值为0.774597。
在各区间任意取初值进行迭代得到(-∞,-1)区间收敛于-1.73205,(-1,-δ)区间局部收敛于0,(-δ,δ)区间收敛于0,(δ,1)区间类似于(-1,δ)区间,收敛于0,(1,∞)收敛于1.73205。
感想:通过本上机题,了解到用Newton法求多根方程的根时,迭代序列收敛于某一个根有一定的区间限制。
如果不清楚这个限制随意取值的话,会出现在一个区间上局部收敛于
不同的根的情况。
如下面的迭代:
第三章
一、题目
列主元Gauss 消去法对于某电路的分析,归结为求解线性方程组RI V =。
其中
3113
000100
00
13359
01100
0009311000000
0107930000900030577
0500
000747300000000304100
000500272
0009000229R --⎛⎫
⎪--- ⎪ ⎪--
⎪
--- ⎪ ⎪=---
⎪
-- ⎪ ⎪-
⎪
-- ⎪ ⎪--⎝
⎭
()15,27,23,0,20,12,7,7,10T
T V =----
(1) 编制解n 阶线性方程组Ax b =的列主元高斯消去法的通用程序; (2) 用所编程序线性方程组RI V =,并打印出解向量,保留5位有效数;
二、通用程序
%% 列主元Gauss 消去法求解线性方程组%% %%参数输入
n=input('Please input the order of matrix A: n='); %输入线性方程组阶数n b=zeros(1,n);
A=input('Input matrix A (such as a 2 order matrix:[1 2;3,4]) :'); b(1,:)=input('Input the column vector b:'); %输入行向量b b=b';
C=[A,b]; %得到增广矩阵 %%列主元消去得上三角矩阵
for i=1:n-1 [maximum,index]=max(abs(C(i:n,i))); index=index+i-1; T=C(index,:);
C(index,:)=C(i,:); C(i,:)=T;
for k=i+1:n %%列主元消去 if C(k,i)~=0
C(k,:)=C(k,:)-C(k,i)/C(i,i)*C(i,:); end end
end
%% 回代求解 %%
x=zeros(n,1);
x(n)=C(n,n+1)/C(n,n);
for i=n-1:-1:1
x(i)=(C(i,n+1)-C(i,i+1:n)*x(i+1:n,1))/C(i,i);
end
A=C(1:n,1:n); %消元后得到的上三角矩阵
disp('The upper teianguular matrix is:')
for k=1:n
fprintf('%f ',A(k,:));
fprintf('\n');
end
disp('Solution of the equations:');
fprintf('%.5g\n',x); %以5位有效数字输出结果
三、求解结果
执行程序,输入矩阵A(即题中的矩阵R)和列向量b(即题中的V):
由上述结果得:
感想:本题用Gauss列主元的方法求出了线性方程组的解,并且精确到5位有效数字。
可以看到结果是很精确而且正确的,对于解决立体电路问题的方程求解是一种非常方便快速且精确的方法。
总的来说,Guass列主元消去法是一种大大减少了计算步骤和时间的方法。