MATLAB作业6参考答案(修)
MATLAB 作业6参考答案(修)1、用图解的方式找到下面两个方程构成的联立方程的近似解。
(注:在图上可用局部放大的方法精确读出交点值)2223223,x y xy x x y y +=-=-【求解】这两个方程应该用隐式方程绘制函数ezplot() 来绘制,交点即方程的解。
>> ezplot('x^2+y^2-3*x*y^2');hold onezplot('x^3-x^2=y^2-y')可用局部放大的方法求出更精确的值。
从图上可以精确读出两个交点,(0:4012;¡0:8916),(1:5894; 0:8185)。
试将这两个点分别代入原始方程进行验证。
2、在图形绘制语句中,若函数值为不定式NaN ,则相应的部分不绘制出来,试利用该规律绘制sin()z xy =的表面图,并剪切下2220.5x y +≤的部分。
【求解】给出下面命令可以得出矩形区域的函数值,再找出x 2 + y 2 <=0.5^2 区域的坐标,将其函数值设置成NaN ,最终得出所示的曲面。
>> [x,y]=meshgrid(-1:.1:1); z=sin(x.*y);ii=find(x.^2+y.^2<=0.5^2); z(ii)=NaN; surf(x,y,z)3、试用图解法求解下面的一元和二元方程,并验证得出的结果。
222(1)/2221)()sin(52),2)(,)()x x y xy f x e x f x y x y xy e π-++---=+=++【求解】①中给出的一元方程可以用曲线表示出来,这些曲线和y = 0 线的交点即为方程的 解,可以用图形局部放大的方法读出这些交点的x 值,。
在本图中,xi 均为方程的解,若放大x 轴区域,则可能得出更多的解。
>> ezplot('exp(-(x+1)^2+pi/2)*sin(5*x+2)')②中的二元方程可以由下面的命令用图形的方式显示出来。
>> ezsurf('(x^2+y^2+x*y)*exp(-x^2-y^2-x*y)')用下面的语句可以得出等高线。
为了比较起见,还绘制出其他值下的等高线。
等高线值为0 的两条斜线为方程的解。
>> [x,y]=meshgrid(-3:0.1:3);z=(0.1*x.^2+0.1*y.^2+x.*y).*exp(-x.^2-y.^2-x.*y);[C,h]=contour(x,y,z,[-0.1:0.05:0.1]);4、用数值求解函数求解习题3中方程的根,并对得出的结果进行检验。
【求解】求解方程求解问题可以采用fsolve() 和solve() 函数直接求解,这里采用这两个函数分别求取这两个方程的根。
① 可以用下面方法求出一元函数的根,经检验结果较精确。
>> syms x; x1=solve('exp(-(x+1)^2+pi/2)*sin(5*x+2)')x1 =-2/5>> subs('exp(-(x+1)^2+pi/2)*sin(5*x+2)',x,x1)ans =>> f=inline('exp(-(x+1).^2+pi/2).*sin(5*x+2)','x');x2=fsolve(f,0)x2 =0.22831852178755>> subs('exp(-(x+1)^2+pi/2)*sin(5*x+2)',x,x2)ans =4.750949292642762e-008>> x3=fsolve(f,-1) % 选择不同的初值可以得出其他的解x3 =-1.02831853071796>> subs('exp(-(x+1)^2+pi/2)*sin(5*x+2)',x,x3)ans =-5.886413288211306e-016采用解析解函数solve() 能求出精确的解,但只能求出其一个根,如果采用fsolve() 函数 则可以让用户自己选择初值,选择不同的初值可能得出不同的结果。
在实际应用时这样的方 法也有其问题,若x 大于1,则函数值本身就很小,很容易满足数值解的收敛条件,例如选择x 0 = 4,则由数值解的程序能得出方程解为x 0,事实上这样的解不是数学意义下的方程解,但确实能使得该函数的值趋于0。
>> x4=fsolve(f,4) % 选择大的初值得出的解不是严格意义下方程的根x4 =>> subs('exp(-(x+1)^2+pi/2)*sin(5*x+2)',x,x4)ans =-5.913350831018913e-013② 可以用下面的语句求解该函数,则可以得出方程的解,代入原方程则可以得出误差,可见误差为0,这样说明得出的解确实满足原方程。
>> syms x; y1=solve('(x^2+y^2+x*y)*exp(-x^2-y^2-x*y)=0','y')y1 =(-1/2+1/2*i*3^(1/2))*x(-1/2-1/2*i*3^(1/2))*x>> y2=simple(subs('(x^2+y^2+x*y)*exp(-x^2-y^2-x*y)','y',y1))y2 =5、试求解下面的无约束最优化问题。
222222211433222424min 100()(1)90()(1)10.1[(1)(1)]19.8(1)(1)xx x x x x x x x x x -+-+-+-+-+-+--【求解】无约束最优化问题可以由下面的语句直接求解,并得出所需结果。
>> f=inline(['100*(x(2)-x(1)^2)^2+(1-x(1))^2+',...'90*(x(4)-x(3)^2)+(1-x(3)^2)^2+',...'10.1*((x(2)-1)^2+(x(4)-1)^2)+',...'19.8*(x(2)-1)*(x(4)-1)'],'x');x=fminunc(f,ones(7,1))x =1.0e+002 *0.105464467987131.112320667672340.06782323911149-1.115047464577260.010000000000000.010000000000000.010000000000006、 试用图解法求解下面的非线性规划问题,并用数值求解算法验证结果。
321211221212min (44)20..100,0x x x x x s t x x x x +-+-+≥⎧⎪-+-≥⎨⎪≥≥⎩ 【求解】通过选择适当的区域(当然,这需要在较大范围内先观察一下最优点或可行区域,然后再较确切地选择合适的区域),这样就可以可以绘制出所示的曲面表示,在曲面绘制中先选择整个矩形区域,然后将不满足约束条件的区域剪切掉。
从得出的目标函数曲面看,x = 0; y = 1 处为全局最小点。
>> [x1,x2]=meshgrid(0:0.02:1,1:0.02:2);z=x1.^3+x2.^2+4*x1+4;ii=find(x1-x2+2<0); z(ii)=NaN;ii=find(-x1.^2+x2-1<0); z(ii)=NaN;ii=find(x1<0); z(ii)=NaN; ii=find(x2<0); z(ii)=NaN;surf(x1,x2,z)下面的语句可以用数值方法求解function [c,ce]=exc6f4(x)ce=[];c=[x(1)^2-x(2)+1];>> f_opt=inline('x(1)^3+x(2)^2+4*x(1)+4','x');A=[-1 1]; B=2; Aeq=[]; Beq=[]; xm=[0;0];x=fmincon(f_opt,[0;1],A,B,Aeq,Beq,xm,[],'exc6f4');7、 试求解此线性规划问题:6712341236723571,2,,7min 421..390x x x x x x x x x x x s t x x x x x ++++=⎧⎪-+--+=⎪⎨+++=⎪⎪≥⎩ 【求解】用下面的语句可以求解出线性规划问题>> f=[0,0,0,0,0,1,1];Aeq=[1 1 1 1 0 0 0; -2 1 -1 0 0 -1 1; 0 3 1 0 1 0 1];Beq=[4; 1; 9]; xm=[0;0;0;0;0;0;0]; A=[]; B=[];x=linprog(f,A,B,Aeq,Beq,xm)Optimization terminated successfully.x =0.395178118696322.321269576071830.530913338679080.752638966552771.505277933105330.000000000000200.000000000000088、 试求解下面的二次型规划问题,并用图示的形式解释结果。
22112212121212min 244633.49,0x x x x x x x x s t x x x x -+--+≤⎧⎪+≤⎨⎪≥⎩【求解】可以由目标函数写出二次型规划的H 和f 矩阵为44,[6,3]48H f -⎡⎤==--⎢⎥-⎣⎦这样由二次型规划求解函数可以直接解出该最优化问题的解。
>> H=[4 -4; -4 8]; f=[-6 -3];Aeq=[]; Beq=[]; A=[1 1; 4 1]; B=[3;9]; xm=[0;0];x=quadprog(H,f,A,B,Aeq,Beq,xm)x =1.950000000000001.050000000000009、 试求解下面的非线性规划问题。
12121212120 1.5..1010,10x x x x x x s t x x x x +≤⎧⎪-++≥⎪⎨≥-⎪⎪-≤≤⎩【求解】可以用下面的语句描述目标函数function y=exc6fun6(x)y=exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);也可以写出约束函数function [c,ce]=exc6fun6a(x)ce=[];c=[x(1)+x(2); x(1)*x(2)-x(1)-x(2)+1.5; -10-x(1)*x(2)];这时调用非线性最优化问题求解函数可以得出如下结果。
控制系统仿真matlab第六章习题答案汇总
控制系统仿真第六章课后题作业6.1试编写matlab 程序,设计系统的超前矫正器 Gc (s ),要求:1) 在斜坡信号r ( t )=2t 作用下,系统的稳态误差 ess<=0.002;2)校正后系统的相位裕度 Pm 范围为:45~55 ; 3) 绘制系统校正后的 bode 图和阶跃响应曲线。
程序:>> s=tf('s');>> G=1000/(s*(0.1*s+1)*(0.001*s+1));>> margin(G)% 绘制校正前的 bode 图 专 Figure 1 - □ X File Edit View Insert Took Desktop Window Het* »□ a J ®毀謠° 匡11 ■ a >> figure(2)>> sys=feedback(G,1); 在图6.1中,已知单位负反馈系统被控对象的传递函数为G(s)= Ks(0.1s 1)(0.0QQo oBtjde Diagram Gm = 0.D&64 dB [at 100 rad/aec) ( Pm = 0.05&4 (at 99.5 rad/&ec)flu o-5 5 mE mprl 左一6『左 a 10>> step(sys) %绘制校正前的单位阶跃响应曲线Figure 2File Edit 过ew Insert Tools Window Help□已鸟|罠4紗®悬乙| 口目| ■回Step Response1.3>> [Gm,Pm]=margin(G); %该句值计算bode图的增益裕量Gm和相位裕量Pm >> [mag,phase,w]=bode(G); %该句只计算bode图上多个频率点w对应的幅值和相位>> QWPm=50; %取矫正后的相位为50>> Flm=QWPm-Pm+5;>> Flm=Flm*pi/180;>> alfa=(1-si n(FIm))/(1+si n( FIm));>> adb=20*log10(mag);>> am=10*log10(alfa);>> wc=spli ne(adb,w,am);>> T=1/(wc*sqrt(alfa));>> alfat=alfa*T;>> Gc=tf([T 1],[alfat 1]) %校正器的传递函数Tran sfer function:0.01794 s + 1Time 330.00179 s + 1>> figure(3)>> margin(Gc*G) %系统矫正后的bode图Ffgure 3Filt gdit yisw ifisert Hcdt Mfimdcw title】I ■回Bode DiagramGm = 17.6 dB (st 69B rad/sec) s Pm = 4S.2 deg (at 176 rad/sec)"I 0 0 N -- 1 1 I I I ! 1 ! | ! ■' I I ' ' I J I I ........... | I I « i i i | i | i f ■ J !!|!|>> figure(4)>> step(feedback(Gc*G ,1)) % 校正后的单位阶跃响应曲线Figure 4n xl Fie Edit 辺足w Insert Tools Desktop Window HelpO t3 J -S □ S ■ Q1010°ID1 1 孑10Frequency (r&fh'see)作业6.2在图6.1中,已知单位负反馈系统被控对象的传递函数为试编写matlab 程序,设计系统的滞后校正器 Gc ( s ),要求:1) 在斜坡信号r(t)=t 作用下,系统的稳态误差ess 乞0.01 ; 2) 校正后系统的相位裕度 Pm 范围为:40~50 ;3) 绘制系统矫正前后的 bode 图和阶跃响应曲线。
数字图像处理及应用(MATLAB)第6章习题答案
第六章习题与思考题参考答案1. 简述飞机红外图像识别中用到的五个红外特征量各自的作用?1)长宽比:反应了目标的几何形状;2)复杂度:反应了红外目标轮廓的情况;3)紧凑度:反应了红外目标在其所在最小外接矩形中所占比重;4)均值对比度:反映了目标的物理特性与背景的物理特性之间的关系;5)部分最亮像素点数与目标总像素数的比值:反应了目标的明暗变化情况;2. 可视密码共享中,如果实现(4 , 5)门限的可视密码分享,程序将做如何编写?clear allclose allM=imread('0.jpg');ss=rgb2gray(M);figureimshow(ss);[m n]=size(ss);for i=1:m*nif ss(i)>250ss(i)=250;endends=double(ss)+1;x=[1 2 3 4 5];g1=zeros(m,n);g2=zeros(m,n);g3=zeros(m,n);g4=zeros(m,n);g5=zeros(m,n);yy1=zeros(m,n);yy2=zeros(m,n);yy3=zeros(m,n);yy4=zeros(m,n);yy5=zeros(m,n);y1=zeros(m,n);y2=zeros(m,n);y3=zeros(m,n);y4=zeros(m,n);y5=zeros(m,n);for j=1:m*na1=mod(2*j,251);a2=mod(3*j,251);a3=mod(5*j,251);f=[a1 a2 a3 s(j)];g1(j)=polyval(f,x(1));yy1(j)=mod(g1(j),251);g2(j)=polyval(f,x(2));yy2(j)=mod(g2(j),251);g3(j)=polyval(f,x(3));yy3(j)=mod(g3(j),251);g4(j)=polyval(f,x(4));yy4(j)=mod(g4(j),251);g5(j)=polyval(f,x(5));yy5(j)=mod(g5(j),251);endy1=uint8(yy1-1)y2=uint8(yy2-1);y3=uint8(yy3-1);y4=uint8(yy3-1);y5=uint8(yy3-1);figure,imshow(y1);figure,imshow(y2)figure,imshow(y3);figure,imshow(y4);figure,imshow(y5);l1=(x(2)*x(3)*x(4)*x(5))/[(x(1)-x(2))*(x(1)-x(3))*(x(1)-x(4))*(x(1)-x(5))];l2=(x(1)*x(3)*x(4)*x(5))/[(x(2)-x(1))*(x(2)-x(3))*(x(2)-x(4))*(x(2)-x(5))];l3=(x(1)*x(2)*x(4)*x(5))/[(x(3)-x(1))*(x(3)-x(2))*(x(3)-x(4))*(x(3)-x(5))];l4=(x(1)*x(2)*x(3)*x(5))/[(x(4)-x(1))*(x(4)-x(2))*(x(4)-x(3))*(x(4)-x(5))];l5=(x(1)*x(2)*x(3)*x(4))/[(x(5)-x(1))*(x(5)-x(2))*(x(5)-x(3))*(x(5)-x(4))];rr1=zeros(m,n);r=zeros(m,n);for j=1:m*nrr1(j)=mod(yy1(j)*l1+yy2(j)*l2+yy3(j)*l3+yy4(j)*l4+yy5(j)*l5,251);endr=uint8(rr1-1);figure,imshow(r);3. 已知图像⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=805020016821024015010017018013070901262068M 。
matlab课后习题及答案
第一章 5题已知a=4.96,b=8.11,计算)ln(b a eba +-的值。
解:clear clc a=4.96; b=8.11;exp(a-b)/log(a+b) ans =0.0167 6题已知三角形的三边a=9.6,b=13.7, c=19.4,求三角形的面积。
提示:利用海伦公式area =))()((c s b s a s s ---计算,其中S=(A+B+C)/2. 解:clear clc a=9.6; b=13.7; c=19.4; s=(a+b+c)/2area=sqrt(s*(s-a)*(s-b)*(s-c)) s =21.3500 第二章 8题已知S=1+2+2^2+2^3+……+2^63,求S 的值 解:clear clc S=0;for i=0:1:63 S=S+2^i; end S S =1.8447e+019 9题分别用for 和while 循环结构编写程序,计算∑=-1001n 1n 2)(的值。
解:clear clc s=0;for n=1:100 s=s+(2*n-1); end s s =10000 clear clc n=1; s=0;while n<=100 s=s+(2*n-1); n=n+1; end s s =10000 第三章 2题在同一坐标下绘制函数x ,,2x-,2x xsin(x)在()∏∈,0x 的曲线。
解:clear clcx=0:0.2:pi; y1=x; y2=x.^2; y3=-(x.^2); y4=x.*sin(x);plot(x,y1,'-' ,x,y2,'-' ,x,y3,'-' ,x,y4,'-')0.511.522.53-10-8-6-4-202468109题用不同的线型和颜色在同一坐标内绘制曲线y1=2ex5.0 、y2=sin(2∏x )的图形。
MATLAB习题及参考答案经典.doc
习题:1, 计算⎥⎦⎤⎢⎣⎡=572396a 与⎥⎦⎤⎢⎣⎡=864142b 的数组乘积。
2, 对于B AX =,如果⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=753467294A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=282637B ,求解X 。
3, 已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=987654321a ,分别计算a 的数组平方和矩阵平方,并观察其结果。
4, 角度[]604530=x ,求x 的正弦、余弦、正切和余切。
(应用sin,cos,tan.cot)5, 将矩阵⎥⎦⎤⎢⎣⎡=7524a 、⎥⎦⎤⎢⎣⎡=3817b 和⎥⎦⎤⎢⎣⎡=2695c 组合成两个新矩阵: (1)组合成一个4⨯3的矩阵,第一列为按列顺序排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵元素,第三列为按列顺序排列的c 矩阵元素,即 ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡237912685574(2)按照a 、b 、c 的列顺序组合成一个行矢量,即 []2965318772546, 将(x -6)(x -3)(x -8)展开为系数多项式的形式。
(应用poly,polyvalm)7, 求解多项式x 3-7x 2+2x +40的根。
(应用roots)8, 求解在x =8时多项式(x -1)(x -2) (x -3)(x -4)的值。
(应用poly,polyvalm)9, 计算多项式9514124234++--x x x x 的微分和积分。
(应用polyder,polyint ,poly2sym)10, 解方程组⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡66136221143092x 。
(应用x=a\b)11, 求欠定方程组⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡5865394742x 的最小范数解。
(应用pinv) 12, 矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=943457624a ,计算a 的行列式和逆矩阵。
(应用det,inv)13, y =sin(x ),x 从0到2π,∆x =0.02π,求y 的最大值、最小值、均值和标准差。
matlab课后习题及答案详解
matlab课后习题及答案详解第1章练习题1.安装matlab时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?在安装matlab时,安装内容由选择组件窗口中个复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即matlab选项)必须安装。
第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可。
2.matlab操作方式桌面存有几个窗口?如何并使某个窗口瓦解桌面沦为单一制窗口?又如何将瓦解过来的窗口再次置放至桌面上?与其他计算机语言相比较,matlab语言注重的特点就是什么?matlab系统由那些部分共同组成?在matlab操作桌面上有五个窗口,在每个窗口的右上角有两个小按钮,一个是关闭窗口的close按钮,一个是可以使窗口成为独立窗口的undock按钮,点击undock按钮就可以使该窗口脱离桌面成为独立窗口,在独立窗口的view菜单中选择dock……菜单项就可以将独立的窗口重新防止的桌面上。
matlab具备功能强大、使用方便、输出简便、库函数多样、开放性弱等特点。
matlab系统主要由开发环境、matlab数学函数库、matlab语言、图形功能和应用程序接口五个部分组成。
3.如何设置当前目录和搜寻路径,在当前目录上的文件和在搜寻路径上的文件存有什么区别?命令历史窗口除了可以观测前面键入的命令外,除了什么用途?当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的setpath菜单项来完成。
在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被matlab运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上。
命令历史窗口除了用作查阅以前键入的命令外,还可以轻易执行命令历史窗口中选取的内容、将选取的内容拷贝到剪贴板中、将选取内容轻易拷贝到m文件中。
matlab习题及答案
matlab习题及答案Matlab习题及答案Matlab是一种强大的数学计算软件,被广泛应用于科学计算、数据分析和工程设计等领域。
在学习和使用Matlab的过程中,习题是一种非常有效的学习方式。
本文将给出一些常见的Matlab习题及其答案,帮助读者更好地掌握Matlab的使用技巧。
一、基础习题1. 计算1到100之间所有奇数的和。
解答:```matlabsum = 0;for i = 1:2:100sum = sum + i;enddisp(sum);```2. 编写一个函数,计算任意两个数的最大公约数。
解答:```matlabfunction gcd = computeGCD(a, b)while b ~= 0temp = b;a = temp;endgcd = a;end```3. 编写一个程序,生成一个5×5的随机矩阵,并计算矩阵的行和列的平均值。
解答:```matlabmatrix = rand(5);row_average = mean(matrix, 2);col_average = mean(matrix);disp(row_average);disp(col_average);```二、进阶习题1. 编写一个程序,实现插入排序算法。
解答:```matlabfunction sorted_array = insertionSort(array)n = length(array);for i = 2:nj = i - 1;while j > 0 && array(j) > keyarray(j+1) = array(j);j = j - 1;endarray(j+1) = key;endsorted_array = array;end```2. 编写一个程序,实现矩阵的转置。
解答:```matlabfunction transposed_matrix = transposeMatrix(matrix) [m, n] = size(matrix);transposed_matrix = zeros(n, m);for i = 1:mfor j = 1:ntransposed_matrix(j, i) = matrix(i, j);endendend```3. 编写一个程序,实现二分查找算法。
matlab答案第六章
值
figure, plot(alpha3, tan_alpha3, 'k:p');
hold on; %绘精确正切曲线
alpha4=0:75;
tan_Y1=interp1(alpha3, tan_alpha3, alpha4,
'spline'); %3 次样条正切插值
plot(alpha4, tan_Y1,'r-*'); hold on; %绘 3
运行结果:
x=
-1.8060
-0.5373
3.0448
(2) 程序设计:
方法 1:矩阵求逆法
clear all; close all; clc;
A=[5, 1, -1, 0; 1, 0, 3, -1;-1,-1,0, 5; 0,
0, 2, 4];
b=[1; 2; 3; -1];
x=inv(A)*b
运行结果:
第六章
1. 利用 MATLAB 提供的 randn 函数生成符合正
态分布的 10×5 随机矩阵 A,进行如下操作:
(1) A 各列元素的均值和标准方差。
(2) A 的最大元素和最小元素。
(3) 求 A 每行元素的和以及全部元素之和。
(4) 分别对 A 的每列元素按升序、每行元素按
降序排列。
答:
clear all; close all; clc;
141
Yi 187 126 172 125 148 求它的线性拟合曲线。 答: 程序设计: clear all; close all; clc; x=[165, 123, 150, 123, 141]; y=[187, 126, 172, 125, 148]; P=polyfit(x, y, 3) 运行结果: P= 1.0e+003 * -0.0000 0.0013 -0.1779 8.4330 所以它的线性拟合曲线为: P(x)=1.3x2-177.9x+8433 4. 已知多项式 P1(x)=3x+2,P2(x)=5x2−x+2, P3(x)=x2−0.5,求 : (1) P(x)=P1(x)P2(x)P3(x)。 (2) P(x)=0 的全部根。 (3) 计算 xi=0.2i (i=0,1,2,…,10)各点上的 P(xi)。 答: (1) 程序设计: clear all; close all; clc; P1=[0, 3, 2]; P2=[5, -1, 2]; P3=[1, 0, -0.5]; P=conv(conv(P1, P2), P3) 运行结果: P= 0 15.0000 7.0000 -3.5000 0.5000 -2.0000 -2.0000 所以 P(x)=15x5+7x4-3.5x3+0.5x2-2x-2 (2) 程序设计: r=roots(P) 运行结果: r= 0.7071 0.1000 + 0.6245i 0.1000 - 0.6245i -0.7071 -0.6667 (3) 程序设计: i=0:10; xi=0.2*i; Pxi=polyval(P, xi) 运行结果: Pxi =
matlab教程习题答案
matlab教程习题答案MATLAB教程习题答案MATLAB是一种广泛应用于科学计算和工程领域的高级编程语言和环境。
它的强大功能和灵活性使得许多人对其感兴趣,但对于初学者来说,掌握MATLAB 可能会有一些困难。
为了帮助大家更好地理解和掌握MATLAB,下面将给出一些常见的MATLAB教程习题的答案,希望能对大家有所帮助。
1. 编写一个MATLAB程序,计算1到100之间所有偶数的和。
答案:```matlabsum = 0;for i = 2:2:100sum = sum + i;enddisp(sum);```2. 编写一个MATLAB程序,生成一个10行10列的随机矩阵,并计算该矩阵的行和列的和。
答案:```matlabmatrix = rand(10, 10);row_sum = sum(matrix, 2);col_sum = sum(matrix);disp(col_sum);```3. 编写一个MATLAB程序,计算斐波那契数列的前20个数。
答案:```matlabfibonacci = zeros(1, 20);fibonacci(1) = 1;fibonacci(2) = 1;for i = 3:20fibonacci(i) = fibonacci(i-1) + fibonacci(i-2);enddisp(fibonacci);```4. 编写一个MATLAB程序,计算一个正整数的阶乘。
答案:```matlabnum = input('请输入一个正整数:');factorial = 1;for i = 1:numfactorial = factorial * i;end```5. 编写一个MATLAB程序,求解一个二次方程的根。
假设二次方程的形式为ax^2 + bx + c = 0,其中a、b、c为用户输入的系数。
答案:```matlaba = input('请输入二次方程的系数a:');b = input('请输入二次方程的系数b:');c = input('请输入二次方程的系数c:');delta = b^2 - 4*a*c;if delta < 0disp('该二次方程无实根。
中南大学matlab课后答案-第六章
实验指导二1,(1)>> A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];B=[,,]';x=A\B (2)>> A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];B=[,,]';x=A\B (3)>> cond(A)2,(1)建立函数文件,命令如下;Function fx=funx(x)fx=x^41+x^3+1;$调用fzero函数求根,命令如下;>> z=fzero(@funx,-1)(2) 建立函数文件,命令如下;Function fx=sin(x)fx=x-(sin(x))/x;调用fzero函数求根,命令如下;>> z=fzero(@sin,(3) 建立函数文件,命令如下;function q=myfun(p)x=p(1);、y=p(2);z=p(3);q(1)=sin(x)+y^2+log(z)-7;q(2)=3*x+2^y-z^3+1;q(3)=x+y+z-5;调用fsolve函数求根,命令如下;>> options=optimset('Display','off');x=fsolve(@myfun,[1,1,1]',options) 3,(1) 建立函数文件,命令如下;function yp=funt(t,y)>yp=-y*+sin(10*t));求微分方程,程序如下:>> t0=0;tf=5;y0=1;[t,y]=ode23(@funt,[t0,tf],y0)(2) 建立函数文件,命令如下;function yp=funr(t,y)yp=cos(t)-(y)/(1+t^2);求微分方程,程序如下:>> t0=0;tf=5;y0=1;[t,y]=ode23(@funr,[t0,tf],y0)4,建立函数文件命令如下:{function fx=mymax(x)fx=-1*(1+x^2)/(1+x^4);求最大值,程序如下:>> [x,y]=fminbnd(@mymax,0,2)5,编写目标函数M文件,命令如下:function f=fop(x)f=-1*(x(1)^(1/2)+x(2)^(1/2)+x(3)^(1/2)+x(4)^(1/2));设定约束条件,并调用fmincon函数求解此约束最优化问题,程序如下:>>x0=[200,200,200,200];%A=[1,0,0,0;,1,0,0;,,1,0;,,,1];b=[400,440,484,];Ib=[0,0,0,0];options=optimset('Display','off');[x,y]=fmincon(@fop,x0,A,b,[],[],Ib,[],[],options)思考练习1,(1)矩阵求逆:>> A=[2,3,5;3,7,4;1,-7,1];b=[10,3,5]';x=inv(A)*b矩阵除法:>> A=[2,3,5;3,7,4;1,-7,1];b=[10,3,5]';x=A\b!矩阵分解:>> A=[2,3,5;3,7,4;1,-7,1];b=[10,3,5]';[L,U]=lu(A);x=U\(L\b) (2)矩阵求逆:>>A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2];b=[-4,13,1,11]';x=inv(A)*b矩阵除法:>>A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2];b=[-4,13,1,11]';x=A\b矩阵分解:>> A=[6,5,-2,5;9,-1,4,-1;3,4,2,-2;3,-9,0,2];b=[-4,13,1,11]'; [L,U]=lu(A);x=U\(L\b)2,(1)建立函数文件,命令如下:function fx=fun1(x)fx=3*x+sin(x)-exp(x);调用fzero函数求根,命令如下;>> y=fzero(@fun1,、(2) 建立函数文件,命令如下:function fx=fun2(x)fx=1-(1/x)+5;调用fzero函数求根,命令如下;>> y=fzero(@fun2,1)(3) 建立函数文件,命令如下;function q=fun3(p)x=p(1);y=p(2);q(1)=x^2+y^2-9;'q(2)=x+y-1;调用fsolve函数求根,命令如下;>> options=optimset('Display','off');x=fsolve(@fun3,[1,1]',options) 3,(1)建立函数文件,命令如下:function ydot=fun5(t,y)ydot(1)=(2-3*y(2)-2*t*y(1))/(1+t^2);ydot(2)=y(1);ydot=ydot';求解微分方程,命令如下:'>> t0=0;tf=5;x0=[0,1];[t,y]=ode45(@fun5,[t0,tf],x0);[t,y](2) (1)建立函数文件,命令如下:function ydot=fun6(t,y)ydot(1)=cos(t)+(5*y(1)*cos(2*t))/(t+1)^2-y(2)-y(3)/(3+sin(t)); ydot(2)=y(1);ydot(3)=y(2);ydot=ydot';求解微分方程,命令如下:>> t0=0;tf=5;x0=[0,1];[t,y]=ode45(@fun5,[t0,tf],x0);[t,y]4,】建立函数文件命令如下:function fx=max(x)fx=-1*(sin(x)+cos(x^2));求最大值,程序如下:>> [x,y]=fminbnd(@mymax,0,pi)5,编写目标函数M文件,命令如下:function f=topm(x)f=-1*x*(3-2*x)^2;设定约束条件,并调用fmincon函数求解此约束最优化问题,程序如下:>>x0=[0];A=[1];b=[];Ib=[0];options=optimset('Display','off');[x,y]=fminco n(@top,x0,A,b,[],[],Ib,[],[],options)。
matlab习题与答案
matlab习题与答案
MATLAB习题与答案
MATLAB是一种强大的数学软件,广泛应用于工程、科学和金融等领域。
通过MATLAB,用户可以进行数据分析、图像处理、模拟建模等多种操作。
为了帮
助大家更好地掌握MATLAB的应用,我们为大家准备了一些习题与答案,希望
能够帮助大家更好地理解和掌握MATLAB的使用。
习题一:编写一个MATLAB程序,实现对给定矩阵的转置操作。
解答:可以使用MATLAB中的transpose函数来实现矩阵的转置操作。
例如,
对于一个3x3的矩阵A,可以使用以下代码实现转置操作:
A = [1 2 3; 4 5 6; 7 8 9];
B = transpose(A);
习题二:编写一个MATLAB程序,实现对给定矩阵的逆矩阵计算。
解答:可以使用MATLAB中的inv函数来实现对矩阵的逆矩阵计算。
例如,对
于一个3x3的矩阵A,可以使用以下代码实现逆矩阵计算:
A = [1 2 3; 4 5 6; 7 8 9];
B = inv(A);
习题三:编写一个MATLAB程序,实现对给定矩阵的特征值和特征向量计算。
解答:可以使用MATLAB中的eig函数来实现对矩阵的特征值和特征向量计算。
例如,对于一个3x3的矩阵A,可以使用以下代码实现特征值和特征向量计算:A = [1 2 3; 4 5 6; 7 8 9];
[V, D] = eig(A);
通过以上习题与答案的学习,相信大家对MATLAB的应用已经有了更深入的了
解。
希望大家能够多加练习,不断提升自己的MATLAB技能,为今后的工作和学习打下坚实的基础。
