《Matlab基础与应用教程答案》由会员分享,可在线阅读,更多相关《Matlab基础与应用教程答案(18页珍藏版)》请在人人文库网上搜索。
1、第1章一、思考题4. ( 1) B=A(2:5,1:2:5)(2) A(7)=(3) A=A+30(4) size(A)( 5) t(find(t=0)=eps(6) t=reshape(x,3,4)(7) abs(matlab)(8) char(93)5. A=97,67,34,10;-78,75,65,5;32,5,-23,-59;0,-12,54,7(1) B=A(1:3,:)C=A(:,1:2)D=A(2:4,3:4)E=B*C(2) A(find(A=50 & A120gz=dj*120+*dj*(h-120);elseif h=1e-5 & k)/size(A)2.h=466,71。
2、5,950,1422,1635; w=,;hh=500,900,1500; ww=interp1(h,w,hh,spline)3.x=linspace(1,10,50);y=log(x);f=polyfit(x,y,5); yy=polyval(f,x); plot(x,y,r-,x,yy,g.) 4.N=64;T=5; t=linspace(0,T,N); x=3*exp(-t); % dt=t(2)-t(1);f=1/dt;X=fft(x);F=X(1:N/2+1); f=f*(0:N/2)/N; plot(f,abs(F),-*)% 求各采样点样本值 x%采样点数采样时间终点给岀N个采样。
3、时间ti(l=1:N)采样周期采样频率 (Hz)计算 x 的快速傅立叶变换 X% F(k)=X(k)(k=1:N/2+1)% 使频率轴 f 从零开始 % 绘制振幅 - 频率图xlabel(Frequency);ylabel(|F(k)|)5.(1)p1=1 2 0 0 7;p2=1 -2;p3=1 0 0 5 1; p12=conv(p1,p2);p=p12+zeros(1,size(p12,2)-size(p3,2),p3; roots(p)(2)A=-1,4,3;2,1,5;0,5,6;Px=polyval(p,A)Pxm=polyvalm(p,A)6.(1) z=fzero(3*x-si。
4、n(x)+1,0)(2) 建立函数文件 function F=myfun(X) x=X(1);y=X(2); F(1)=x*x+y*y-9;F(2)=x+y-1; 在命令窗口中输入以下命令: x=fsolve(myfun,3,0,optimset(Display,off)第6章一、思考题2.fx=i nlin e(1./(1+x.A2);I,n=quad(fx,-100000,100000,1e-3);I,n=quadl(fx,-100000,100000,1e-3);x=-100000:100000;y=1./(1+x.*x);trapz(x,y);3.(1) fx=inline(-2*y+。
5、2*x*x+2*x);t,y=ode23(fx,0,1)(2) fx=inline(y-exp(x)*cos(x);t,y=ode23(fx,0,3,1)二、实验题1.for x=1:3fx=x,xA2,xA3;1,2*x,3*x;0,2,6*x; diff(fx)end2.(1 ) x=0:1;y=x.A10+10.Ax+1./log10(x);dy=diff(y)/;(2) x=0:1;y=log(1+x);dy=diff(y,2)/;plot(x(1:99),dy)3.);(1 ) fx=inline(x.A2.*sqrt(2*x.*x+3)quad(fx,1,5)(2) fx=inli。
6、ne(x./sin(x).A2);quad(fx,pi/4,pi/3)(3) fx=inline(abs(cos(x+y) );dblquad(fx,0,pi,0,pi)(4) syms x y;fx=x*y;int(int(fx,yA2,y+2),-1,2)x的积分区间为【0, 2】时fx=inline( x.*y );dblquad(fx,0,2,-1,2)4.x=:;y=,;trapz(x,y)5.(1)yp=i nlin e(-+si n( 10*x)*y);t,y=ode23(yp,0,5,1);(2)令x1y, x2y ,x3y,则可写出原方程的状态方程形式:x1x2X2X3cos。
7、 2t1x3cost 5X3X2X1(t 1)23 sin t01 0X10=x200 1X201/ 5cos2tX31 2X3cost3 sint(t 1)2建立函数文件fun cti ony=ztfu n( t,x)b=0;0;cos(t);y=0,1,0;0,0,1;-1/(3+si n( t),-1,5*cos(2*t)/(t+1)A2*x+b;解微分方程组t,y=ode23(ztfu n,0,5,1;0;2);6.建立函数文件fun cti onyy=ztfu n( t,y)yy= y( 2)*y(3);-y(1)* y(3) ;*y(1)*y(2);解微分方程组t,y=ode23(。
8、ztfu n,0,5,0;1;1)第7章一、思考题3.(1 )数值积分fx=i nlin e(exp(x).*(1+exp(x).A2); quad(fx,0,log(2)符号积分f=sym(exp(x)*(1+exp(x)A2);v=in t(f,0,log (2);eval(v)(2 )略二、实验题1.A=sym(1,2,3;x,y, z; 3,2,1)rank(A)inv(A)det(A)2.(1) y=sym(sqrt(x+sqrt(x+sqrt(x);y1=diff(y)y2=diff(y,x,2)(2) syms x y;fxy=si n( xA2*y)*exp(-xA2-y);d。
9、iff(diff(fxy,x),y)3.(1) syms xin t(1/(1+xA4)(2) syms x tin t(-2*x*x+1)/(2*x*x-3*x+1)A2,x,cos(t),exp(2*t)4.syms n xsymsum(1/(2* n+1)/(2*x+1)A(2* n+1), n,0,i nf)symsum(1/(2* n+1)/(2*x+1)A(2* n+1), n, 0,5)5.(1) syms xtaylor(exp(x)+exp(-x)/2,5,0)(2) syms a xtaylor(exp(-5*x)*si n(3*x+pi/3),5,a)6.(1) x=so。
10、lve(sym(xA3+a*x+1=0)(2) x y=solve(sym(sqrt(xA2+yA2)-100=0,3*x+5*y-8=0)y y17. 方程转化为:,严y1 y 1 一符号解y1,y11=dsolve(,Dy=y1,Dy1+y=1-tA2/pi,y(-2)=5,y1(-2)=5,t,)数值解编写函数文件fun cti onyy=ztfu n( t,y)yy=y(2);1-tA2/pi-y(1);在命令窗口输入以下命令t,y=ode45(ztfu n,-2,7,-5;5);t=li nspace(-2,7,49)y2=y8.x,y=dsolve(Dx=3*x+4*y,Dy=-4。
11、*x+3*y,x(0)=0,y(0)=1)第9章二、实验题1.(1 )新建一个 Blank GUI。(2)在窗口上添加一个Static Text 、一个 Edit Text ,一个 Push Bott on,两个 Check Box,组Radio Button。各控件的属性设置如表所示。表界面控件属性控件属性名属性值静态文本框String实验一:编辑框String按钮String设置字体大小单选按钮1Stringred单选按钮2Stringyellow单选按钮3Stringblue单选按钮4StringblackValue复选框1String倾斜复选框2String加粗(3)在按钮的Callb。
12、ack函数中添加以下代码: s=eval(get,Stri ng);set, FontSize ,s);(4) 在复选框1的Callback函数中添加以下代码:if (get(hObject, Value ) = get(hObject, Max)set,FontAngle, italic);elseset,FontAngle, normal);end在复选框2的Callback函数中添加以下代码:if (get(hObject, Value ) = get(hObject, Max)set,FontWeight , bold);elseset,FontAngle, normal);end(5。
13、) 在单选按钮组的SelectionChangeFcn函数中添加以下代码:set, ForegroundColor ,get, string);2.(1 )新建一个 Blank GUI。(2 )用菜单编辑器编辑菜单,各菜单项属性如表表菜单项属性菜单项Label属性值Tag属性值MenuLineLabelmineHelpHelpm_helpLine Menu ItemLine StyleLine StyleminestyleLine WidthLine WidthminewidthLine ColorLine Colorm linecolorHelp Menu ItemAboutAboutm_a。
14、bout(3)绘图。在窗口的 OpeningFcn函数添加以下代码:global h;t=0:6;h=plot(t.*si n(t),t.*cos(t)(4)在Line Style菜单项的Callback函数中添加以下代码:global h;set(h, LineStyle,-.);在 Line Width global h;set(h, Lin eWidth在 Line Color菜单项的Callback函数中添加以下代码:,2);菜单项的Callback函数中添加以下代码:global h;set(h, color , red);在About菜单项的Callback函数中添加以下代码:ms。
15、gbox(Help Item );3.t=0:pi/20:6*pi;a=2;b=3;r=a+b*t;h_draw=polar(t,r,-*h_me nu=uic on textme nu;%?d0 2?卩 ?uimenu(h_menu, Label uimenu(h_menu, Label uimenu(h_menu, Label);%?d0 ? i ?丫2?卩,red , Call,set(h_draw,Color,red););,yellow ,Call , set(h_draw,Color,yellow););,blue ,Call , set(h_draw,Color,blue););。
16、set(h_draw, UIContextMenu ,h_menu);%?! ?Y2? o i ?u ?6d a?卩?ea4.(1 )新建一个 Biank GUI。(2)在窗口上添加三个 Static Text、三个Edit Text, 一个Push Bott on , 个坐标轴对象 Axes。 各控件的属性设置如表所示。表界面控件属性控件属性名属性值Static Texttext1Stringa:text1Stringb:text1Stringn:Edit Textedit1Stringedit2Stringedit3Stringpushbotton1String:绘图Axes1width1。
17、00height25(3)在按钮pushbutton1的Callback函数中添加以下代码: t=0:pi/20:6*pi;a=eval(get, Stri ng ); b=eval(get, Stri ng); n=eval(get, Stri ng );r=a.*cos(b+n.*t);polar,t,r);第10章二、实验题1.建立模型(1) 双击Gain模块,打开Function Block Parameters进行设置。设置完成后,单击模型编辑窗口的Start Simulation按钮,观察曲线。(2) 选择Math Operation 模块库的Slide Gain 模块替代Gain。
18、模块2. 略3.Scope的双输入实现方法:双击Scope模块,打开Scope示波器窗口,单击该窗口工具栏的Parameters 按钮(左数第二个),在打开的对话框的Ge neral选项卡的Numbers of axes:后的编辑框中输入2,然后单击OK按钮返回,即可看到模型中的Scope模块增加了一个输入口4.(1 )先建立如下模型(2)建立子系统。选中除输入输出模块外其他模块,执行Edit 菜单的 Create Subsystem 命令。( 3)封装子系统。选中子系统模块,执行Edit 菜单的 Mask Subsystem 命令。在 Mask Editor 对话框的 Parameters 。
19、选项卡中的 Dialog Parameters 栏内增加三个变量,单击OK按钮返回。5.(1)建立S函数function sys,x0,str,ts=subsection(t,x,u,flag)switch flagcase 0sys,x0,str,ts=mdlInitializeSizes;case 3sys=mdlOutputs(t,x,u);case 1,2,4,9sys=;otherwiseerror( Unhandled Flag , num2str(flag);endfunction sys,x0,str,ts=mdlInitializeSizes()sizes=simsizes;。
20、=0;=0;=1;=1;=1;=1;sys=simsizes(sizes);x0=;str=;ts=-1,0;function sys=mdlOutputs(t,x,u)if u=0 & u=2 & u=5 & u= a & textall(n)#include /* For EXIT_FAILURE, EXIT_SUCCESS */#include #include#includeIII!#defineBUFSIZE 256int main()Engine *ep; mxArray *X = NULL, *Y = NULL;char bufferBUFSIZE+1; double x100 。
21、,y100;int n;for ( n=0;n100;n+) xn=(n+1)/;yn=(n+1)/;if (!(ep = engOpen( 0 ) fprintf(stderr,nCant start MATLAB enginen );return EXIT_FAILURE;X = mxCreateDoubleMatrix(1, 100, mxREAL); memcpy(void *)mxGetPr(X), (void *)x,sizeof (x);Y = mxCreateDoubleMatrix(1, 100, mxREAL); memcpy(void *)mxGetPr(Y), (voi。
22、d *)y,sizeof (y);engPutVariable(ep, X , X);engPutVariable(ep, engEvalString(ep, engEvalString(ep,Y , Y);x y=meshgrid(X,Y); );engEvalString(ep,mesh(x,y,z); );z = x./(1+x.A2+y.A2););printf( Hit return to continuenn );fgetc(stdin); mxDestroyArray(X); mxDestroyArray(Y);engClose(ep);return EXIT_SUCCESS;S。
23、tudio(2) 在MATLA命令窗口输入以下命令编译(假定本机安装的编译器是Microsoft Visual2005)optsfile = matlabroot binwin32mexopts;mex(-f,optsfile,)(3) 编译完成后,运行6.(1)编辑c源程序,代码如下:#include double cfun( double *a, double *b) double n,r;n=*a;r=*b;if (r=0) return 1;else if (n=1) return n;else *b=r-1;return cfun(a,b)*(n-r+1)/r; void mexFu。
24、nction( int nlhs, mxArray *plhs,int nrhs, const mxArray *prhs )double *x,*y,*z;int m,n,i;if (nrhs!=2) mexErrMsgTxt(Two inputs required.); if (nlhs!=1) mexErrMsgTxt(One output required.);for (i=0;i2;i+)m = mxGetM(prhsi);n = mxGetN(prhsi);if ( !mxIsDouble(prhsi) | mxIsComplex(prhsi) |!(m=1 & n=1) ) me。
25、xErrMsgTxt( Input must be a noncomplex scalar double. ); x = mxGetPr(prhs0);y = mxGetPr(prhs1);plhs0 = mxCreateDoubleMatrix(m,n, mxREAL);z = mxGetPr(plhs0);*z=cfun(x,y);(2)在MATLA命令窗口输入命令设置编译器(假定本机安装的编译器是Microsoft VisualStudio 2005 ) mex -setup 按提示选择一种编译器,然后输入命令 mex( 3 )调用函数计算a=exercise11_6,a=exercise11_6,第12章二、实验题1. x,fval=fminbnd(x)+2*x+512/x,1,512)答案:长16m 宽32m 用材64m2.maxZ 70x 120y9x 4y3600(1) 设两种产品的产量为 x 、 y ,建立模型:4x5y20003x10y3000x0y0(2)求解。在MATLA的命令窗口输入“ optimtool ”命令打开优化工具图形用户界面,设置 如下,单击 start 按钮开始求解答案: x=200, y=240。