MATLAB数学建模与仿真(第2版·微课视频版)习题答案汇 第2-10章 MATLAB数值计算代码 -Matlab在数理统计应用_第1页
MATLAB数学建模与仿真(第2版·微课视频版)习题答案汇 第2-10章 MATLAB数值计算代码 -Matlab在数理统计应用_第2页
MATLAB数学建模与仿真(第2版·微课视频版)习题答案汇 第2-10章 MATLAB数值计算代码 -Matlab在数理统计应用_第3页
MATLAB数学建模与仿真(第2版·微课视频版)习题答案汇 第2-10章 MATLAB数值计算代码 -Matlab在数理统计应用_第4页
MATLAB数学建模与仿真(第2版·微课视频版)习题答案汇 第2-10章 MATLAB数值计算代码 -Matlab在数理统计应用_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题2-1:求解方程x^2-x-1=0的根。>>r=[1-1-1]r=1-1-1>>p=roots(r)p=-0.61801.6180习题2-2:输入矩阵A=,使用全下标方式取出元素“3”,使用单下标方式取出元素“8”,取出后2行子矩阵块,使用逻辑矩阵方式取出。解:>>A=[123;456;789]A=123456789>>A(1,3)%全下标方式ans=3>>A(6)%单下标方式ans=8>>B=A([13],[13])%逻辑矩阵方式取出B=1379习题2-3:输入A为3×3的魔方阵,B为3×3的单位阵,由小矩阵组成3×6的大矩阵C和6×3的大矩阵D,将D矩阵的最后1行构成小矩阵E。a=magic(3)b=eye(3)c=[a,b]d=[a;b]e=d(end,:)习题2-4:输入字符串变量a为“hello”,将a的每个字符向后移4个,例如“h”变为“l”,然后再逆序排放赋给变量b。a=‘hello’b1=a+4b2=char(b1)b3=rot90(b2)b=rot90(b3)习题2-5:求矩阵的转置矩阵、逆矩阵、矩阵的秩、矩阵的行列式值、矩阵的三次幂、矩阵的特征值和特征向量。转置矩阵:a’逆矩阵:inv(a)矩阵的秩:rank(a)矩阵的行列式值:det(a)矩阵的三次幂:a^3矩阵的特征值和特征向量:[v,d]=eig(a)习题3-1:符号运算与数值运算的区别?答:1.传统的数值型运算因为要受到计算机所保留的有效位数的限制,它的内部表示法总是采用计算机硬件提供的8位浮点表示法,因此每一次运算都会有一定的截断误差,重复的多次数值运算就可能会造成很大的累积误差。符号运算不需要进行数值运算,不会出现截断误差,因此符号运算是非常准确的。2.符号运算可以得出完全的封闭解或任意精度的数值解。3.符号运算的时间较长,而数值型运算速度快。习题3-2:求矩阵的行列式值、非共轭转置和特征值。解:symsa11a12a21a22A=[a11a12;a21a22]%创建符号矩阵A=[a11,a12][a21,a22]det(A)%计算行列式ans=a11*a22-a12*a21A.'%计算非共轭转置ans=[a11,a21][a12,a22]eig(A)%计算特征值ans=[1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)][1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)]习题3-3:符号表达式f=2x2+3x+4与g=5x+6的代数运算。解:f=sym('2*x^2+3*x+4')f=2*x^2+3*x+4g=sym('5*x+6')g=5*x+6f+g%符号表达式相加ans=2*x^2+8*x+10f*g%符号表达式相乘ans=(2*x^2+3*x+4)*(5*x+6)习题3-4:对表达式进行任意精度控制的比较。a=sym('2*sqrt(5)+pi')a=2*sqrt(5)+pidigits%显示默认的有效位数Digits=32vpa(a)%用默认的位数计算并显示ans=7.6137286085893726312809907207421vpa(a,20)%按指定的精度计算并显示ans=7.6137286085893726313digits(15)%改变默认的有效位数vpa(a)%按digits指定的精度计算并显示ans=7.61372860858937习题3-5求微分方程,y(1)=0,y(0)=0的解。参照【例3-98】:使用dsolve函数指令求解微分方程,,,输入指令如下:>>dsolve(‘Dx=-a*x’);>>dsolve('D2x/d*t^2=sin(t)')>>dsolve('(Dy)^2/+y^2=1','s')输出结果如下所示:ans=C2/exp(a*t)ans=C5-d*sinint(t)+(C4*t^3+d*t^3*cosint(t)-d*t^2*sin(t))/t^2ans=C7*exp(s)C9/exp(s)习题4-1:采集一张格式为*.jpg的图像,用MATLAB的imread函数读入图像文件,并用image函数显示图像。解题提示:>>i=imread('eee.jpg');>>image(i)显示的图像为:习题4-2:试编写一M文件,对采集的图像进行最近邻插值,并且显示出来与原图像进行对比。解题提示:>>

