《数值计算方法》实验报告1SolutionofNonlinearEquationsf(x)=01.实验描述1.P40.1:参照程序2.1求解出单调收敛的不动点。2.P49.1:已知初值,时间和末值,求解汇率。3.P54.3:已知函数求函数在区间内的极值和根。4.P69.1:已知运动方程求解运动时间和距离。2.实验内容1.使用程序2.1求解下面每个函数的不动点(尽肯能多)近似值,答案精确到小数点后12位。同时,构造每个函数的图和直线y=x来显示所有不动点。(a)532()322gxxxx(b)()cos(sin())gxx(c)2()sin(1.5)gxxx(d)cos()()xxgxx2.如果在240个月内每月付款300美元,求解满足全部年金A为500000美元的汇率I的近似值(精确到小数点后10位)。3.一个计算机程序使用点(x0,y0),(x1,y1),(xn,yn)可画出函数y=f(x)的图形,通常还标记出图形的纵向高度,而且必须写出一个子程序来确定函数f在区间[a,b]内的最大值和最小值。(a)构造一个算法寻找值Ymax=maxk{yk}和Ymin=mink{yk}.(b)写一个MATLAB程序寻找函数f(x)在区间[a,b]内根的近似值位置和极值。(c)使用(b)中的程序寻找第1题和第2题中根的位置和极值,并用真实值进行比较。4.设投射方的运动程为/15/15()9600(1)480()2400(1)ttyftetxrte(a)求当撞击地面时经过的时间,精确到小数点后10位。(b)求水平飞行行程,精确到小数点后10位。3.实验结果及分析《数值计算方法》实验报告21.P40.1:算法:(1)输入函数g,p0,tol,max1,令k=2。(2)判断kmax1是否成立,如成立输出结果,如不成立,执行(3)。(3)令p(k)=g(p(k-1)),err=|p(k)-p(k-1)|。(4)判断errtol是否成立,如成立,输出结果,如不成立,令k=k+1,跳转到(2)。startInputg,p0,tol;k=2kmax1Letp(k)=g(p(k-1));err=|p(k)-p(k-1)|errto1outputendoutputYNk=k+1NY《数值计算方法》实验报告3对(a)令532()322gxxxx,简单画出532()322gxxxx与yx的图像,可令x=0,12110tol,max1100.-2-1.5-1-0.500.511.522.5-15-10-5051015202530xg=x.5-3.*x.3-2.*x.2+2y=x图1.532()322gxxxx与yx运行程序后,当输入[k,p,err,P]=fixpt(@g,-1,1e-12,100)输出k=3p=2err=0P=-122通过图形我们知道不动点有3个,X=2是吸引不动点,其余2个为排斥不动点。对(b)令()cos(sin())gxx,简单画出()cos(sin())gxx与yx的图像,可令x=1,12110tol,max1100.《数值计算方法》实验报告4-2-1.5-1-0.500.511.522.5-2-1.5-1-0.500.511.522.5xg=cos(sin(x)y=x图2.()cos(sin())gxx与yx运行程序后,当输入[k,p,err]=fixpt(@g,1,1e-12,100)输出:k=37p=0.768169156736961err=5.226929999935237e-013通过图形我们知道不动点有1个,X=0.768169156736961是吸引不动点。因而函数只有一个吸引不动点对(c)令()2sin(0.15)gxxx,简单画出()2sin(0.15)gxxx与yx的图像,可令x=1,12110tol,max1100《数值计算方法》实验报告5-2-1.5-1-0.500.511.522.5-2-10123456xg=x.2-sin(x+0.15)y=x图3.()2sin(0.15)gxxx与yx运行程序后,当输入[k,p,err]=fixpt(@g,0,1e-12,100)输出k=38p=0.768169156736961err=5.226929999935237e-013运行程序后,当输入[k,p,err]=fixpt(@g,1.5,1e-12,100)输出k=38p=0.768169156736633err=5.176969963827105e-013通过图形我们知道不动点有2个,X=0.768169156736961,X=0.768169156736633是吸引不动点。因而函数有两个吸引迭代点。令(4)令cos()()xxgxx,简单画出cos()()xxgxx与yx的图像,可令x=1,12110tol,max1100。《数值计算方法》实验报告6-2-1.5-1-0.500.511.522.5-25-20-15-10-505101520xx.(x-cos(x))y=x图4.cos()()xxgxx与yx当输入[k,p,err,P]=fixpt(@g,1,1e-12,100)输出k=2p=1err=0P=11通过图形我们知道不动点有2个,X=1是吸引不动点.因而函数只有一个吸引迭代点。《数值计算方法》实验报告72.p49.1算法:(1)输入f,a,b,delta,max1,令k=1。(2)f(a)=feval(f,a);f(b)=feval(f,b);k=1.(3)判断f(a)*f(b)0是否成立,若不成立输出结果,若成立执行步骤(4)。(4)判断kmax1是否成立,若成立输出结果,若不成立执行步骤(5)。(5)令dx=yb*(b-a)/(yb-ya),c=b-x,yc=feval(f,c).(6)判断yc=0是否成立,若成立输出结果,若不成立执行步骤(7)。(7)判断yc*yb0是否成立,若成立,令b=c,yb=yc.若不成立,令a=c,ya=yc.(8)令err=|b-a|.(9)判断errdelta是否成立,若成立,输出结果。若不成立,令k=k+1,执行(4)。《数值计算方法》实验报告8流程图:startInputf,a,b,delta,max1,,f(a)*f(b)0kmax1dx=yb*(b-a)/(b-a)c=b-xyc=feval(f,c)yc=0yc*yb0a=cya=ycb=cyb=ycerr=|b-a|errdeltaoutputendoutputYNYNYNNYYNk=k+1《数值计算方法》实验报告9当输入[c,err,yc]=regula(@f,0.15,0.16,1e-10,100)输出c=0.157539310266284err=-1.257285475730896e-008yc=2.775557561562891e-0173.(a)算法:(1)输入f,a,b,N,令k=1.(2)判断kN+1是否成立,若成立,输出并执行步骤(3);若不成立,令p(k)=feval(f,b*(k-1)/(a*N)),k=k+1,再执行步骤(2)。(3)令m=p(1),k=2.(4)判断kN+1是否成立,若成立,输出并执行步骤(6);若不成立,执行步骤(5)。(5)判断mp(k)是否成立,若成立,m=p(k),执行步骤(4);若不成立,执行步骤(4)。(6)令n=p(1),k=2.(7)判断kN+1是否成立,若成立,输出;若不成立,执行步骤(8)。(8)判断np(k)是否成立,若成立,n=p(k),输出;若不成立,执行步骤(7)。流程图:《数值计算方法》实验报告10startInputf,a,b,Nk=1kN+1p(k)=feval(f,b*(k-1)/(a*N))outputm=p(1),k=2kN+1mp(k)m=p(k)outputn=p(1),k=2kN+1np(k)n=p(k)outputendYNk=k+1YNNYk=k+1YNk=k+1NY《数值计算方法》实验报告11(b)算法:(1)输入f,X,delta.(2)令Y=f(X),n=length(X),m=0,l=0,X(n+1)=X(n),Y(n+1)=Y(n),k=2.(3)判断kn+1是否成立,若成立,输出;若不成立,执行步骤(4)。(4)判断Y(k-1)*Y(k)=0是否成立,若成立,m=m+1,r(m)=(X(k-1)+X(k))/2;若不成立,执行步骤(5)。(5)令s=(Y(k)-Y(k-1))*(Y(k+1)-Y(k))。(6)判断(abs(Y(k))delta)&(s=0)是否成立,若成立,m=m+1,r(m)=X(k);若不成立,执行步骤(7)。(7)判断s=1e-6是否成立,若成立,l=l+1,v(l)=Y(k);若不成立,执行步骤(3).《数值计算方法》实验报告12流程图:startInputf,X,deltaY=f(X),n=length(X),m=0,l=0,X(n+1)=X(n),Y(n+1)=Y(n),k=2kn+1Y(k-1)*Y(k)=0m=m+1,r(m)=(X(k-1)+X(k))/2s=(Y(k)-Y(k-1))*(Y(k+1)-Y(k))(abs(Y(k))delta)&(s=0)m=m+1,r(m)=X(k)s=1e-6l=l+1,v(l)=Y(k)endoutputYNNYNYk=k+1YN《数值计算方法》实验报告13(c)用(b)中程序求第1题输入X=-2:0.0001:2;[r,v]=chao(@k,X,1e-12)输出r=0.0010500000000000.0099500000000000.100050000000000v=1.0e+006*0.000001914704000-0.0001243867040007.558219000000000用程序2.3求得c=0.100000000000003用(b)中程序求的根的位置的近似值中有3个,真实值却只在c=0.100000000000003左右,说明程序(b)计算结果不过精确。用(b)中程序求第2题输入X=-2:0.0001:2;[r,v]=chao(@o,X,1e-12)输出r=-0.847150000000000v=1.0e+004*-0.000890718645719-0.000070851764725-0.000070851725020-0.000070851730976-0.000070851782626-1.027390254389335用程序2.3求得c=-0.847129818131817用(b)中程序求的根的位置的近似值中有1个,与真实值c=-0.847129818131817接近,说明程序(b)计算结果较为精确。《数值计算方法》实验报告144.p69.1算法:(1)输入h,r,p0,p1,delta,max1.令k=1.(2)判断kmax1是否成立,若成立,输出;若不成立,执行(3)。(3)令p2=p1-feval(f,p1)*(p1-p0)/(feval(f,p1)-feval(f,p0)),err1=|p1-p0|,err2=|feval(r,p1)-feval(r,p0)|,p0=p1,p1=p2(4)判断err1delta与err2delta是否成立,若成立,输出;若不成立,令k=k+1,执行步骤(2)。流程图:startInputf,r,p0,p1,deltamax1k=1kmax1P2=p1-feval(f,p1)*(p1-p0)/(feval(h,p1)-feval(h,p0))Err1=|p1-p0|err2=|feval(r,p1)-feval(r,p0)|C=feval(r,p1)p0=p1p1=p2Err2delta&err2deltaoutpu