《MATLAB应用》大作业试卷
- 格式:doc
- 大小:39.50 KB
- 文档页数:2
MATLAB期末⼤作业学号:姓名:《Matlab/Simulink在数学计算与仿真中的应⽤》⼤作业1.假设地球和⽕星绕太阳运转的半径分别为r和2r,利⽤comet指令动画显⽰从地球到⽕星的转移轨迹(r可以任意取值,要求实时显⽰探测器、太阳、地球和⽕星的位置)。
解函数function comet(varargin)[ax,args,nargs] = axescheck(varargin{:});error(nargchk(1,3,nargs,'struct'));% Parse the rest of the inputsif nargs < 2, x = args{1}; y = x; x = 1:length(y); endif nargs == 2, [x,y] = deal(args{:}); endif nargs < 3, p = 0.10; endif nargs == 3, [x,y,p] = deal(args{:}); endif ~isscalar(p) || ~isreal(p) || p < 0 || p >= 1error('MATLAB:comet:InvalidP', ...'The input ''p'' must be a real scalar between 0 and 1.'); End指令 %particle_motiont = 0:5:16013;r1=6.7e6;%随便给定参数%---------------------------r2=2*r1;g=9.8;R=6.378e6;m=g*R^2;%内轨道v_inner=sqrt(m/r1);w_inner=v_inner/r1;x_inter=r1*cos(w_inner*t);y_inter=r1*sin(w_inner*t);%外轨道v_outer=sqrt(m/r2);w_outer=v_outer/r2;x_outer=r2*cos(w_outer*t);y_outer=r2*sin(w_outer*t);%控制器转移轨道a=(r1+r2)/2;E=-m/(2*a);V_near=sqrt(m*(2/r1-2/(r1+r2)));%转移轨道在近地点的速度V_far=sqrt(m*(2/r2-2/(r1+r2)));%转移轨道在远地点的速度h=r1*V_near;%由于在近地点的速度垂直于位置失量, h是转移轨道的⽐动量矩e=sqrt(1+2*E*h^2/m^2);%e为椭圆轨迹的偏⼼率TOF=pi*sqrt(a^3/m);%转移轨道是椭圆的⼀半及飞⾏时间是周期的⼀半(开普勒第三定律) w=pi/TOF;%椭圆轨迹的⾓速度c=a*e;b=sqrt(a^2-c^2);x_ellipse=a*cos(w*t)-0.5*r1;y_ellipse=b*sin(w*t);%动画显⽰运动轨迹x=[x_inter;x_outer;x_ellipse]';y=[y_inter;y_outer;y_ellipse]';comet(x,y)%---------------------------动态图像如下:2.利⽤两种不同途径求解边值问题dfdxf gdgdxf g f g=+=-+==34430001,,(),()的解.途径⼀:指令syms f g[f,g]=dsolve('Df=3*f+4*g,Dg=-4*f+3*g','f(0)=0,g(0)=1'); disp('f=');disp(f)disp('g=');disp(g)结果(Matlab 7.8版本)f=i/(2*exp(t*(4*i - 3))) - (i*exp(t*(4*i + 3)))/2g=exp(t*(4*i + 3))/2 + 1/(2*exp(t*(4*i - 3)))(Matlab 6.5版本)f=exp(3*t)*sin(4*t)g=exp(3*t)*cos(4*t)>>途径⼆:%problem2function dy=problem2(t,y)dy = zeros(2,1);dy(1) = 3*y(1)+4*y(2);dy(2) = -4*y(1)+3*y(2);[t,y] = ode45('problem2',[0 2],[0 1]);plot(t,y(:,1),'r',t,y(:,2),'b');图23.假设著名的Lorenz 模型的状态⽅程表⽰为-+-=+-=+-=)()()()()()()()()()()()(322133223211t x t x t x t x t x t x t x t x t x t x t x t x σρρβ其中,设28,10,3/8===σρβ。
matlab考试题目及答案1. 题目:编写一个MATLAB函数,实现计算并返回一个向量中所有元素的平方和。
答案:以下是一个简单的MATLAB函数,用于计算并返回一个向量中所有元素的平方和。
```matlabfunction sumOfSquares = calculateSumOfSquares(vector)sumOfSquares = sum(vector.^2);end```2. 题目:给定一个3x3的矩阵A,使用MATLAB编写代码,求出矩阵A 的转置。
答案:可以通过简单的转置操作来求得矩阵A的转置。
```matlabA = [1 2 3; 4 5 6; 7 8 9];A_transpose = A';```3. 题目:编写一个MATLAB脚本,实现对一个二维数组进行排序,并返回排序后的数组。
答案:以下是一个MATLAB脚本,用于对一个二维数组进行排序,并返回排序后的数组。
```matlabfunction sortedArray = sort2DArray(array)sortedArray = sort(array(:));end```4. 题目:给定一个向量x,使用MATLAB编写代码,计算并返回向量x的元素个数。
答案:可以通过内置函数`numel`来计算向量x的元素个数。
```matlabx = [1, 2, 3, 4, 5];numElements = numel(x);```5. 题目:编写一个MATLAB函数,实现计算并返回两个向量元素的点积。
答案:以下是一个简单的MATLAB函数,用于计算两个向量的点积。
```matlabfunction dotProduct = calculateDotProduct(vector1, vector2)dotProduct = dot(vector1, vector2);end```6. 题目:给定一个矩阵B,使用MATLAB编写代码,求出矩阵B的行列式。
《MATLAB语言及应用》期末大作业题目1.数组的创建和访问(20分,每小题2分):1)利用randn函数生成均值为1,方差为4的5*5矩阵A;2)将矩阵A按列拉长得到矩阵B;3)提取矩阵A的第2行、第3行、第2列和第4列元素组成2*2的矩阵C;4)寻找矩阵A中大于0的元素;]5)求矩阵A的转置矩阵D;6)对矩阵A进行上下对称交换后进行左右对称交换得到矩阵E;7)删除矩阵A的第2列和第4列得到矩阵F;8)求矩阵A的特政值和特征向量;9)求矩阵A的每一列的和值;10)求矩阵A的每一列的平均值;程序代码:clear;clc;A=1+sqrt(4)*randn(5) %生成均值为1,方差为4的5*5矩阵A;B=A(:) %将矩阵A按列拉长得到矩阵B;C=A([2 3],[2 4]) %提取矩阵A的第2行、第3行、第2列和第4列元素组成2*2的矩阵C;n=find(A>0) %寻找矩阵A中大于0的元素;x=A(n)D=A' %求矩阵A的转置矩阵D;E1=flipud(A); %对矩阵A进行上下对称交换后进行左右对称交换得到矩阵E;E=fliplr(E1)F=A(:,[1 3 5]) %删除矩阵A的第2列和第4列得到矩阵F;[Av,Ad]=eig(A) %求矩阵A的特征值和特征向量;S=sum(A,1) %求矩阵A的每一列的和值;Avg=S/5 %求矩阵A的每一列的平均值;运行结果:A =2.3333 2.1171 0.8568 2.1971 -0.7526-1.7853 0.4453 -3.8292 1.2944 0.4690 -1.6011 -1.5874 -0.3887 0.7971 0.3448 -0.2100 -0.7769 -1.7828 -4.2700 -1.3165 -1.9771 -0.9730 1.6593 1.0561 2.1601B =2.3333-1.7853-1.6011-0.2100-1.97712.11710.4453-1.5874-0.7769-0.97300.8568-3.8292-0.3887-1.78281.65932.19711.29440.7971-4.27001.0561-0.75260.46900.3448-1.31652.1601C =0.4453 1.2944-1.5874 0.7971n =167111516171820222325x =2.33332.11710.44530.85681.65932.19711.29440.79711.05610.46900.34482.1601D =2.3333 -1.7853 -1.6011 -0.2100 -1.97712.1171 0.4453 -1.5874 -0.7769 -0.97300.8568 -3.8292 -0.3887 -1.7828 1.65932.1971 1.2944 0.7971 -4.2700 1.0561-0.7526 0.4690 0.3448 -1.3165 2.1601E =2.1601 1.0561 1.6593 -0.9730 -1.9771-1.3165 -4.2700 -1.7828 -0.7769 -0.21000.3448 0.7971 -0.3887 -1.5874 -1.60110.4690 1.2944 -3.8292 0.4453 -1.7853-0.7526 2.1971 0.8568 2.1171 2.3333F =2.3333 0.8568 -0.7526-1.7853 -3.8292 0.4690-1.6011 -0.3887 0.3448-0.2100 -1.7828 -1.3165-1.9771 1.6593 2.1601Av =Columns 1 through 40.1004 + 0.2832i 0.1004 - 0.2832i0.6302 -0.5216-0.5969 -0.5969 -0.4811 0.0856 -0.4405 + 0.0006i -0.4405 - 0.0006i -0.3078 0.21200.2732 - 0.4899i 0.2732 + 0.4899i0.0244 -0.1780-0.0617 + 0.2024i -0.0617 - 0.2024i 0.5254 0.8025 Column 50.3903-0.49590.02180.1929-0.7511Ad =Columns 1 through 4-2.6239 + 1.7544i 0 0 00 -2.6239 - 1.7544i 0 00 0 -0.2434 00 0 0 3.54550 0 0 0Column 50 0 0 02.2257S =-3.2403 -0.7749 -3.4846 1.0747 0.9049Avg =-0.6481 -0.1550 -0.6969 0.2149 0.18102.符号计算(10分,每小题5分):1) 求方程组20,0uy vz w y z w ++=++=关于,y z 的解;2) 利用dsolve 求解偏微分方程,dx dyy x dt dt==-的解;程序代码:clc[u,v,w] = solve('u*y^2 + v*z + w = 0','y + z + w = 0','u,v,w')[x y]=dsolve('Dx=y','Dy=-x')运行结果:u =(-v*z+y+z)/y^2v =vw = -y-zx =-C1*cos(t)+C2*sin(t)y =C1*sin(t)+C2*cos(t)3.数据和函数的可视化(20分,每小题5分):1) 二维图形绘制:绘制方程2222125x y a a +=-表示的一组椭圆,其中0.5:0.5:4a =;程序代码:clccleara=0.5:0.5:4.5;t=-2*pi:0.1:2*pi;N=length(a); for i=1:1:Nx=a(i)*cos(t);y=sqrt(25-a(i).^2).*sin(t);plot(x,y)hold onend运行结果:-5-4-3-2-1123452) 利用plotyy 指令在同一张图上绘制sin y x =和10x y =在[0,4]x ∈上的曲线;程序代码:clcclearx=0:0.01:4;y1=sin(x); y2=10.^x;plotyy(x,y1,x,y2) %用双y 轴绘制二维图形运行结果:3) 用曲面图表示函数22z x y =+;程序代码:clcclear[X,Y] = meshgrid(-2:0.05:2); %产生xy 平面上的网格数据Z = X.^2 + Y.^2;surf(X,Y,Z) %绘着色曲面图hold off运行结果:4) 用stem 函数绘制对函数cos 4y t π=的采样序列;程序代码:clcclearfs=25;Ts=1/fs;n=1:1:200;yn=cos(pi*n*Ts/4);stem(n,yn) %绘离散数据的火柴杆图运行结果:4. 设采样频率为Fs = 1000 Hz ,已知原始信号为)150π2sin(2)80π2sin(t t x ⨯+⨯=,由于某一原因,原始信号被白噪声污染,实际获得的信号为))((ˆt size randn x x +=,要求设计出一个FIR 滤波器恢复出原始信号。
学号:姓名:《Matlab/Simulink在数学计算与仿真中的应用》大作业1.假设地球和火星绕太阳运转的半径分别为r和2r,利用comet指令动画显示从地球到火星的转移轨迹(r可以任意取值,要求实时显示探测器、太阳、地球和火星的位置)。
解函数function comet(varargin)[ax,args,nargs] = axescheck(varargin{:});error(nargchk(1,3,nargs,'struct'));% Parse the rest of the inputsif nargs < 2, x = args{1}; y = x; x = 1:length(y); endif nargs == 2, [x,y] = deal(args{:}); endif nargs < 3, p = 0.10; endif nargs == 3, [x,y,p] = deal(args{:}); endif ~isscalar(p) || ~isreal(p) || p < 0 || p >= 1error('MATLAB:comet:InvalidP', ...'The input ''p'' must be a real scalar between 0 and 1.'); End指令 %particle_motiont = 0:5:16013;r1=6.7e6;%随便给定参数%---------------------------r2=2*r1;g=9.8;R=6.378e6;m=g*R^2;%内轨道v_inner=sqrt(m/r1);w_inner=v_inner/r1;x_inter=r1*cos(w_inner*t);y_inter=r1*sin(w_inner*t);%外轨道v_outer=sqrt(m/r2);w_outer=v_outer/r2;x_outer=r2*cos(w_outer*t);y_outer=r2*sin(w_outer*t);%控制器转移轨道a=(r1+r2)/2;E=-m/(2*a);V_near=sqrt(m*(2/r1-2/(r1+r2)));%转移轨道在近地点的速度V_far=sqrt(m*(2/r2-2/(r1+r2)));%转移轨道在远地点的速度h=r1*V_near;%由于在近地点的速度垂直于位置失量, h是转移轨道的比动量矩e=sqrt(1+2*E*h^2/m^2);%e为椭圆轨迹的偏心率TOF=pi*sqrt(a^3/m);%转移轨道是椭圆的一半及飞行时间是周期的一半(开普勒第三定律)w=pi/TOF;%椭圆轨迹的角速度c=a*e;b=sqrt(a^2-c^2);x_ellipse=a*cos(w*t)-0.5*r1;y_ellipse=b*sin(w*t);%动画显示运动轨迹x=[x_inter;x_outer;x_ellipse]';y=[y_inter;y_outer;y_ellipse]';comet(x,y)%---------------------------动态图像如下:2.利用两种不同途径求解边值问题dfdxf gdgdxf g f g=+=-+==34430001,,(),()的解.途径一:指令syms f g[f,g]=dsolve('Df=3*f+4*g,Dg=-4*f+3*g','f(0)=0,g(0)=1');disp('f=');disp(f)disp('g=');disp(g)结果(Matlab 7.8版本)f=i/(2*exp(t*(4*i - 3))) - (i*exp(t*(4*i + 3)))/2g=exp(t*(4*i + 3))/2 + 1/(2*exp(t*(4*i - 3)))(Matlab 6.5版本)f=exp(3*t)*sin(4*t)g=exp(3*t)*cos(4*t)>>途径二:%problem2function dy=problem2(t,y)dy = zeros(2,1);dy(1) = 3*y(1)+4*y(2);dy(2) = -4*y(1)+3*y(2);[t,y] = ode45('problem2',[0 2],[0 1]);plot(t,y(:,1),'r',t,y(:,2),'b');图23.假设著名的Lorenz 模型的状态方程表示为⎪⎩⎪⎨⎧-+-=+-=+-=)()()()()()()()()()()()(322133223211t x t x t x t x t x t x t x t x t x t x t x t x σρρβ 其中,设28,10,3/8===σρβ。
MATLAB程序:1、求解准则层对目标层的权重向量w以及最大特征值d>> A=[1 2 4;1/2 1 2;1/4 1/2 1];>> [v,d]=eig(A)v =-0.9631 0.8729 00.2408 0.4364 -0.89440.1204 0.2182 0.4472d =-0.0000 0 00 3.0000 00 0 0>> w=v(:,2)/sum(v(:,2))w =0.57140.28570.14292、求解第三层对第二层的权重向量w1,w2,w3及对应的最大特征值d1,d2,d3,并进行一致性检验>> B1=[1 3 2;1/3 1 1/2;1/2 2 1];>> [w1,d1]=eig(B1)w1 =-0.8468 0.8468 0.8468-0.2565 -0.1282 - 0.2221i -0.1282 + 0.2221i-0.4660 -0.2330 + 0.4036i -0.2330 - 0.4036id1 =3.0092 0 00 -0.0046 + 0.1663i 00 0 -0.0046 - 0.1663i>> w1=w1(:,1)/sum(w1(:,1))w1 =0.53960.16340.2970>> CI=(3.0092-3)/(3-1)CI =0.0046>> RI=0.58;>> CR=CI/RICR =0.0079>> B2=[1 3 9;1/3 1 3;1/9 1/3 1];>> [w2,d2]=eig(B2)w2 =-0.9435 0.4427 0.9392-0.3145 -0.8643 -0.3433-0.1048 0.2389 0.0101d2 =3.0000 0 00 0.0000 00 0 -0.0000>> w2=w2(:,1)/sum(w2(:,1))w2 =0.69230.23080.0769>> B3=[1 3 5;1/3 1 2;1/5 1/2 1];>> [w3,d3]=eig(B3)w3 =-0.9281 0.9281 0.9281 -0.3288 -0.1644 + 0.2847i -0.1644 - 0.2847i -0.1747 -0.0873 - 0.1513i -0.0873 + 0.1513id3 =3.0037 0 0 0 -0.0018 + 0.1053i 0 0 0 -0.0018 - 0.1053i >> CI=(3.0037-3)/(3-1)CI =0.0018>> RI=0.58;>> CR=CI/RICR =0.0032>> w3=w3(:,1)/sum(w3(:,1))w3 =0.64830.22970.1220>> w4=w1*w(1,:)Q1,Q2,Q3对O层的组合权重为w4 =0.30840.09340.1697Q4,Q5,Q6对O层的组合权重为>> w5=w2*w(2,:)w5 =MatLab考试题(必做题)姓名:学号:班级:1.请登陆美国 MathWorks 公司的网站 (),查看看现在大概有多少本 MATLAB-based books (以 MATLAB 为基本软件,来说明各个专业领域的教科书或工具书)。
一、 程序分析题1、命令窗口中输入如下命令,在%号后写出每行命令的功能。
(不用写出运算结果) A=1; f0=4; phi=pi/3; w0=2*pi*f0;t=0:0.01:1; %__________________________________________ y=A*cos(w0*t+phi) ;axis off %__________________________________________ PT=plot(t,y); %__________________________________________ set(PT,’LineWidth ’,[5]); %__________________________________________ AX=gca; %__________________________________________ set(AX,’FontSize ’,14); %__________________________________________ axis square %__________________________________________ xlabel(‘时间[s]’); %__________________________________________ T=title(‘余弦波’) %__________________________________________ set(T,’FontSize ’,’16’); %__________________________________________ legend(‘cos ’); %__________________________________________ grid on %__________________________________________二、 程序设计题2、已知两个矩阵:3765213100132610A ---⎡⎤⎢⎥---⎢⎥=⎢⎥-⎢⎥-⎣⎦,1468237021570010B ⎡⎤⎢⎥⎢⎥=⎢⎥--⎢⎥-⎣⎦将矩阵A 中所有等于-1的元素改为3,将矩阵B 中等于0的元素值改为新的矩阵A 中相应位置元素的值,最后将新的矩阵A 的第三、四列的元素全改为-1,编写相应的程序。
MATLAB语言及应用大作业姓名:学号:班级:1.利用plot函数在区间[0,2π]同时绘制x=sin(t)和y=cos(t),z=sin(t)+cos(t)的图形。
要求:1)对图像x轴和y轴分别标注“时间”和“函数值”2)对曲线加图例标注,图例位置自动定位(12分)。
>> t=[0:0.1*pi:2*pi];>> x=sin(t);>> y=cos(t);>> z=sin(t)+cos(t);>> plot(t,x,t,y,t,z)>> xlabel('时间')>> ylabel('函数值')>> legend('x=sin(t)','y=cos(t)','z=sin(t)+cos(t)')2. 求2!+4!+6!+8!+10! (12分)sum=0;for i=2:2:10pdr=1;for k=2:ipdr=pdr*k;endsum=sum+pdr;end在M文件编辑窗口编写上述程序,保存为exam02.m文件;在MATLAB命令窗口执行命令:>>exam02>>sumsum =36698663.编写m 函数,计算函数值(12分)221,10002,,0≥<≤<≤<⎪⎪⎩⎪⎪⎨⎧-=x x x x x x y 编写函数代码function f=exam03(t) if(t<0) f=0;elseif(t>=0)&(t<1) f=t;elseif(t>=1)&(t<=2) f=2-t; else f=0; end在M 文件编辑窗口编写上述程序,保存为exam03.m 文件在MATLAB 命令窗口输入: >> x=1;>> y=exam07(x) y = 14.计算下面矩阵的特征值、特征向量、迹和秩。
学院数学与计算机科学出卷教师周静系主任签名
制卷份数专业班级编号 B09082051 江汉大学2011 ——2012 学年第1 学期
考试试卷
课程编号:课程名称:《MATLAB应用》
试卷类型:A[ ]、B[ ]卷考试形式:开[√]、闭[]卷考试时间: 120 分钟
考试说明:根据课程特点,考试采取大作业的考核形式。
为了考核学生对该课程基本理论、基本知识点的掌握程度,要求学生必须满足考试具体要求;同时,为了充分发挥学生的自我能动性、积极性、创造性,要求学生在满足基本要求的前提下,可以根据个人的能力充分发挥。
第一部分考试具体要求
在课程教学和查阅相关文献资料的基础上,运用MATLAB开发工具,并选择以下其中一个图像处理技术专题,自行选定原始图像进行仿真实验,并完成大作业报告。
大作业专题:
1. 图像边缘检测技术研究;
2. 图像阈值分割技术研究;
3. 图像压缩技术研究;
具体要求如下:
1. 综述性部分:查阅相关文献资料,了解和掌握基本原理、方法和研究现状,以及实际应用的背景意义;
2. 选定某一个技术专题后,具体分析讨论该专题中的2-3种处理算法;也可对某一种具体的算法进行改进研究。
在此基础上,运用MATLAB开发工具对所给的原始图像进行计算机仿真实验,给出相应的仿真实验数据和处理结果图像;
3. 对各算法相应的仿真实验结果和数据进行分析比较,最后得出相应的结论(如各算法针对同一副图片实现效果的优劣比较等结论,并分析原因);
4. 给出主要参考文献目录。
凡是引用参考文献中的结论或结果应在大作业报告中具体注明。
第二部分上交考试形式
考试上交内容包括:
1、程序源代码;
2、原始图片及效果图,将每个题主要效果截图保存为jpg格式;
3、大作业报告——word文档。
上交形式:
1. 每个学生建立一个文件夹,文件夹的名字为:姓名+学号。
2. 文件夹下建立三个子文件夹:一个保存源代码、一个保存效果图、一个保存大作业
word文档。
如图所示。
第三部分考试评分标准
1. 完全达到具体要求中的4个方面,代码能正常编译、运行且运行结果与报告中的结果完全一致,报告书写规范,上交材料完整,评为优秀(100-90);
2. 完全达到具体要求中的4个方面,代码能正常编译、运行且运行结果与报告中的结果完全一致,报告书写较为规范,上交材料完整,评为良好(89-80);
3. 部分达到具体要求中的4个方面,代码能正常编译、运行且运行结果与报告中的结果完全一致,报告书写较为规范,上交材料完整,评为中等(79-70);
4. 部分达到具体要求中的4个方面,代码能正常编译、运行及运行结果与报告中的结果一致,报告书写不规范,上交材料完整,评为及格(69-60)。
5. 未达到具体要求中的4个方面,代码不能正常编译、运行及运行结果与报告中的结果不一致,报告书写不规范,上交材料不完整,评为不及格(59-0)。