j=imresize(i,2,'nearest');

>>

subplot(1,2,1),image(i),title('原图'),

subplot(1,2,2),image(j),title('最近邻')显示的图像为:习题4-3:编写程序,对采集的图像进行最近邻插值。解题提示:>>

[r,c]=size('eee.jpg')

>>

for

i=1:r

for

j=1:c

B(i,2*j)=eee(i,j);

B(i,2*j-1)=eee(i,j);

end

end

for

i=1:r

for

j=1:2*c

C(2*i,j)=B(i,j);

C(2*i-1,j)=B(i,j);

end

end

subplot(1,2,1);

>>

imshow(eee);

>>

subplot(1,2,2);

>>

imshow(C)

习题4-4:MATLAB可以将图像数据进行压缩处理,分析下面的代码说明压缩的原理代码。I=imread('cameraman.tif');I=im2double(I);T=dctmtx(8);B=blkproc(I,[88],'P1*x*P2',T,T');mask=[1111000011100000110000001000000000000000000000000000000000000000];B2=blkproc(B,[88],'P1.*x',mask);I2=blkproc(B2,[88],'P1*x*P2',T',T);imshow(I),figure,imshow(I2)习题4-5:怎样可以自动获得由鼠标在图像上任意指定的两相素点之间的距离?答:首先你需要确定提取哪两个点matlab中图像就是一个矩阵,其表示方式为f(i,j),这表是像素值(例如灰度值),i,j就是坐标值。i表示第几行,j表示第几列提取其坐标值X1,Y1,X2,Y2,则距离为sqrt((X1-X2)^2+(Y1-Y2)^2)习题5-1:命令文件与函数文件的主要区别是什么?答:(1)命令文件是一系列命令的组合,函数文件的第一行必须用function说明;(2)命令文件没有输入参数,也不用返回参数,函数文件可以接受输入参数,也可以返回参数;(3)命令文件处理的变量为工作空间变量,函数文件处理的变量为函数内部的局部变量,也可以处理全局变量。习题5-2:找出1~100间3的倍数和尾数是3的数,按升序排列。解:源代码:a=1:100;b=[a(rem(a,10)==3)a(rem(a,3)==0)];b=sort(b);form=1:length(b)ifm>=length(b)break;endifb(m+1)==b(m)b(m)=[];endend;结果输出:K>>bb=Columns1through1036912131518212324Columns11through2027303336394243454851Columns21through3053545760636669727375Columns31through398183848790939699习题5-3:编写脚本文件Ex2.m使用while循环计算从1开始的奇数的联乘积S1,S1=1×3×5×…解:源代码:s2=1;n=1;whiles2<100s1=s2;s2=s2*n;m=n-2;n=n+2;end结果输出:K>>ex2K>>s1,ms1=15m=5习题5-4:绘出函数的图像。解:源代码:closeall;x=-3:0.1:3;ifx>=1y=2*x.^2+1;plot(x,y);elseif-1<xy=0;plot(x,y);elsey=-x.^3;plot(x,y);end结果输出:习题5-5:建立一个命令M-文件:求所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。解:源代码:clcfors=100:999;a=fix(s/100);b=fix(s/10-10*a);c=s-100*a-10*b;ifs==a.^3+b.^3+c.^3disp(s)endend结果:153370371407习题5-6:编写函数M-文件SQRT.m:用迭代法求的值。求平方根的迭代公式为:,迭代的终止条件为前后两次求出的x的差的绝对值小于10-5。解:源代码: clear clc a=input('请输入一个数:'); x(1)=1; forn=1:100; x(n+1)=(x(n)+a/x(n))/2; ifabs(x(n+1)-x(n))<1e-5 y=x(n+1); end end y结果:请输入一个数:49y=7习题6-1:有初始状态为0的二阶微分方程x"+0.2x'+0.4x=0.2u(t),其中u(t)是单位阶跃函数,试建立系统模型并仿真。解:令x1=x,x2=x1'=x',把原方程转化成微分方程组:x1'=x2x2'=0.4*x1-0.2*x2+0.2u(t),(x1(0),x2(0))=(0,0).根据上述一阶微分方程组编写M函数文件DyDt.mfunctionydot=DyDt(t,y)ift>0u(t)=1elseu(t)=0endydot=[y(2);0.4*y(1)-0.2*y(2)+0.2*u(t)];tspan=[0,30];%solutionintervaly0=[0;0];[tt,yy]=ode45(@DyDt,tspan,y0)习题6-2:新建一个SIMULINK的模型文件,试建立并调试一个模型,实现在一个示波器中同时观察正弦波信号和方波信号。解:在Simulink中,建模步骤如下:打开MATLAB界面,单击工具栏中按钮打开Simulink库浏览器,如图6-1所示。单击Simulink库浏览器工具栏中按钮,打开一个默认名称为untitled的空白模型窗口,图6-21所示。在模型窗口中添加信号源,在Simulink库浏览器中单击Simulink库中的子库Sources,在右侧展开列表框中分别选择SineWave(正弦波)模块和PulseGenerator(脉冲发生器)模块,按下鼠标左键的同时拖动模块到新建的空白模型窗口中,释放鼠标左键,即可分别将正弦波模块和脉冲发生器模块从库浏览器中复制到模型窗口中,如图6-22所示。图6-21Simulink模型窗口图6-22向模型窗口中添加信号源按照步骤(3)所说的方法,在模型窗口中添加其他模块。将Simulink库中的子库MathOperations中的Gain模块、SignalRouting子库中的Mux模块和Sink子库中的Scope模块一次拖动到新建的模型窗口中,如图6-23所示。Gain模块用来放大脉冲信号;Mux模块用来将放大后的脉冲信号和正弦信号两路信号复合为一路信号输出;Scope模块用来显示输出信号。连接模块。将鼠标指向模块的输出端,当光标变为十字形符号时,按下鼠标左键,移动鼠标至要连接模块的输入端,当光标由十字形符号变为双十字形符号时松开鼠标,即可完成两个模块间的连接,最终完成所有模块间的连接,如图6-24所示。图6-23向模型窗口中添加其他模块图6-24连接模块单击模型窗口工具栏中的按钮,保存模型,弹出如图6-25所示的保存窗口,将模型名称改为Sample,单击保存按钮保存。图6-25保存模型设置模块属性。双击Gain模块,将弹出Gain模块参数设置对话框,设置参数Gain为2,如图6-26所示,设置完毕之后单击OK按钮关闭对话框。其他模块采用默认设置,在本例中不做修改。显示仿真结果。单击模型窗口中的“仿真”按钮,开始仿真。在示波器上,可以观察到原信号和放大后的输出信号。单击示波器工具栏中的“自动刻度”按钮,使得波形充满整个坐标框,得到如图6-27所示图形。图6-26模块参数设置图6-27示波器输出结果显示习题6-3:食饵——捕食者模型:设食饵(如鱼,兔等)数量为x(t),捕食者(如鲨鱼,狼等)数量为y(t),有或,设r=1,d=0.5,a=0.1,b=0.02,x(0)=25,y(0)=2。求x(t),y(t)和y(x)的图形。提示:参照下图做配置,之后运行。不确定图片能否显示,简单说明一下用到的模块及来源:1、Sources:SinWave;2、Continuous:TransferFcn和Zero-Pole3、Sources:Constant;Continuous:Integrator;MathOperations:Sum,Product;Sinks:Scope习题7-1:计算一元函数在[-1,10]区间的零点。提示:【例7-13】计算一元函数在[-3,4]区间的零点。首先绘制函数的曲线,在命令窗口中输入如下语句:x=--1:0.1:10;y=3.*x.^2.*sin(x)-4.*x;plot(x,y,'r')xlabel('x');ylabel('f(x)');title('Thezerooffunction')holdonh=line([-1,10],[0,0]);set(h,'color','g')grid;图形窗口中的输出结果如图所示。在求解函数零点之前,需要绘制函数的图形,是为了在后面的步骤中使用fzero命令时,更加方便地选择初始数值0。由图不难看出,曲线在[-1,10]区间内包含4个零点。其次计算函数某点附近的零点,在命令窗口中输入如下语句:f=@(x)3.*x.^2.*sin(x)-4.*x;X1=fzero(f,2)X2=fzero(f,3)X3=fzero(f,6)X4=fzero(f,9)命令窗口中的输出结果如下所示:X1=1.3627X2=2.6041X3=6.4901X4=9.2806习题7-2:计算积分。提示:求,就可以用矢量积分。在命令窗口中输入如下语句:%integral求矢量积分y=@(x,n)(1./[1:n]).*exp(-x.*2./([1:n].^3));%归一化高斯函数integral(@(x)y(x,4),-3,3,'ArrayValued',true)由上述语句得到的输出结果如下:ans=201.71323.28932.01651.5022习题7-3:计算的线性规划。参照【例8-28】计算的线性规划。在命令窗口中输入如下语句:H=[1-1;-12];f=[-3;-5];A=[14;-13];b=[3;10];[x,fval]=quadprog(H,f,A,b)命令窗口中的输出结果如下:Minimumfoundthatsatisfiestheconstraints.Optimizationcompletedbecausetheobjectivefunctionisnon-decreasinginfeasibledirections,towithinthevalueoftheoptimalitytolerance,andconstraintsaresatisfiedtowithinthevalueoftheconstrainttolerance.<stoppingcriteriadetails>x=1.76920.3077fval=-5.7308【习题8-1】求cosx的6阶麦克劳林展开式。在MATLAB的命令窗口输入如下命令: symsxser1=taylor(cos(x),x,'ExpansionPoint',0,'order',7)运行结果:ser1=-x^6/720+x^4/24-x^2/2+1【习题8-2】在MATLAB的命令窗口输入如下命令:symsxf=(1/x)^tan(x);limit(f,x,0,’right’)运行结果:y=(5*x)/2+6*exp(-1)*exp(x)-x^2/2-x^3/6+1/6【习题8-3】计算在MATLAB的命令窗口输入如下指令:symsxy;f=(x+y)*log(x^2+y^2);limit(limit(f,x,0),y,0)运行结果:ans=0【习题8-4】求的函数微分。在MATLAB的命令窗口输入如下命令:symsx;f=log(sin(x));f1=diff(f,x)运行结果:f1=cos(x)/sin(x)即。【习题8-5】求下列函数的一个原函数(1)(2)在MATLAB的命令窗口输入如下代码symsx;f=1/x^4;int(f,x)运行结果:ans=-1/(3*x^3)即函数的原函数为。在MATLAB的命令窗口输入如下代码:symsx;f=exp(x)/(1+exp(x));int(f,x)运行结果:ans=log(exp(x)+1)即函数的一个原函数为。习题9-1:矩阵A是一个uppertriangularmatrix,主对角线上的元素不为零。答:A=[4-13;025;008];b=[102]';n=3;X=zeros(n,1);%给初始值X=[000]'forj=n:-1:1%利用loop来执行BackwardSubsitutionX(j)=(b(j)-A(j,:)*X)/A(j,j);end,XX=-0.0938-0.62500.2500习题9-2:利用RREF判断下列线性系统(linearsystem)Ax=b是否有解?如果有解,请求出其解。A=[1+i2i1;2-3i4+i0;43-ii];b=[2-4i-7-3i-2-2i]';>>A=[1+i2i1;2-3i4+i0;43-ii];>>rref(A)ans=100010001>>rank(A)ans=3>>%由以上信息可以知道A满秩,所以Ax=b有解>>b=[2-4i-7-3i-2-2i]';>>x=A\bx=0.3846-1.9231i0.0000+2.0000i3.6923+5.5385i习题9-3:试决定一个通过下列A、B、C、D四点的三次多项式,并在直角座标平面上,画出此多项式的图形:A:(-2,0);B:(-1,1);C:(0,0);D:(1,0)目标函数: 约束条件:答:将约束条件改写成下面的不等式两个约束条件都是线性的,在Matlab中实现:>>x0=[10;10;10];>>A=[-1-2-2;122];>>b=[0;72];>>[x,fval]=fmincon('-x(1)*x(2)*x(3)',x0,A,b)x=24.000012.000012.0000fval=-3.4560e+03线性不等式约束条件的值<=0>>A*x-bans=-72.0000-0.0000习题9-4:求解下列方程组(1)求非齐次线性方程组的唯一解。(2)求非齐次线性方程组的通解。答:>>A=[2,1,2,4;-14,17,-12,7;7,7,6,6;-2,-9,21,-7]A=2124-1417-1277766-2-921-7>>B=[5;8;5;10]B=58510>>X=A\BX=-0.8341-0.25250.74171.3593>>A=[5,9,7,2,8;4,22,8,25,23;1,8,1,8,8;2,6,6,9,7]A=59728422825231818826697>>b=[4;9;1;7]b=4917>>B=[Ab]B=597284422825239181881266977>>C=rref(B)C=1.000000-4.1827-0.8558-1.663501.000001.32691.05770.1346001.00001.56730.39421.5865000000对应齐次方程组的基础解系为:x1=(4.1827)-1.3269-1.56731.00000X2=(4.18270.8558)-1.3269-1.0577-1.5673-0.39421.0000001.0000非齐次方程组的特解为:m=【-1.6635,0.1346,1.5865,0】‘所以,方程组的通解为X=k1x1+k2x2+m习题9-5:分析向量组,,,的线性相关性,找出它们的最大无关组,并将其余向量表示成最大无关组的线性组合。答:>>a1=[1122]';>>a2=[0215]';>>a3=[205-1]';>>a4=[3386]';>>A=[a1,a2,a3,a4];>>[R,S]=rref(A)R=1001010100110000S=123>>r=length(S)r=3最大线性无关组为:a1a2a3;a4=a1+a2+a3习题9-6:矩阵A=,求正交矩阵P及对角形矩阵B,使。答:>>a=[23-2;3611;-2115];>>[v,d]=eig(a)v=-0.36840.92800.05620.65120.21440.7280-0.6635-0.30470.6833d=-6.90570003.350000016.55561.某厂生产的一种电器的销售量y与竞争对手的价格x1和本厂的价格x2有关。下表是该商品在10个城市的销售记录。x1(元)120140190130155175125145180150x2(元)10011090150210150250270300250y(个)10210012077469326696585试根据这些数据建立y与x1和x2的关系式,对得到的模型和系数进行检验。若某市本厂产品售价160(元),竞争对手售价170(元),预测商品在该市的销售量。答:分别画出y关于x1和y关于x2的散点图,可以看出y与x2有较明显的线性关系,而y与x1之间的关系则难以确定,我们将作几种尝试,用统计分析决定优劣。设回归模型为y=β0+β1x1+β2x2编写如下程序:>>x1=[120140190130155175125145180150]';>>x2=[100110901502

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论