• 388.36 KB
  • 2022-04-22 11:24:33 发布

MATLAB基础与应用教程 (蔡旭辉 刘卫国 著) 人民邮电出版社 课后答案

  • 21页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'课后答案网:www.hackshp.cn课后答案网您最真诚的朋友www.hackshp.cn网团队竭诚为学生服务,免费提供各门课后答案,不用积分,甚至不用注册,旨在为广大学生提供自主学习的平台!课后答案网:www.hackshp.cn视频教程网:www.efanjy.comPPT课件网:www.ppthouse.com课后答案网www.hackshp.cn若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn第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&A<=100))二、实验题1.x=-74/180*pi;y=-27/180*pi;sin(x*x+y*y)/sqrt(tan(abs(x+y)))+pi2.a=-3.0:0.1:3.0;exp(-0.3*a).*sin(a+0.3)3.x=[2,4;-0.45,5];log(x+sqrt(1+x.*x))/24.A=[3,54,2;34,-45,7;87,90,15];B=[1,-2,67;2,8,74;9,3,0];(1)A*Bans=12943241977-407-105240259112489A.*Bans=3-10813468-3605187832700(2)A^3课后答案网ans=-28917240246-4368137883-259101www.hackshp.cn2766917133325250438673A.^3ans=27157464839304-911253436585037290003375(3)A/Bans=-5.88455.3549-0.20286.3554-5.65964.3293-6.63256.20789.0241B/Aans=30.285519.2643-8.5614若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn33.439421.1547-9.3974-0.7443-0.39380.2830(4)[A,B]ans=35421-26734-4572874879015930[A([1,3],:);B^2]ans=3542879015600183-816842827261568255.a=1+2i;b=3+4i;c=exp(pi*i/6)c=0.8660+0.5000ic+a*b/(a+b)ans=1.6353+1.8462i第2章一、思考题3.s=0;forn=0:63s=s+2^n;enddisp(s)n=0:63;s=sum(2.^n)二、实验题1.x=input("输入一个四位整数:");y=[fix(x/1000),mod(fix(x/100),10),mod(fix(x/10),10),mod(x,10)]z=mod((y+7),10)课后答案网x=z(3)*1000+z(4)*100+z(1)*10+z(2)2.gh=input("输入工号");h=input("输入工时");www.hackshp.cndj=84;ifh>120gz=dj*120+1.15*dj*(h-120);elseifh<60gz=dj*h-700;elsegz=dj*h;endformatbank;display([gh,gz])3.循环结构n=input("inputn:");s=0;若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cnfork=1:ns=s+1/k^2;enddisplay(sqrt(s*6))向量运算n=input("inputn:");k=1:n;display(sqrt(sum(1./k.^2)*6))4.y=0;k=0;whiley<3k=k+1;y=y+1/(2*k-1);enddisplay([k-1,y-1/(2*k-1)])5.x0=0;x=1;k=0;a=input("a=");b=input("b=");whileabs(x-x0)>=1e-5&&k<500x0=x;x=a/(b+x0);k=k+1;enddisplay([k,x]);display([(-b+sqrt(b^2+4*a))/2,(-b-sqrt(b^2+4*a))/2]);6.y=fun(40)/(fun(30)+fun(20))(1)函数文件fun.mfunctionf=fun(n)f=n+log(n^2+5);(2)函数文件fun.mfunctionf=fun(n)a=1:n;f=sum(a.*(a+1));第3章课后答案网一、思考题4.t=0:0.01:1.5;y=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3);www.hackshp.cn5.x=-10:0.01:10;y=linspace(-6,6,size(x,2))z=x.^3+3*x.*y.^2;plot3(x,y,z)6.x=100:100:400;y=100:100:400;z=[636,697,624,478;698,712,630,478;680,674,598,412;662,626,552,334];[X,Y]=meshgrid(x,y);mesh(X,Y,z)二、实验题1.(1)x=-10:0.01:10;若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cnplot(x,x-x.^3/3/2)(2)plot(x,exp(-x.*x/2)/2/pi)(3)x=-8:0.01:8;plot(x,sqrt((64-x.*x)/2))(4)t=0:pi/100:6*pi;plot(t.*sin(t),t.*cos(t))2.(1)x1=linspace(0,1,100);y1=2*x1-0.5;t=linspace(0,pi,100);x=sin(3*t).*cos(t);y=sin(3*t).*sin(t);plot(x1,y1,"r-",x,y,"b:");text(0.4,1,"y=2x-0.5");text(-0.4,0.5,"x=sin(3t)cos(t)");text(-0.4,0.3,"y=sin(3t)sin(t)");(2)subplot(1,2,1);scatter(x1,y1,10)title("y=2x-0.5");subplot(1,2,2);scatter(x,y,10)3.subplot(1,21);x=1:1:100;y=sin(1./x);plot(x,y)subplot(1,2,2);fplot("sin(1/x)",[1,100])4.subplot(2,2,1);bar(t,y);subplot(2,2,2);stairs(t,y);subplot(2,2,3);stem(t,y)subplot(2,2,4);semilogy(t,y);5.课后答案网theta=linspace(-pi,pi,100);ro=5.*cos(theta)+4;polar(theta,ro);fi=linspace(0,2*pi,100);a=1www.hackshp.cnr=a.*(1+cos(fi));polar(fi,r);6.t=0:pi/20:2*pi;x=exp(-t./20).*cos(t);y=exp(-t./20).*sin(t);z=t;plot3(x,y,z);t=0:0.01:1;x=t;y=t.^2;z=t.^3;plot3(x,y,z);7.x=-30:0.1:0;y=0:0.1:30;[x,y]=meshgrid(x,y);z=10.*sin(sqrt(x.^2+y.^2))./sqrt(1+x.^2+y.^2);meshc(x,y,z);若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn8.x=linspace(-3,3,100);y=linspace(-3,3,100);[xy]=meshgrid(x,y);fxy=-5./(1+x.^2+y.^2);i=find(abs(x)<=0.8&abs(y)<=0.5);fxy(i)=NaN;surf(x,y,fxy)9.u=linspace(1,10,100);v=linspace(-pi,pi,100);[u,v]=meshgrid(u,v);x=3.*u.*sin(v);y=2.*u.*cos(v);z=4*u.^2;x=3*u.*sin(v);y=2*u.*cos(v);z=4*u.^2;surf(x,y,z);shadinginterp;light("position",[1,0,1]);10.t=0:pi/100:2*pi;y=sin(t);comet(t,y)第4章一、思考题5.(1)A=eye(3);(2)C=100+(200-100)*rand(5,6);(3)D=1+sqrt(0.2)*randn(1,500);(4)E=ones(size(A));(5)A=A+30*eye(size(A));(6)B=diag(diag(A))二、实验题1.P=pascal(5);H=hilb(5);Dp=det(P);Dh=det(H);Kp=cond(P);Kh=cond(H);P矩阵的性能更好,因为Kp较小2.A=[1,-1,2,3;0,9,3,3;7,-5,0,2;23,6,8,3]B=[3,pi/2,45;32,-76,sqrt(37);5,72,4.5e-4;exp(2),0,97]课后答案网A1=diag(A);B1=diag(B);A2=triu(A);B2=triu(B);A3=tril(A);B3=tril(B);rA=rank(A);rB=rank(B);www.hackshp.cnnA=norm(A);nb=norm(B);cA=cond(A);cB=cond(B);3.A=[31,1,0;-4,-1,0;4,-8,-2];[V,D]=eig(A);4.A=diag([-1,-1,-1,-1],-1)+diag([-1,-1,-1,-1],1)+diag([2,2,2,2,2])b=[1,0,0,0,0]";x1=inv(A)*b;x2=Ab;[L,U]=lu(A);x3=U(Lb);[Q,R]=qr(a);[Q,R]=qr(A);若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cnx4=R(Qb)R=chol(A);x5=R(R"b)5.B=sparse(A);x1=inv(B)*b;x2=Bb;[L,U]=lu(B);x3=U(Lb);第5章一、思考题3.A=randn(10,5);mean(A)std(A)max(max(A))min(min(A))sum(A,2)sum(sum(A))sort(A,1)sort(A,2,"descend")二、实验题1.A=rand(1,30000);mean(A)std(A)max(A)min(A)size(find(A>0.5))/size(A)2.h=[466,715,950,1422,1635];w=[7.04,4.28,3.40,2.52,2.13];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.www.hackshp.cnN=64;%采样点数T=5;%采样时间终点t=linspace(0,T,N);%给出N个采样时间ti(I=1:N)x=3*exp(-t);%求各采样点样本值xdt=t(2)-t(1);%采样周期f=1/dt;%采样频率(Hz)X=fft(x);%计算x的快速傅立叶变换XF=X(1:N/2+1);%F(k)=X(k)(k=1:N/2+1)f=f*(0:N/2)/N;%使频率轴f从零开始plot(f,abs(F),"-*")%绘制振幅-频率图xlabel("Frequency");ylabel("|F(k)|")5.若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn(1)p1=[12007];p2=[1-2];p3=[10051];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-sin(x)+1",0)(2)建立函数文件myfun.mfunctionF=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=inline("1./(1+x.^2)");[I,n]=quad(fx,-100000,100000,1e-3);[I,n]=quadl(fx,-100000,100000,1e-3);x=-100000:0.01:100000;y=1./(1+x.*x);trapz(x,y);3.(1)fx=inline("-2*y+2*x*x+2*x");[t,y]=ode23(fx,[0,0.5],1)(2)fx=inline("y-exp(x)*cos(x)");[t,y]=ode23(fx,[0,3],1)二、实验题1.forx=1:3fx=[x,x^2,x^3;1,2*x,3*x;0,2,6*x];课后答案网diff(fx)end2.(1)x=0:0.01:1;www.hackshp.cny=x.^10+10.^x+1./log10(x);dy=diff(y)/0.01;(2)x=0:0.01:1;y=log(1+x);dy=diff(y,2)/0.01;plot(x(1:99),dy)3.(1)fx=inline("x.^2.*sqrt(2*x.*x+3)");quad(fx,1,5)(2)fx=inline("x./sin(x).^2");quad(fx,pi/4,pi/3)(3)fx=inline("abs(cos(x+y))");dblquad(fx,0,pi,0,pi)若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn(4)symsxy;fx=x*y;int(int(fx,y^2,y+2),-1,2)x的积分区间为【0,2】时fx=inline("x.*y");dblquad(fx,0,2,-1,2)4.x=0.3:0.2:1.5;y=[0.3895,0.6598,0.9147,1.1611,1.3971,1.6212,1.8325];trapz(x,y)5.(1)yp=inline("-(1.2+sin(10*x))*y");[t,y]=ode23(yp,[0,5],1);(2)令x=y,x=y′,x3=y"",则可写出原方程的状态方程形式:12x′=x12x′=x23cos2t1x′=cost+5x−x−x32321(t+1)3+sint⎡′⎤⎡⎤⎢x1⎥⎢010⎥⎡x1⎤⎡0⎤′⎢⎥⎢⎥⎢⎥--->⎢x⎥=001x+02⎢⎥⎢2⎥⎢⎥⎢′⎥15cos2t⎢x3⎥⎢−−12⎥⎢⎣x3⎥⎦⎢⎣cost⎥⎦⎣⎦⎢⎣3+sint(t+1)⎥⎦建立函数文件ztfun.mfunctiony=ztfun(t,x)b=[0;0;cos(t)];y=[0,1,0;0,0,1;-1/(3+sin(t)),-1,5*cos(2*t)/(t+1)^2]*x+b;解微分方程组[t,y]=ode23(@ztfun,[0,5],[1;0;2]);6.建立函数文件ztfun.mfunctionyy=ztfun(t,y)课后答案网yy=[y(2)*y(3);-y(1)*y(3);-0.51*y(1)*y(2)];解微分方程组[t,y]=ode23(@ztfun,[0,5],[0;1;1])www.hackshp.cn第7章一、思考题3.(1)数值积分fx=inline("exp(x).*(1+exp(x)).^2");quad(fx,0,log(2))符号积分f=sym("exp(x)*(1+exp(x))^2");v=int(f,0,log(2));eval(v)(2)略二、实验题1.若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cnA=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)symsxy;fxy=sin(x^2*y)*exp(-x^2-y);diff(diff(fxy,x),y)3.(1)symsxint(1/(1+x^4))(2)symsxtint((-2*x*x+1)/(2*x*x-3*x+1)^2,x,cos(t),exp(2*t))4.symsnxsymsum(1/(2*n+1)/(2*x+1)^(2*n+1),n,0,inf)symsum(1/(2*n+1)/(2*x+1)^(2*n+1),n,0,5)5.(1)symsxtaylor((exp(x)+exp(-x))/2,5,0)(2)symsaxtaylor(exp(-5*x)*sin(3*x+pi/3),5,a)6.(1)x=solve(sym("x^3+a*x+1=0"))(2)[xy]=solve(sym("sqrt(x^2+y^2)-100=0,3*x+5*y-8=0"))y"=y1⎧27.方程转化为:⎨t⎩y"1+y=1−π符号解[y1,y11]=dsolve("Dy=y1,Dy1+y=1-t^2/pi","y(-2)=5,y1(-2)=5","t")数值解编写函数文件ztfun.m课后答案网functionyy=ztfun(t,y)yy=[y(2);1-t^2/pi-y(1)];在命令窗口输入以下命令www.hackshp.cn[t,y]=ode45(@ztfun,[-2,7],[-5;5]);t=linspace(-2,7,49)y2=y8.[x,y]=dsolve("Dx=3*x+4*y,Dy=-4*x+3*y","x(0)=0,y(0)=1")若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn第9章二、实验题1.(1)新建一个BlankGUI。(2)在窗口上添加一个StaticText、一个EditText,一个PushBotton,两个CheckBox,一组RadioButton。各控件的属性设置如表9.1所示。表9.1界面控件属性控件属性名属性值静态文本框String实验一:编辑框String按钮String设置字体大小单选按钮1Stringred单选按钮2Stringyellow单选按钮3StringblueStringblack单选按钮4Value1.0复选框1String倾斜复选框2String加粗(3)在按钮的Callback函数中添加以下代码:s=eval(get(handles.edit1,"String"));set(handles.text1,"FontSize",s);(4)在复选框1的Callback函数中添加以下代码:if(get(hObject,"Value")==get(hObject,"Max"))set(handles.text1,"FontAngle","italic");elseset(handles.text1,"FontAngle","normal");end在复选框2的Callback函数中添加以下代码:if(get(hObject,"Value")==get(hObject,"Max"))set(handles.text1,课后答案网"FontWeight","bold");elseset(handles.text1,"FontAngle","normal");endwww.hackshp.cn(5)在单选按钮组的SelectionChangeFcn函数中添加以下代码:set(handles.text1,"ForegroundColor",get(eventdata.NewValue,"string"));2.(1)新建一个BlankGUI。(2)用菜单编辑器编辑菜单,各菜单项属性如表9.2.表9.2菜单项属性菜单项Label属性值Tag属性值LineLabelm_lineMenuHelpHelpm_helpLineStyleLineStylem_linestyleLineMenuItemLineWidthLineWidthm_linewidth若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cnLineColorLineColormlinecolorHelpMenuItemAboutAboutm_about(3)绘图。在窗口的OpeningFcn函数添加以下代码:globalh;t=0:0.01:6;h=plot(t.*sin(t),t.*cos(t))(4)在LineStyle菜单项的Callback函数中添加以下代码:globalh;set(h,"LineStyle","-.");在LineWidth菜单项的Callback函数中添加以下代码:globalh;set(h,"LineWidth",2);在LineColor菜单项的Callback函数中添加以下代码:globalh;set(h,"color","red");在About菜单项的Callback函数中添加以下代码:msgbox("HelpItem");3.t=0:pi/20:6*pi;a=2;b=3;r=a+b*t;h_draw=polar(t,r,"-*");h_menu=uicontextmenu;%½¨Á¢¿ì½Ý²Ëµ¥%½¨Á¢²Ëµ¥Ïîuimenu(h_menu,"Label","red","Call","set(h_draw,""Color"",""red"");");uimenu(h_menu,"Label","yellow","Call","set(h_draw,""Color"",""yellow"");");uimenu(h_menu,"Label","blue","Call","set(h_draw,""Color"",""blue"");");set(h_draw,"UIContextMenu",h_menu);%½«¸Ã¿ì½Ý²Ëµ¥ºÍÇúÏ߶ÔÏóÁªÏµÆðÀ´课后答案网4.(1)新建一个BlankGUI。www.hackshp.cn(2)在窗口上添加三个StaticText、三个EditText,一个PushBotton,一个坐标轴对象Axes。各控件的属性设置如表9.3所示。表9.3界面控件属性控件属性名属性值text1Stringa:StaticTexttext1Stringb:text1Stringn:edit1StringEditTextedit2Stringedit3Stringpushbotton1String绘图width100Axes1height25若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn(3)在按钮pushbutton1的Callback函数中添加以下代码:t=0:pi/20:6*pi;a=eval(get(handles.edit1,"String"));b=eval(get(handles.edit2,"String"));n=eval(get(handles.edit3,"String"));r=a.*cos(b+n.*t);polar(handles.axes1,t,r);第1010章二、实验题1.建立模型exercise10_1.mdl(1)双击Gain模块,打开FunctionBlockParameters进行设置。设置完成后,单击模型编辑窗口的StartSimulation按钮,观察曲线。(2)选择MathOperation模块库的SlideGain模块替代Gain模块2.略3.Scope的双输入实现方法:双击Scope模块,打开Scope示波器窗口,单击该窗口工具栏的Parameters按钮(左数第二个),在打开的对话框的General选项卡的Numbersofaxes:后的编辑框中输入2,然后单击OK按钮返回,即可看到模型中的Scope模块增加了一个输入口4.(1)先建立如下模型课后答案网(2)建立子系统。选中除输入输出模块外其他模块,执行Edit菜单的CreateSubsystemwww.hackshp.cn命令。(3)封装子系统。选中子系统模块,执行Edit菜单的MaskSubsystem命令。在MaskEditor对话框的Parameters选项卡中的DialogParameters栏内增加三个变量,单击OK按钮返回。若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn5.(1)建立S函数subsection.mfunction[sys,x0,str,ts]=subsection(t,x,u,flag)switchflagcase0[sys,x0,str,ts]=mdlInitializeSizes;case3sys=mdlOutputs(t,x,u);case{1,2,4,9}sys=[];otherwiseerror("UnhandledFlag",num2str(flag));endfunction[sys,x0,str,ts]=mdlInitializeSizes()sizes=simsizes;sizes.NumContStates=0;sizes.NumDiscStates=0;sizes.NumOutputs=1;课后答案网sizes.NumInputs=1;sizes.DirFeedthrough=1;sizes.NumSampleTimes=1;www.hackshp.cnsys=simsizes(sizes);x0=[];str=[];ts=[-1,0];functionsys=mdlOutputs(t,x,u)ifu>=0&u<2sys=u*u;elseifu>=2&u<5sys=4;elseifu>=5&u<7sys=14-2*u;若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cnelsesys=0;end(2)模块的封装与测试参见教材Page202第1111章二、实验题2.(1)建立EXCEL文件,如气温.xls(2)SpreadsheetLink的安装与启动参见教材P206(3)在Excel中选中需要的数据,单击SpreadsheetLink工具栏的“putmatrix”按钮,指定导入MATLAB工作空间的变量名。(4)单击SpreadsheetLink工具栏中的“wizard”按钮,弹出“MATLABFunctionWizard”对话框。在“Selectacategory”栏内选择matlabpolyfun类后,在“Selectafunction”栏选择spline函数,在“Selectafunctionsignature”栏内中选中spline(x,y,xx),弹出“FunctionArguments”对话框。在对话框中的Inputs栏X右边的展开按钮,然后选中EXCEL表中的第1列数据(除标题行),按Enter键确认,返回“FunctionArguments”对话框。单击对话框Inputs栏右部的下拉条,使变量变为Y,同样的方式设定Y的值,接着设定XX变量的值。然后单击Optionaloutputcell(s)右边的展开按钮,在Excel表中选中输出数据使用的单元格,返回对话框后单击OK按钮,完成计算。3.clearallfid=fopen("exercise9_1.m","r");textall=fscanf(fid,"%c",inf);ch=zeros(26,1);forn=1:size(textall,2)ifisletter(textall(n))iftextall(n)>="a"&&textall(n)<="z"textall(n)=char(textall(n)-(课后答案网"a"-"A"));endm=textall(n)-"A"+1;ch(m)=ch(m)+1;www.hackshp.cnendend4.(1)编辑c源程序exercise11_4.c,代码如下:#include#include/*Forstrcmp()*/#include/*ForEXIT_FAILURE,EXIT_SUCCESS*/#include#include"mat.h"#defineBUFSIZE256#definek139#definek271若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cnintmain(){MATFile*pmat;mxArray*pa1,*pa2,*pa3;doubledata[k1][k2];constchar*file="mat11_4.mat";charstr[BUFSIZE];intstatus;intn1,n2;for(n1=0;n1#include#include#include"engine.h"#defineBUFSIZE256intmain(){Engine*ep;mxArray*X=NULL,*Y=NULL;charbuffer[BUFSIZE+1];doublex[100],y[100];intn;for(n=0;n<100;n++){x[n]=(n+1)/100.0;y[n]=(n+1)/100.0;}if(!(ep=engOpen(""))){fprintf(stderr,"nCan"tstartMATLABenginen");returnEXIT_FAILURE;}X=mxCreateDoubleMatrix(1,100,mxREAL);课后答案网memcpy((void*)mxGetPr(X),(void*)x,sizeof(x));Y=mxCreateDoubleMatrix(1,100,mxREAL);memcpy((void*)mxGetPr(Y),(www.hackshp.cnvoid*)y,sizeof(y));engPutVariable(ep,"X",X);engPutVariable(ep,"Y",Y);engEvalString(ep,"[xy]=meshgrid(X,Y);");engEvalString(ep,"z=x./(1+x.^2+y.^2);");engEvalString(ep,"mesh(x,y,z);");printf("Hitreturntocontinuenn");fgetc(stdin);mxDestroyArray(X);mxDestroyArray(Y);engClose(ep);returnEXIT_SUCCESS;}若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn(2)在MATLAB命令窗口输入以下命令编译(假定本机安装的编译器是MicrosoftVisualStudio2005)optsfile=[matlabroot"binwin32mexoptsmsvc80engmatopts.bat"];mex("-f",optsfile,"exercise11_5.c")(3)编译完成后,运行exercise11_5.exe6.(1)编辑c源程序exercise11_6.c,代码如下:#include"mex.h"doublecfun(double*a,double*b){doublen,r;n=*a;r=*b;if(r==0)return1;elseif(n==1)returnn;else{*b=r-1;returncfun(a,b)*(n-r+1)/r;}}voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){double*x,*y,*z;intm,n,i;if(nrhs!=2){mexErrMsgTxt("Twoinputsrequired.");}if(nlhs!=1){mexErrMsgTxt("Oneoutputrequired.");}for(i=0;i<2;i++){课后答案网m=mxGetM(prhs[i]);n=mxGetN(prhs[i]);if(!mxIsDouble(prhs[i])||mxIsComplex(prhs[i])||www.hackshp.cn!(m==1&&n==1)){mexErrMsgTxt("Inputmustbeanoncomplexscalardouble.");}}x=mxGetPr(prhs[0]);y=mxGetPr(prhs[1]);plhs[0]=mxCreateDoubleMatrix(m,n,mxREAL);z=mxGetPr(plhs[0]);*z=cfun(x,y);}(2)在MATLAB命令窗口输入命令设置编译器(假定本机安装的编译器是MicrosoftVisualStudio2005)mex-setup若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn 课后答案网:www.hackshp.cn按提示选择一种编译器,然后输入命令mexexercise11_6.c(3)调用函数计算a=exercise11_6(5.0,4.0)a=exercise11_6(8.0,12.0)第1212章二、实验题1.[x,fval]=fminbnd(@(x)+2*x+512/x,1,512)答案:长16m,宽32m,用材64m2.maxZ=70x+120y⎧9x+4y≤3600⎪(1)设两种产品的产量为x、y,建立模型:⎪4x+5y≤2000⎨⎪3x+10y≤3000⎪⎩x≥0y≥0(2)求解。在MATLAB的命令窗口输入“optimtool”命令打开优化工具图形用户界面,设置如下,单击start按钮开始求解课后答案网www.hackshp.cn答案:x=200,y=240若侵犯了您的版权利益,敬请来信告知!www.hackshp.cn'