1、实验2非线性方程fx0的解法Solution of Nonlinear Equations f(x)=0 1.实验描述1:参照程序求解出单调收敛的不动点。2:已知初值,时间和末值,求解汇率。3. :已知函数求函数在区间内的极值和根。4. :已知运动方程求解运动时间和距离。2.实验内容1使用程序求解下面每个函数的不动点(尽肯能多)近似值,答案精确到小数点后12位。同时,构造每个函数的图和直线y=x来显示所有不动点。(a)(b)(c)(d)2如果在240个月内每月付款300美元,求解满足全部年金A为500000美元的汇率I的近似值(精确到小数点后10位)。3.一个计算机程序使用点(x0,y0),(
2、x1,y1),(xn,yn)可画出函数y=f(x)的图形,通常还标记出图形的纵向高度,而且必须写出一个子程序来确定函数f在区间a,b内的最大值和最小值。 (a)构造一个算法寻找值Ymax=maxkyk和Ymin=minkyk. (b)写一个MATLAB程序寻找函数f(x)在区间a,b内根的近似值位置和极值。 (c)使用(b)中的程序寻找第1题和第2题中根的位置和极值,并用真实值进行比较。4.设投射方的运动程为 (a)求当撞击地面时经过的时间,精确到小数点后10位。(b)求水平飞行行程,精确到小数点后10位。3.实验结果及分析1. : 算法:(1)输入函数g,p0,tol,max1,令k=2。
3、(2)判断kmax1是否成立,如成立输出结果,如不成立,执行(3)。 (3)令p(k)=g(p(k-1),err=|p(k)-p(k-1)|。 (4)判断err0是否成立,若不成立输出结果,若成立执行步骤(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)判断errN+1是否成立,若
4、成立,输出并执行步骤(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)。流程图: (b)算法:(1)输入f,X,delta. (2)令Y=f(X),
5、 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 X=-2:2; r,v=chao(k,X,1e-12)输出r = v = +006 *
6、 用程序求得c = 用(b)中程序求的根的位置的近似值中有3个,真实值却只在c = 左右,说明程序(b)计算结果不过精确。用(b)中程序求第2题输入 X=-2:2; r,v=chao(o,X,1e-12)输出r =v =+004 * 用程序求得c =用(b)中程序求的根的位置的近似值中有1个,与真实值c =接近,说明程序(b)计算结果较为精确。算法:(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=
7、|p1-p0|,err2=|feval(r,p1)-feval(r,p0)|,p0=p1,p1=p2(4) 判断err1delta与err2delta是否成立,若成立,输出;若不成立,令k=k+1,执行步骤(2)。流程图:输入p1,err1,err2,k,c=secant(h,r,9,1e-10,100)输出p1 = err1 =err2 =k = 6c = +0034.结论1.采用的不动点迭代法,只能计算出吸引不动点,不能算出排斥迭代点。 2.计算得所求的利率为。3. 用(b)中程序求的根的位置的近似值中有合理的,也有不合理的。4. 计算得投射体撞击地面经过的时间p1 = 飞行行程c = +
8、003附件(代码):1.(a) %plot the figure of g=x.5-3.*x.3-2.*x.2+2 with y=xx=-2:;y=x;g=x.5-3.*x.3-2.*x.2+2;plot(x,g,x,y)xlabel(x);ylabel(g=x.5-3.*x.3-2.*x.2+2 y=x);function b=g(x)b=x5-3*x3-2*x2+2;%definite function g(x)(b) % plot the figure of cos(sin(x) with y=xx=-2:;y=x;g=cos(sin(x);plot(x,g,x,y)xlabel(x);
9、ylabel(cos(sin(x) y=x);%definite function g(x)function b=g(x)b=cos(sin(x);(c) % plot the figure of g=x.2-sin(x+ with y=x x=-2:;y=x;g=x.2-sin(x+;plot(x,g,x,y)xlabel(x);ylabel(g=x.2-sin(x+ y=x);%definite function g(x)function b=g(x)b=x.2-sin(x+;(d) plot the figure of x.(x-cos(x) with y=xx=-2:;y=x;g=x.
10、(x-cos(x);plot(x,g,x,y)xlabel(x);ylabel(x.(x-cos(x) y=x);%definite function g(x)function b=g(x)b=x.(x-cos(x);function k,p,err,P=fixpt(g,p0,tol,max1)%input-g is iteratin function input as string g% -p0 is initial guess for the fixed point% -tol is the tolerance% -max1 is the maximum number of iterati
11、ons%output-k is the number of iteratins that were carried out% -p is approximation to the fixed point% -err is the error in the approximation % -P contains the sequencepnP(1)=p0;for k=2:max1 P(k)=feval(g,P(k-1); err=abs(P(k)-P(k-1); relerr=err/(abs(P(k)+eps); p=P(k); if (errtol)|(relerr0 disp(ya,yb
12、are not suitable ) returnend for k=1:max1 dx=yb*(b-a)/(yb-ya); c=b-dx; yc=feval(f,c); if yc=0,break; elseif yc*yb0 a=c;ya=yc; else b=c;yb=yc; end err=abs(b-a); if errdelta break,endend3%definite k(x)function y=k(x)y=1000000.*x.3-111000.*x.2+1110.*x-1; function r,v=chao(f,X,delta)%input-f is the obje
13、ct function % -X is the vector of abscissas% -delta is the tolerance %output-r is the vector of approximate roots % -v is the vector of df approximate rootsY=f(X);n=length(X);m=0;l=0;X(n+1)=X(n);Y(n+1)=Y(n);for k=2:n if Y(k-1)*Y(k)=0 m=m+1; r(m)=(X(k-1)+X(k)/2; end s=(Y(k)-Y(k-1)*(Y(k+1)-Y(k); if (a
14、bs(Y(k)delta)&(s=0) m=m+1; r(m)=X(k); end if s=1e-6 l=l+1; v(l)=Y(k); endend%definite function o(x)function y=o(x)y=5.*x.10-38.*x.9+21.*x.8-5.*pi.*x.6-3.*pi.*x.5-5.*x.2+8.*x-3;function r,v=chao(f,X,delta)%input-f is the object function % -X is the vector of abscissas% -delta is the tolerance %output
15、-r is the vector of approximate roots % -v is the vector of df approximate rootsY=f(X);n=length(X);m=0;l=0;X(n+1)=X(n);Y(n+1)=Y(n);for k=2:n if Y(k-1)*Y(k)=0 m=m+1; r(m)=(X(k-1)+X(k)/2; end s=(Y(k)-Y(k-1)*(Y(k+1)-Y(k); if (abs(Y(k)delta)&(s=0) m=m+1; r(m)=X(k); end if s=1e-12 l=l+1; v(l)=Y(k); enden
16、d4.%definite function r(t)function x=r(t)x=2400*(1-exp(-t/15);%definite function h(t)function y=h(t)y=9600*(1-exp(-t/15)-480*t;function p1,err1,err2,k,c=secant(h,r,p0,p1,delta,max1)%input-h is the function of altitude inpput as string h% -r is the function of path input as a string r% -p0 and p1 is
17、the initial approximations to a zero% -delta is the tolerance for p1 and y% -max1 is the maximum number of iterations%output-p1 is the secant method approximation to the zero% -err1 is estimate for p1% -err2 is estimate for y% -k is the number of iterations% -y is the function value r(p1) for k=1:max1 p2=p1-feval(h,p1)*(p1-p0)/(feval(h,p1)-feval(h,p0); err1=abs(p1-p0); err2=abs(feval(r,p1)-feval(r,p0); c=feval(r,p1); p0=p1; p1=p2; if err1delta&err2delta,break,endend
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1