资源描述:
《matlab课后习题答案第四章.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章数值运算习题4及解答1根据题给的模拟实际测量数据的一组和试用数值差分diff或数值梯度gradient指令计算,然后把和曲线绘制在同一张图上,观察数值求导的后果。(模拟数据从prob_data401.mat获得)〖目的〗l强调:要非常慎用数值导数计算。l练习mat数据文件中数据的获取。l实验数据求导的后果l把两条曲线绘制在同一图上的一种方法。〖解答〗(1)从数据文件获得数据的指令假如prob_data401.mat文件在当前目录或搜索路径上clearloadprob_data401.mat(2)用diff求导的指令dt
2、=t(2)-t(1);yc=diff(y)/dt;%注意yc的长度将比y短1plot(t,y,'b',t(2:end),yc,'r')gridon(3)用gradent求导的指令(图形与上相似)dt=t(2)-t(1);yc=gradient(y)/dt;plot(t,y,'b',t,yc,'r')gridon〖说明〗l不到万不得已,不要进行数值求导。l假若一定要计算数值导数,自变量增量dt要取得比原有数据相对误差高1、2个量级以上。l求导会使数据中原有的噪声放大。1采用数值计算方法,画出在区间曲线,并计算。〖提示〗l指定区
3、间内的积分函数可用cumtrapz指令给出。l在计算要求不太高的地方可用find指令算得。〖目的〗l指定区间内的积分函数的数值计算法和cumtrapz指令。lfind指令的应用。〖解答〗dt=1e-4;t=0:dt:10;t=t+(t==0)*eps;f=sin(t)./t;s=cumtrapz(f)*dt;plot(t,s,'LineWidth',3)ii=find(t==4.5);s45=s(ii)s45=1.65412求函数的数值积分,并请采用符号计算尝试复算。〖提示〗l数值积分均可尝试。l符号积分的局限性。〖目的〗l
4、符号积分的局限性。〖解答〗dx=pi/2000;x=0:dx:pi;s=trapz(exp(sin(x).^3))*dxs=5.1370符号复算的尝试symsxf=exp(sin(x)^3);ss=int(f,x,0,pi)Warning:Explicitintegralcouldnotbefound.>Insym.intat58ss=int(exp(sin(x)^3),x=0..pi)1用quad求取的数值积分,并保证积分的绝对精度为。〖目的〗lquadl,精度可控,计算较快。l近似积分指令trapz获得高精度积分的内存和
5、时间代价较高。〖解答〗%精度可控的数值积分fx=@(x)exp(-abs(x)).*abs(sin(x));formatlongsq=quadl(fx,-10*pi,1.7*pi,1e-7)sq=1.08784993815498%近似积分算法x=linspace(-10*pi,1.7*pi,1e7);dx=x(2)-x(1);st=trapz(exp(-abs(x)).*abs(sin(x)))*dxst=1.08784949973430%符号积分算法y='exp(-abs(x))*abs(sin(x))'si=vpa(in
6、t(y,-10*pi,1.7*pi),16)y=exp(-abs(x))*abs(sin(x))si=1.0878494994129111求函数在区间中的最小值点。〖目的〗l理解极值概念的邻域性。l如何求最小值。l学习运用作图法求极值或最小值。l感受符号法的局限性。〖解答〗(1)采用fminbnd找极小值点在指令窗中多次运行以下指令,观察在不同数目子区间分割下,进行的极小值搜索。然后从一系列极小值点中,确定最小值点。clearft=@(t)sin(5*t).^2.*exp(0.06*t.*t)+1.8*abs(t+0.5)-
7、1.5*t.*cos(2*t);disp('计算中,把[-5,5]分成若干搜索子区间。')N=input('请输入子区间数N,注意使N>=1?');%该指令只能在指令窗中运行tt=linspace(-5,5,N+1);fork=1:N[tmin(k),fobj(k)]=fminbnd(ft,tt(k),tt(k+1));end[fobj,ii]=sort(fobj);%将目标值由小到大排列tmin=tmin(ii);%使极小值点做与目标值相应的重新排列fobj,tmin(2)最后确定的最小值点在的不同分割下,经观察,最后确定
8、出最小值点是-1.28498111480531相应目标值是-0.18604801006545(3)采用作图法近似确定最小值点(另一方法)(A)在指令窗中运行以下指令:clearft=@(t)sin(5*t).^2.*exp(0.06*t.*t)+1.8*abs(t+0.5)-1.5*t.*