数值分析上机题目
数值分析上机题目
数值分析上机题目4(总21页) --本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--实验一实验项目:共轭梯度法求解对称正定的线性方程组 实验内容:用共轭梯度法求解下面方程组(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<1000 k=k+1; if k==1 p=r; elsebeta=rho/rho1; p=r+beta*p; end w=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 =(2) Ax b =,A 是1000阶的Hilbert 矩阵或如下的三对角矩阵, A[i,i]=4,A[i,i-1]=A[i-1,i]=-1,i=2,3,..,n b[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^4 k=k+1; if k==1 p=r; elsebeta=(r1'*r1)/(r'*r);p=r1+beta*p; end r=r1; w=A*p;alpha=(r'*r)/(p'*w); x=x+alpha*p; r1=r-alpha*w; end运行程序: clear,clc n=1000; A=hilb(n); b=sum(A')';[x,k]=CGmethod(A,b)实验二1、 实验目的:用复化Simpson 方法、自适应复化梯形方法和Romberg 方法求数值积分。
数值分析报告上机题课后作业全部-东南大学
实用标准文案文档大全上机作业题报告2015.1.9 USER1.Chapter 11.1题目设S N =∑1j 2−1N j=2,其精确值为)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)通过本次上机题,你明白了什么?1.2程序1.3运行结果1.4结果分析按从大到小的顺序,有效位数分别为:6,4,3。
按从小到大的顺序,有效位数分别为:5,6,6。
可以看出,不同的算法造成的误差限是不同的,好的算法可以让结果更加精确。
当采用从大到小的顺序累加的算法时,误差限随着N 的增大而增大,可见在累加的过程中,误差在放大,造成结果的误差较大。
因此,采取从小到大的顺序累加得到的结果更加精确。
2.Chapter 22.1题目(1)给定初值0x 及容许误差ε,编制牛顿法解方程f(x)=0的通用程序。
(2)给定方程03)(3=-=x xx f ,易知其有三个根3,0,3321=*=*-=*x x x○1由牛顿方法的局部收敛性可知存在,0>δ当),(0δδ+-∈x 时,Newton 迭代序列收敛于根x2*。
试确定尽可能大的δ。
○2试取若干初始值,观察当),1(),1,(),,(),,1(),1,(0+∞+-----∞∈δδδδx 时Newton 序列的收敛性以及收敛于哪一个根。
(3)通过本上机题,你明白了什么?2.2程序2.3运行结果(1)寻找最大的δ值。
算法为:将初值x0在从0开始不断累加搜索精度eps,带入Newton迭代公式,直到求得的根不再收敛于0为止,此时的x0值即为最大的sigma值。
运行Find.m,得到在不同的搜索精度下的最大sigma值。
数值分析上机实习题及答案.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的时候并不能收敛。
数值分析上机题3
数值分析上机题目3实验一1.根据Matlab 语言特点,描述Jacobi 迭代法、Gauss-Seidel 迭代法和SOR 迭代法。
2.编写Jacobi 迭代法、Gauss-Seidel 迭代法和SOR 迭代法的M 文件。
3.给定2020⨯∈R A 为五对角矩阵⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡------------------321412132141412132141412132141412132141213O O O O (1)选取不同的初始向量)0(x 及右端面项向量b ,给定迭代误差要求,分别用编写的Jacobi 迭代法和Gauss-Seidel 迭代法程序求解,观察得到的序列是否收敛?若收敛,通过迭代次数分析计算结果并得出你的结论。
(2)用编写的SOR 迭代法程序, 对于(1)所选取的初始向量)0(x 及右端面项向量b 进行求解,松驰系数ω取1<ω<2的不同值,在5)1()(10-+≤-k k x x 时停止迭代,通过迭代次数分析计算结果并得出你的结论。
实验11、 根据MATLAB 语言特点,描述Jacobi 迭代法,Gauss-Seidel 迭代法和SOR 迭代法。
2、 编写Jacobi 迭代法,Gauss-Seidel 迭代法和SOR 迭代法的M 文件。
Jacobi 迭代法function [x1,k]=GS_2(A,b)n=length(A);D=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);x1=zeros(n,1);x0=3*ones(n,1);k=0; while norm(x1-x0,1)>10^(-7)&k<100 k=k+1;x0=x1;x1=D\((L+U)*x0+b);endk=kx=x1Gauss-Seidel迭代法function [x1,k]=GS_h(A,b)n=length(A);D=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);x1=zeros(n,1);x0=3*ones(n,1);k=0; while norm(x1-x0,1)>10^(-7)&k<100 k=k+1;x0=x1;x1=(D-L)\U*x0-D\b;endk=kx=x1SOR迭代法function [x1,k]=SOR_h(A,b)n=length(A);D=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);x1=zeros(n,1);x0=3*ones(n,1);k=0;w=0.96;while norm(x1-x0,1)>10^(-7)&k<100k=k+1;x0=x1;x1=(D-w*U)\(((1-w)*D+w*L)*x0+w*b);endk=kx=x13、采用Jacobi迭代法,Gauss-Seidel迭代法求解五对角矩阵clear,clcA=diag(3*ones(20,1))+diag((-0.5)*ones(19,1),-1)+diag((-0.5)*ones(19,1 ),1)+diag((-0.25)*ones(18,1),-2)+diag((-0.25)*ones(18,1),2);b=sum(A')';[x1,k1]=Jacob_h(A,b)[x2,k2]=GS_h(A,b)运行结果:两种方法都收敛,k1=27,k2=13。
数值分析上机题Matlab(东南大学)3
0.22 0.24 0.26 0.28 0.30 0.32 0.34 0.36 0.38 0.40 0.42 0.44 0.46 0.48 0.50 0.52 0.54 0.56 0.58 0.60 0.62 0.64 0.66 0.68 0.70 0.72
152 139 128 119 110 103 96 90 85 80 76 72 68 65 62 59 56 53 51 49 47 45 43 41 39 38
========================================================================================================================
======================================================================================================================================================================== 习题 3_36 ======================================================================================================================================================================== Omega n x1 x2 x3 x4 x5 x6 x7 x8 x9
-0.71279 -0.71280 -0.71280 -0.71280 -0.71280 -0.71280 -0.71280 -0.71280 -0.71280 -0.71280 -0.71280 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281 -0.71281
数值分析第六章上机题
x= 1.000002524164171 1.999995860451551 3.999999437251749
n= 71 ============================== w= 0.300000000000000
数值分析
x= 1.000001570412313 1.999997497008606 3.999999661876548
2、
function sor4 A = [-5 -1 2;2 6 -3;2 1 7]; b = [1 2 32]'; ep = 1e-6; for k = 1:19, fprintf('==============================') w = 0.1*k, [x,n]=sor2(A,b,w,ep) end
x ( k 1) x ( k ) 10 6 .试通过数值计算得出不同的松弛因子所需要的迭代次数和收敛最快的
松弛因子,并指出哪些松弛因子使得迭代发散.
Matlab 源程序如下: 1、 function [x,n] = sor2(A,b,w,ep) x0=[0 0 0]'; D = diag(diag(A)); L = D - tril(A); U = D - triu(A); n=0; for k = 1:1000, x = (D-w*L)\((1-w)*D+w*U)*x0+w*((D-w*L)\b); if norm(x0-x)>=ep, x0 = x; n=n+1; else break; end end
x= 1.000000594036767 1.999999119717464 3.999999872420914
n= 27
数值分析
数值分析上机实验题参考
数值分析论文数值积分 一、问题提出选用复合梯形公式,复合Simpson 公式,Romberg 算法,计算I = dx x ⎰-4102sin 4 ()5343916.1≈II =dx x x ⎰1sin ()9460831.0,1)0(≈=I fI = dx xe x⎰+1024 I =()dx x x ⎰++1211ln 二、要求编制数值积分算法的程序;分别用两种算法计算同一个积分,并比较其结果;分别取不同步长()/ a b h -=n ,试比较计算结果(如n = 10, 20等); ﹡给定精度要求ε,试用变步长算法,确定最佳步长﹡。
三、目的和意义深刻认识数值积分法的意义; 明确数值积分精度与步长的关系;根据定积分的计算方法,可以考虑二重积分的计算问题引言一、数值求积的基本思想实际问题当中常常需要计算积分,有些数值方法。
如微分方程和积分方程的求解,也都和积分计算相联系。
依据人们熟悉的微积分基本原理,对于积分I=⎰a b f(x)dx,只要找到被积函数f(x)和原函数F(x),便有下列牛顿-莱布尼茨公式:I=⎰a b f(x)dx=F(b)-F(a).但实际使用这种求积方法往往有困难,因为大量的被积函数,诸如x xsin,2xe-等,其原函数不能用初等函数表达,故不能用上述公式计算。
另外,当f(x)是由测量或数值计算给出的一张数据表时,牛顿-莱布尼茨公式也不能直接运用,因此有必要研究积分的数值计算问题。
二、数值积分代数精度数值求积方法是近似方法,为要保证精度,我们自然希望求积公式能对“尽可能多”的函数准确成立,就提出了所谓代数精度的概念。
如果某个求积公式对次数不超过m的多项式均能准确成立,但对m+1次多项式就不能准确成立,则称该求积公式具有m次代数精度。
三、复合求积公式为了提高精度,通常可以把积分区间分成若干子区间(通常是等分),再在每个子区间用低阶求积公式,即复化求积法,比如复化梯形公式与复化辛普森公式。
数值分析上机题目详解
第一章一、题目 设∑=-=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位。
感想:可以得出,算法对误差的传播有一定的影响,在计算时选一种好的算法可以使结果更为精确。
从以上的结果可以看到从大到小的顺序导致大数吃小数的现象,容易产生较大的误差,求和运算从小数到大数所得到的结果才比较准确。
数值分析韩旭里答案
数值分析韩旭里答案【篇一:数值分析上机题目】>1631110xxxx 材料科学与工程学院一.第2章插值法l2.7 给定数据表2-15.用newton插值公式计算3次插值多项式n3(x).表2-15x f(x)1 1.251.52.500 1.002 5.50a. matlab代码如下,two.m,%第二章,p45,练习题2第七题 clear(); x=[1,1.5,0,2];y(:,1)=[1.25,2.50,1.00,5.50];%已知点集合x和y syms t w; w(1)=1; %计算基函数序列w和差商表y,以及函数序列的权数diag(y),计算的牛顿三次多项式表述为t的函数 for j=2:length(x) fori=j:length(x)y(i,j)=(y(i,j-1)-y(i-1,j-1))/(x(i)-x(i-j+1)); i=i+1; endw(j)=prod(t-x(1:j-1)); j=j+1; enddisp(三次牛顿插值多项式为); disp(collect(w*diag(y)));plot(x,y(:,1),*); hold on;fplot(collect(w*diag(y)),[-0.5,2.5]);legend({已知点集,三次牛顿插值多项式函数},location,northwest,fontsize,14); xlabel(x,fontsize,16);ylabel(y,fontsize,16); hold off;b. 计算结果如下:二.第3章函数逼近与数据拟合a. matlab代码,three.m,%第三章函数逼近与数据拟合,p68练习题,第2题 clear(); syms x;%所使用的非线性基函数序列,用符号表示 y=abs(x);%被逼近函数f=[1,x^2,x^4];%求解法方程的系数矩阵a*gn=b,其中a和b均为行向量gn=ones(length(f),length(f)); for i=1:length(f) for j=1:length(f) gn(i,j)=int(f(i)*f(j),-1,1);j=j+1; endb(i)=int(f(i)*y,-1,1); i=i+1; enda=b/gn;%最佳平方逼近的系数行向量 disp(逼近函数表达式);disp(vpa(f*a));disp(最佳函数逼近得平方误差); disp(vpa(int(y^2,-1,1)-a*b));fplot(y,[-1,1]); hold on; fplot(a*f,[-1,1]);legend({被逼近函数,逼近函数},location,north,orientation,horizontal,fontsize,16,fontweight,b old);xlabel(x,fontsize,20,fontweight,bold);ylabel(y,fontsize,20,fontweight,bold); hold off;b. 运行结果如下:三.第4章数值积分与数值微分例4.9用romberg求积法计算定积分 01sin?(??)??a. matlab代码,four.m%romberg求积公式,外推原理 clear(); clear(); format long; a=0; b=1;t(1,1)=(b-a)/2*(f(a)+f(b));t(2,1)=1/2*t(1,1)+(b-a)/2*f((a+b)/2); t(1,2)=(4*t(2,1)-t(1,1))/(4-1);col=2;while abs(t(1,col)-t(1,col-1))0.5*10^-6%t(1,col)对应的计算的是多少步的值,col→coln关系col=col+1;%此时求得是第n+1次均分后的结果,使用的是第n次的结果,注意在矩阵 %计算的第n斜列是第n-1次均分的结果 for j=1:colif j==1h=(b-a)/2^(col-2);%使用n+1之前的第n次结果【篇二:数值分析a教学】>一、课程基本信息二、课程目的和任务“数值分析”是理工科院校计算数学、力学、物理、计算机软件等专业的学生必须掌握的一门重要的基础课程。
数值分析上机试题对应参考答案
一、 问答题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 次代数精度(或代数精确度)。
数值分析上机题
数值剖析上机题习题 117.(上机题)舍入偏差与有效数N11 3 11设S N2,其精准值为 。
2 2 NN 1j 2j1(1)编制按从大到小的次序S N111,计算 S N 的通用程序。
1 32 1L22N 21(2)编制按从小到大的次序S N111,计算 S N 的通用程序。
1(N L22N 2 1)2 11(3)按两种次序分别计算 S2 ,S 4 , S 6,并指出有效位数。
(编制程序时用单精度)1010 10(4)经过本上机题你理解了什么?按从大到小的次序计算 S N 的通用程序为: 按从小到大的次序计算 S N 的通用程序为:#include<iostream.h> #include<iostream.h> float sum(float N) float sum(float N) {{float j,s,sum=0; float j,s,sum=0; for(j=2;j<=N;j++) for(j=N;j>=2;j--) {{s=1/(j*j-1); s=1/(j*j-1); sum+=s;sum+=s;}}return sum;return sum;}}从大到小的次序的值从小到大的次序的值精准值有效位数从大到小从小到大65 S 10244S 10436S 106经过本上机题, 看出按两种不一样的次序计算的结果是不同样的,按从大到小的次序计算的值与精准值有较大的偏差, 而按从小到大的次序计算的值与精准值符合。
从大到小的次序计算获得的结果的有效位数少。
计算机在进行数值计算时会出现“大数吃小数”的现象,导致计算结果的精度有所降低, 我们在计算机中进行同号数的加法时,采纳绝对值较小者先加的算法,其结果的相对偏差较小。
习题 220.(上机题) Newton 迭代法(1)给定初值x0及允许偏差,编制Newton法解方程f ( x)0 根的通用程序。
(2)给定方程 f ( x) x3 / 3 x 0 ,易知其有三个根x1 3 , x20 , x3 3 。
数值分析上机题答案
数值分析上机题姓名:武均 学号:142648习题117.(上机题)舍入误差与有效数 设2211NN j S j ==-∑,其精确值为1311221N N ⎛⎫-- ⎪+⎝⎭。
(1)编制按从大到小的顺序22211121311N S N =+++---,计算N S 的通用程序。
(2)编制按从小到大的顺序2221111(1)121N S N N =+++----,计算NS 的通用程序。
(3)按两种顺序分别计算210S ,410S ,610S ,并指出有效位数。
(编制程序时用单精度) (4)通过本上机题你明白了什么? 按从大到小的顺序计算N S 的通用程序为: #include<iostream.h>float sum(float N) { float j,s,sum=0; for(j=2;j<=N;j++) { s=1/(j*j-1); sum+=s; } return sum; } 按从小到大的顺序计算N S 的通用程序为: #include<iostream.h> float sum(float N) {float j,s,sum=0; for(j=N;j>=2;j--) {s=1/(j*j-1); sum+=s; }return sum; }从大到小的顺序的值从小到大的顺序的值精确值 有效位数 从大到小 从小到大210S 0.740049 0.74005 0.740049 6 5 410S0.749852 0.7499 0.7499 4 4 610S0.7498520.7499990.74999936通过本上机题,看出按两种不同的顺序计算的结果是不相同的,按从大到小的顺序计算的值与精确值有较大的误差,而按从小到大的顺序计算的值与精确值吻合。
从大到小的顺序计算得到的结果的有效位数少。
计算机在进行数值计算时会出现“大数吃小数”的现象,导致计算结果的精度有所降低,我们在计算机中进行同号数的加法时,采用绝对值较小者先加的算法,其结果的相对误差较小。
数值分析上机作业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 ,反复进行上述实验,记录结果的变化并分析它们。
数值分析_第三次上机
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次代数精度(或代数精确度)。
数值分析上机题
上机题1舍入误差与有效数: 设2211N N j S j ==-∑,其精确值为1311()221N N --+。
(1) 编制按从大到小的顺序222111+2131N 1N S =++---…,计算N S 的通用程序; (2) 编制按从小到大的顺序222111+N 1N-1121N S =++---…(),计算N S 的通用程序; (3) 按两种顺序分别计算246101010S ,S ,S ,并指出有效位数(编制程序时用单精度);(4) 通过本上机题你明白了什么?Matlab 代码:Sb=single(0); %定义数据类型为单精度Ss=single(0);y=single(0);Y=single(0);N=single(2);a=1000000;while(1) %从大到小相加Y=1/(N^2-1);Sb=Sb+Y;if(N>=a)break;endN=N+1;endfprintf('Sb[%d]=%10.9f\n',N,Sb)n=single(a);while(1) %从小到大相加y=1/(n^2-1);Ss=Ss+y;if(n<=2)break;endn=n-1;endfprintf('Ss[%d]=%10.9f\n',a,Ss)St=(3/2-1/a-1/(1+a))/2; %准确值fprintf('St[%d]=%10.9f\a',a,St)分别计算246101010S ,S ,S 值为:Sb[100]=0.740049481Ss[100]=0.740049541St[100]=0.740049505从大到小S 计算有效位数为6位,从小到大为7位;Sb[10000]=0.749852121Ss[10000]=0.749899983St[10000]=0.749900005从大到小S 计算有效位数为3位,从小到大为3位;Sb[1000000]=0.749852121Ss[1000000]=0.749999046St[1000000]=0.749999000从大到小S 计算有效位数为3位,从小到大为7位;心得:按从小到大计算的有效数字要多与按从大到小计算所得。
数值分析上机样题
2003---2004 学年 第二学期 (共1页)踏实学习,弘扬正气;诚信做人,诚实考试;作弊可耻,后果自负。
课程名称 数值分析(上机部分) 使用专业研一A 卷2004年6月 时间:60分钟 每题20分班级 学号 机号 姓名考试规则:邻座试卷不同,开卷,解答全部写在考卷上;开考后不允许用软盘,也不允许上网.注:数据结果均精确到小数点后第四位;要求写出M 函数(如果需要)、MATLAB 命令和计算结果.1、在一天24小时内,从零点开始每间隔2小时测得的环境温度数据分别为 12,9,9,10,18 ,24,28,27,25,20,18,15,13, 用三次样条插值推测中午13点时的温度.(采用系统默认的边界条件) 命令:>> x=0:2:24;y=[12 9 9 10 18 24 28 27 25 20 18 15 13];>> interp1(x,y,13,'spline')答案:13点时的温度为 27.8725或>> pp=spline(x,y);>> ppval(pp,13)13点时的温度为 27.87252、利用教材程序nagauss2.m (P. 20)求解线性方程组⎪⎩⎪⎨⎧=++=++=++11163185221482321321321x x x x x x x x x .命令:>> a=[2 8 14;2 5 8 ;3 6 11];b=[2 1 1]';>> nagauss2(a,b)答案:0.33330.33330x -⎛⎫ ⎪= ⎪ ⎪⎝⎭3.求积分dx x e ⎰5)log(log 的近似值.命令:>> x=linspace(exp(1),5,100);>> y=log(log(x));>> trapz(x,y)答案:积分值为 0.63994、曲线x x y 32-=与2-=x e y 在点(0.2,-0.6)附近有交点,求其交点横坐标的近似值.命令:>> fzero('x^2-3*x-exp(x)+2',[0 2])答案: 横坐标为 0.25755、设30,,1,0,51 0 =+=⎰n dx x x y n n 利用关系式n y y n n 151=+-,可得如下算法:⎪⎩⎪⎨⎧=-=-=-30,,2,1,515ln 6ln 10 n y n y y n n ,试依此算法编程计算3010,,,y y y (写出302928,,y y y 即可),并说明一下此算法是否稳定. 程序:testa.mclear;format long;a=zeros(1,31);a(1)=log(6)-log(5);for n=2:31a(n)=1/(n-1)-5*a(n-1); enda命令:testa答案:28y =1841.9759 29y =-9209.8450 30y =46049.2582 算法不稳定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值分析上机题目
1、 分别用不动点迭代与Newton 法求解方程250x x e -+=的正根与负根。
2、 Use each of the following methods to find a solution in [0.1,1] accurate to within 10^-4 for
4326005502002010x x x x -+--=
a. Bisection method
b. Newton’s method
c. Secant method
d. Method of False Position
e. Muller’s method
3、 应用Newton 法求f (x )的零点,e=10^-6,这里f (x )=x-sin (x )。
再用求重根的两种方法求f (x )的零点。
4、 应用Newton 法求f (x )的零点,e=10^-6,f(x)=x-sin(x) 再用Steffensen’s method 加速其收敛。
5、 用Neville’s 迭代差值算法,对于函数2
1
(),11125f x x x =
-≤≤+进行lagrange
插值。
取不同的等分数n=5,10,将区间[-1,1]n 等分,取等距节点。
把f(x)和插值多项式的曲线画在同一张图上进行比较。
6、 画狗的轮廓图
7、 Use Romberg integration to compute the following approximations to
⎰
a 、
Determine R1,1,R2,1,R3,1,R4,1and R5,1,and use these approximations to predict the value of the integral.
b 、 Determine R2,2 ,R3,3 ,R4,4 ,and R5,5,and modify your prediction.
c 、
Determine R6,1 ,R6,2 ,R6,3 ,R6,4 ,R6,5 and R6,6,and modify your prediction.
d 、 Determin
e R7,7 ,R8,8 ,R9,9 ,and R10,10,and make a final prediction.
e 、
Explain why this integral causes difficulty with Romberg integration and how it can be reformulated to more easily determine an accurate approximation.
8、 分别用1)Euler method 2)Modified Euler Method 3)Runge-Kutta Order Four
求解P264 :7a 并计算其误差; Given the initial-value problem :
=-1y y t '++05t ≤≤(0)1y =
With exact solution
-t
()y t e t =+; A: Approximate y(5) with h=0.2 , h=0.1, h=0.05.
9、 课本P279 Example 4:
For the problem y’=y -t^2+1 , 0<=t<=2 , y(0)=0.5, Euler’s Method with h=0.025, the
Modified Euler Method with h=0.05,and the Runge-Kutta fourth-order method with h=0.1 are compared at the common mesh points of these methods 0.1, 0.2, 0.3, 0.4 and 0.5 .Each of these techniques requires 20 functional evaluations to determine the values listed in Table 5.8 to approximate y(0.5). In this example , the fourth-order method is clearly superior. 10、 P 322 Exercise 5.9
1 Use the Runge-Kutta method for systems to approximate the solutions of the following systems of first-order differential equations, and compare the results to the actual solutions. A :
221
12222
1232(21)4(24)t t u u u t e u u u t t e '=+-+'=+++- 01t ≤≤1(0)1u =2(0)1u =0.2h =
actual solutions
521()(1/3)(1/3)t t t u t e e e -=-+ 5222()(1/3)(2/3)t t t u t e e t e -=++
11、 P 322 Exercise 5.9
1 Use the Runge-Kutta method for Systems Algorithm to approximate the solutions of the following higher-order differential equations, and compare the results to the actual solutions. A:
2t y y y te t ''-+=-01t ≤≤(0)(0)0y y '==0.1h =
actual solutions 3()(1/6)22t t t
y t t e te e t =-+--
end
12、 P 368Exercise 6.2
第一问:
Use Gaussian elimination and three-digit chopping arithmetic to solve the following linear systems, and compare the approximations to the actual solution.
E:
1234123423412341.19 2.11100 1.12
14.20.12212.2 3.4410099.9 2.1515.30.1113.1 4.16
x x x x x x x x x x x x x x x +-+=-+-=-+=+--=
Actual solution x1=0.17682530 x2=0.01269269 x3=-0.02065405 x4=-1.18260870
第二问:
Repeat Exercise 6 using Gaussian elimination with partial pivoting. 第三问:
Repeat Exericise 5 using Gaussian elimination with scaled partial pivoting.
13、 P411 7:
Let A be the 10*10 tridiagonal matrix given by a(1,1)=2, a(i,i+1)=a(i,i-1)=-1,for each i=2,……9,anda(1,1)=a(10,10)=2,
a(1,2)=a(10,9)=-1,let b be the ten-dimensional column vector given by
b1=b10=1,and bi=0,for each i=2,3,……,9 Solve Ax=b,using the Crout factorization for tridiagonal systems.
14、
P 453 Exericse 7.3 15
Use all the applicable methods in this section to solve the linear system Ax=b to within 10^(-5) in the
l ∞ norm ,where the entries of A are
2i, when j=i and i=1,2,……,80
j=i+2 and i=1,2,……,78
0.5i, when j=i-2 and i=1,2,……, 80
a (i,j) = 0.25i when j=i+4 and i=1,2,……,76
j=1-4 and i=1,2,……,80
0, otherwise
And those of bi=π ,for each i=1,2, (80)。