北科大研究生计算方法作业
- 格式:docx
- 大小:360.14 KB
- 文档页数:21
《计算方法》作业姓名:学号:班级:学院:2018年11月25日3-1试验目的:考察不动点迭代法的局部收敛性试验内容:分别构造方程230xx e -+=和523x 5100+-=x ,至少采用3种迭代法,迭代100次,考察收敛性,改变初值符号,再做迭代。
分析收敛与发散的原因。
(1)迭代原理:若实数p 满足()p g p =,p 称为函数()g x 的一个不动点,迭代()1,0,1,...n n p g p n +==称为不动点迭代,()g x 称为迭代函数。
由不动点方程建立迭代法()1,0,1,...n n p g p n +==,其中0p 称为初值,需要预先给定。
(2)方程230xx e -+=分别对应下列不同形式的不动点方程: 1.1()33==-+x x g x x e 2.2()(3)/2==-x x g x e 3.3()ln(23)==+x g x x取401,10,100-===p Tol N ,按()1,1,2,3n i n p g p i +==迭代,并分析收敛性。
不动点迭代法代码 1.1()33==-+x x g x x efunction [p,k] = fone( p0,max,tol ) k=1; while k<=max p=3*p0+3-exp(p0); if abs(p-p0)<tol break; end k=k+1; p0=p; enddisp(p);disp(k)运行结果:2.2()(3)/2==-x x g x efunction [p,k] = ftwo( p0,max,tol ) k=1; while k<=max p=(exp(p0)-3)/2; if abs(p-p0)<tol break; end k=k+1; p0=p; enddisp(p);disp(k) 运行结果:3.3()ln(23)==+x g x xfunction [p,k] = fthree( p0,max,tol ) k=1;while k<=maxp=log(2*p0+3);if abs(p-p0)<tolbreak;endk=k+1;p0=p;enddisp(p);disp(k)运行结果:(3)方程523x 5100+-=x 分别对应下列不同形式的不动点方程: 1.521()3x 510==++-x g x x x2.2()==x g x 3.52343x 510()1510+-==-+x x g x x x x取401,10,100-===p Tol N ,按()1,1,2,3n i n p g p i +==迭代,并分析收敛性。
《计算方法》2008试题与答案一、填空题(每空2分,共20分)(1) 为了提高数值计算精度, 当正数x 充分大时, 应将)1ln(2--x x 改写为_ln(x -______.(2) 3*x 的相对误差约是*x 的相对误差的_1/3____ 倍(3).设⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=283012251A ,则∞A =__13______.1A =___14_____ (4) 已知()p x 为二次多项式,满足(2)(2)3P f -=-=, (1)(1)1P f -=-=和'(1)'(1)1P f -=-=,则()(2)(2)(2)(1)p x f a x b x x =-+++++,这里 a = -2 ,b = 3 。
(5) 设32()4321f x x x x =+++,则差商[]3 ,2 ,1 ,0f =__4__[]0, 1, 2, 3, 4f =_0_. (6)n 个求积节点的求积公式的代数精确度最高为_21n -_____次.(7) 求解初值问题1)0(),(50'=+-=y x y y 时,若用改进欧拉方法的绝对稳定域中步长h 不超过.0.04二、(10分)用Newton 法求方程2ln =-x x 在区间) ,2(∞内的根, 取03x =, 要求8110k kkx x x -+-<,计算过程中数值保留8位有效数字。
解 此方程在区间(2, )∞内只有一个根s ,而且在区间(2,4)内。
设()ln 2f x x x =--则 '1()1f x x =-, ''21()f x x= Newton 法迭代公式为1ln 2(1ln )11/1k k k k k k k k x x x x x x x x +--+=-=--, (5分)取03x =,得1 3.1479184x =100.049306145x x x -= 2 3.1461934x =2110.00054797894x x x -= 3 3.1461933x =73220.6992577010x x x --=⨯ 4 3.1461932x =843310x x x --< 4 3.1461932s x ≈=。
《计算方法》平时作业(2010-2011学年第一学期)学 院:_________________________ 专 业:_________________________ 姓 名:_________________________ 学 号:_________________________ 联 系 方 式:_________________________机研111班机械工程学院作业(考试前交, 给出证明或计算过程、计算程序及计算结果) 1. 对向量()12Tn x x x x = 定义1211,max ,nk k k nk x x xx x ∞≤≤====∑设A 是n n ⨯矩阵,规定1111max x A Ax ==,1max x A Ax ∞∞∞==,2221max x A Ax ==证明111112max (),max (),.n nkj jk j nj nk k T A a A a A A A λ∞≤≤≤≤=====∑∑列范数行范数是最大特征值证明:1) 证明111||||max||nijj n i A a≤≤==∑1111111111||||max ||max ||||max ||||||max ||nnn nij iiji ij ij j nj nj nj ni i i i AX a x ax a x a ≤≤≤≤≤≤≤≤=====≤≤=∑∑∑∑所以 111||||111||||max ||||max||nijx j ni A Ax a=≤≤==≤∑设 1111max||||,1,0,1,0,||||1,nnijip i ip i ip j ni i aa x a x a x ≤≤====≥=-<=∑∑取若取若则11||n nip i ip i i a x a ===∑∑且。
因此,1111111||||max ||||||max ||n nn nij i ip iip ij j nj ni i i i Ax a x ax a a ≤≤≤≤=====≥==∑∑∑∑即 111||||111||||max ||||max||nijx j ni A Ax a=≤≤==≥∑ 则 111||||m a x ||nij j ni A a ≤≤==∑2)证明11||||max||niji n j A a∞≤≤==∑11111111||||m a x ||m a x ||||m a x ||||||m a x||nnnni j j i j j i j i j i ni ni ni nj j j j A X a x a x a x a ∞∞≤≤≤≤≤≤≤≤=====≤≤=∑∑∑∑ 所以 ||||111||||m a x ||||m a x ||nij x i n j A Ax a ∞∞∞=≤≤==≤∑设 111max||||,1,0,1,0,||||1,nnijpj j pj j pj i nj j aa x a x a x ∞≤≤====≥=-<=∑∑取若取若则11||nn pj j pj j j a a ===∑∑且。
2012级研究生《计算方法》作业姓名:学号:专业:学院:成绩:_________________任课教师:丁军2012年11月18日实验一 牛顿下山法一、 实验目的:1、 掌握牛顿下山法求解方程根的推导原理。
2、理解牛顿下山法的具体算法与相应程序的编写。
二、 实验内容:采用牛顿下山法求方程2x3-5x-17=0在2附近的一个根。
三、 实验实现: 1、 算法:1()()k k k k f x x x f x λ+=-'下山因子从1λ=开始,逐次将λ减半进行试算,直到能使下降条件1()()k k f x f x +<成立为止。
再将得到的1k x +循环求得方程根近似值。
2、 程序代码如下:function [p,k]=NewtonDownHill(f,df,p0) N=2000;Tol=10^(-5);e=10^(-8); for k=1:N lamda=1;p1=p0-lamda*f(p0)/df(p0);while (abs(f(p1)) >= abs(f(p0)) & lamda>e) lamda=lamda/2;p1=p0-lamda*f(p0)/df(p0); endif abs(p1-p0)<Tol break end p0=p1; end ans=p13、 运行结果:四、 实验体会:牛顿下山法可以较快求的方程结果,对于该题,只需要5步。
运用计算机的数值迭代法可以很快求得满足精度要求的结果。
实验二 矩阵的列主元三角分解一、 实验目的:学会矩阵的三角分解,并且能够用MATLAB 编写相关程序,实现矩阵的三角分解,解方程组。
二、 实验内容:⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡2822171310871234567112345611123451111234111112311111121111111764321x x x x x x 用列主元消去法求解方程组(实现PA=LU) 要求输出: (1)计算解X; (2)L,U;(3)正整型数组IP(i),(i=1,···,n) (记录主行信息)。
计算方法作业姓名:学号:专业:学院:成绩:__________________任课教师:卫宏儒2012年11月作业一:1、计算下列向量的1-范数、∞-范数、2-范数。
(1)(12,4,6,2)T x =--(2)(1,3,4)T x =-解:(1)(12,4,6,2)T x =--程序:x=[12,-4,-6,2];norm(x,1)norm(x,inf)norm(x,2)运行结果:得到(12,4,6,2)T x =--的1-范数、∞-范数、2-范数分别为:24、12、14.1421。
(2)(1,3,4)T x =-程序:x=[1,3,4];norm(x,1)norm(x,inf)norm(x,2)运行结果:得到(1,3,4)Tx=-的1-范数、∞-范数、2-范数分别为:8、4、5.0990。
2、计算下列矩阵的行范数、列范数、谱范数、F范数。
(1)311111211A-⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦(2)-0aAa⎡⎤=⎢⎥⎣⎦,a R∈a R∈解:(1)311111211 A-⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦程序:clcx=[3 -1 1;1 1 1;2 1 -1]; norm(x,inf)norm(x,1)norm(x,2)norm(x,'fro')运行结果:(2)0-0a A a ⎡⎤=⎢⎥⎣⎦,a R ∈a R ∈取a=1; 程序:clcx=[0 1;-1 0];norm(x,inf)norm(x,1)norm(x,2) norm(x,'fro')得到:矩阵311111211A -⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦的行范数、列范数、谱范数、F 范数分别为:5、6、3.7888、4.4721;0-0a A a ⎡⎤=⎢⎥⎣⎦,当a=1时,其值分别为:1、1、1、1.4142。
作业二:1、用牛顿迭代法求方程0133=--x x 在20=x 附近的根。
要求:给出程序和运行结果,计算结果保留4位有效数字。
计算方法考试试题答案113.96424004≈,求方程22810x x -+=的两个根,使它们至少具有6位有效数字。
解答:由方程的求根公式得到1,214x =±11427.96424004x =≈;而21140.0357599562427.96424004x ===≈。
2.(10分)给定数据(()f x =,试用二次牛顿插值多项式计算()2.15f 的近似值,并估计误差。
那么,()()()()221.4142140.3492420.043122.10.5347140.525950.0431N x x x x x x=+----=+-最后计算可以得到()()22.152.15 1.466277f N ≈=。
3.用梯形公式、复合梯形公式、辛普森公式计算积分1I =⎰(4n =)。
解:计算得到1.41421====用梯形公式[]211 1.41421 1.20712I -=+≈ 用辛普森公式[]2114 1.22474 1.41421 1.21876I -=+⨯+≈用复合梯形公式[][]111 1.41421 1.11803 1.22474 1.32288 1.218284I =++++≈。
4.(10分)给出一组数据如下表,用最小二乘法求形如bx ae y =的经验公式3212414.38.3 4.78.322.7x y ---解:由bx a y +=ln ln ,可以先做bx c y z +==ln令10=ϕ,x =1ϕ,则51,00==ϕϕ,0,1==ixϕϕ,)34,211==∑i x ϕϕ()5627.11,0==∑iz z ϕ ()9611.2,1==∑i i z x z ϕ 解方程⎪⎪⎭⎫ ⎝⎛=⎪⎪⎭⎫ ⎝⎛⎪⎪⎭⎫⎝⎛9611.25627.1134005b c 得到⎪⎪⎭⎫⎝⎛=⎪⎪⎭⎫ ⎝⎛0870912.031254.2b c 经验公式为xe y 080912.031254.2+=5.(10分)用牛顿法求方程3310x x --=在初始值02x =附近的一个正根,要求3110k k x x -+-<。
计算方法姓名:学号:班级:指导教师:目录作业1 (1)作业2 (5)作业3 (8)作业4 (10)作业5 (14)作业6 (16)作业7 (17)作业11、分别用不动点迭代与Newton 法求解方程 -+=x 2x e 30的正根与负根。
解:(1)不动点迭代a.原理:将 230x x e -+=变型为1()k k x g x +=进行迭代,直到 为止变型后为有两种形式: 和 b.程序:初值为1形式: x=zeros(100,1); tol=1; i=1; x(1)=1;while tol>=10e-6; disp(x(i))x(i+1)=log(2*x(i)+3); tol=abs(x(i+1)-x(i)); i=i+1; enddisp(i-1); 形式:x=zeros(100,1); tol=1; i=1; x(1)=1;while tol>=10e-6; disp(x(i))x(i+1)=(exp(x(i))-3)/2; tol=abs(x(i+1)-x(i)); i=i+1; end disp(i-1);c.运行结果:初值为1(23)1lnk x k x ++=6110k k x x -+-<132k x k e x +-=(23)1ln k x k x ++=132k xk e x +-=迭代次数:11迭代次数:9(2)Nexton法a.原理:令()()1'kk kkf xx xf x+=-得到迭代公式为:()1232kkxkk k xx ex xe+-+=--b.程序:初值为0x=zeros(100,1);tol=1;i=1;x(1)=0;while tol>=10e-6;disp(x(i))x(i+1)=x(i)-((2*x(i)-exp(x(i))+3)/(2-exp(x(i))));tol=abs(x(i+1)-x(i));i=i+1;enddisp(i-1);初值为1x=zeros(100,1);tol=1;i=1;x(1)=1;while tol>=10e-6;disp(x(i))x(i+1)=x(i)-((2*x(i)-exp(x(i))+3)/(2-exp(x(i))));tol=abs(x(i+1)-x(i));i=i+1;enddisp(i-1)a=x(i-1);b=2*a-exp(a)+3;disp(b);c.运行结果:初值为0迭代次数:5初值为1迭代次数:8 -1.6171e -006结果分析:不动点迭代会因为迭代公式选取的不同得出不同的迭代结果,而牛顿法迭代会因为初值选取的不同而得到不同的结果。
牛顿法比不动点迭代法收敛速度快,能较少的迭代达到理想的结果。
2、用Newton 法求解方程-x sinx 0=的根.再用Steffensen’s method 加速其收敛。
解: (1)Newton 法 a.原理:令()()1'k k k k f x x x f x +=-得到迭代公式为:1sin 1cos k kk k k x x x x x +-=-- b.程序:x=zeros(100,1); tol=1; i=1; x(1)=1;while tol>=10e-4; disp(x(i))x(i+1)=x(i)-((x(i)-sin(x(i)))/(1-cos(x(i)))); tol=abs(x(i+1)-x(i)); i=i+1; enddisp(i-1) a=x(i-1); b=a-sin(a); disp(b);迭代次数:161.8120e-009(2)Steffensen’s method加速a.原理:Steffensen加速是Aitken加速与不动点迭代的结合b.程序:p0=5;N=20;tol=10e-6;n=0;p(1)=p0;while n<=Nfor k=1:2p(k+1)=p(k)-((p(k)-sin(p(k)))/(1-cos(p(k))));endp1=p(1)-(p(2)-p(1))^2/(p(3)-2*p(2)+p(1));f0=p1-sin(p1);if abs(f0)<tolbreakendn=n+1;p(1)=p1;enddisp(p1);disp(n)c.运行结果:-3.213248067584773e-004迭代次数:2结果分析:Steffensen加速极大的改善了原迭代的收敛性质。
用牛顿迭代16次,使用Steffensen加速后,仅需迭代2次即得到满足要求的迭代结果。
作业21、分别用Jacobi 、Seidel 、Sor(w=1.1,1.2,1.3,1.4,1.5)方法求解方程组x =A b ,这里1010121111211112A ⨯-⎡⎤⎢⎥-⎢⎥=⎢⎥⎢⎥-⎣⎦,10111b ⨯-⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥-⎣⎦[]000TX =;510e -=解:(1)Jacobi 迭代a.原理:Jacobi 迭代方程:()11()()11,11,2,,0,1,i nk k k i i ij j ij j j j i x b a x a x i n k aii -+==+⎛⎫=--== ⎪⎝⎭∑∑b.程序:A=ones(10); for i=1:10; A(i,i)=-12; endb=ones(10,1); B=-1*b;X0=zeros(10,1); Tol=10^-6; N=1000; X=X0;for K=1:Nfor i=1:10X(i)=(B(i)-A(i,:)*X0)/A(i,i)+X0(i); if norm(X-X0)<Tol disp(X);disp(K); return; end end X0=X; enddisp('发散') c.运行结果:迭代次数:41(2)Seidel 迭代 a.原理:seidel 迭代方程:()11(1)()11,11,2,,0,1,i nk k k i i ij j ij j j j i x b a x a x i n k aii -++==+⎛⎫=--== ⎪⎝⎭∑∑b.程序:A=ones(10); for i=1:10; A(i,i)=-12; endb=ones(10,1); B=-1*b;X0=zeros(10,1); Tol=10^-6; N=1000; X=X0;for K=1:N; for i=1:10X(i)=(B(i)-A(i,:)*X)/A(i,i)+X(i); if norm(X-X0)<Tol disp(X);disp(K); return end end X0=X; enddisp('发散') c.运行结果:迭代次数:24(3)Sor 迭代 a.原理:sor 迭代方程:()11()(1)()11,(1)1,2,,0,1,i nk k k k iii ij j ij i j j i w x w xb a x a x i n k aii -++==+⎛⎫=-+--== ⎪⎝⎭∑∑b.程序:A=ones(10); for i=1:10; A(i,i)=-12; endb=ones(10,1);B=-1*b;X0=zeros(10,1);w=1.1;Tol=10^-6;N=1000;X=X0;for K=1:N;for i=1:10X(i)=w*(B(i)-A(i,:)*X)/A(i,i)+X(i);if norm(X-X0)<Toldisp(X);disp(K);returnendendX0=X;enddisp('发散')c.运行结果:迭代次数:19结果分析:对比三种迭代方法的结果和迭代次数,初步得出结论:若Jacobi迭代法和Gauss-Seidel迭代法都收敛时,Gauss-Seidel迭代法比用于Jacobi迭代法求解收敛速度快。
应用Sor时,选取合适的松弛因子是很关键的,从解该方程组程序及结果对照表中可以看出,松弛因子w的选取,可以影响其收敛速度。
作业31、用Newton 法与最速下降法求方程组222220x y x y+-==在(0.8,0.7)附近的根。
解:(1)Newton 法a.原理:由题目所给方程组可以得到2222224(),'()21x y x y F x F x x x y ⎛⎫+-⎛⎫== ⎪ ⎪ ⎪--⎝⎭⎝⎭ 取初始向量()0(0.8,0.7)T x =,应用牛顿迭代法()()()()()()1(1)()'(,)(,)0,1,2k k k k k k k k F x y z F x y k x x z y y ++⎧=-⎪=⎛⎫⎛⎫⎨=+ ⎪ ⎪⎪⎝⎭⎝⎭⎩b.程序:x0=[0.8;0.7]; Tol=10^-6; N=1000; for K=1:NF=[x0(1)^2+2*x0(2)^2-2;x0(1)^2-x0(2)]; dF=[2*x0(1),4*x0(2);2*x0(1),-1]; y=-dF\F; x=x0+y;if norm(y)<Toldisp(x);disp(K); return; end x0=x; enddisp('发散') c.运行结果:x=[0.8836;0.7808] 迭代次数:4(2)最速下降法a.原理:由原方程组构造一个模函数 ()2212()()x f x f x φ=+其中()()2221222,f x x y f x x y =+-=-b.程序:function h=h(t) X=[0.8; 0.7];dF=[2*(X(1)^2+2*X(2)^2-2)*2*X(1)+2*(X(1)^2-X(2))*2*X(1);2*(X(1)^2+2*X(2)^2-2)*4*X(2)+2*(X(1)^2-X(2))*(-1)];X1=X-t*dF;h=(X1(1)^2+2*X1(2)^2-2)^2+(X1(1)^2-X1(2))^2;X0=[0.8;0.7];Tol=10^-6;N=1000; for K=1:NF=(X0(1)^2+2*X0(2)^2-2)^2+(X0(1)^2-X0(2))^2;dF=[2*(X0(1)^2+2*X0(2)^2-2)*2*X0(1)+2*(X0(1)^2-X0(2))*2*X0(1);2*(X0(1)^2+2*X0(2)^2-2)*4*X0(2)+2*(X0(1)^2-X0(2))*(-1)];U=fminbnd('h',0,100); X0=X0-U*dF; if F<Toldisp(X0);disp(K); return; end end c.运行结果:x=[0.8834;0.7809] 迭代次数:11结果分析:最速下降法计算简便,但其收敛速度是线性收敛,不如牛顿法快,它的优点是对任意初值(0)x 都收敛,最速下降法非常可靠。