MATLAB程序应用题及答案
MATLAB程序设计与应用课后习题答案

西安科技大学MATLAB程序设计专业:信息与计算科学班级:1001班学号:1008060129姓名:刘仲能2012年6月27日实验一2.已知:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=76538773443412A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=723302131B 求下列表达式的值:(1)A+6*B 和A-B+I (其中I 为单位矩阵) (2)A*B 和A.*B (3)A^3和A.^3 (4)A/B 及B\A (5)[A,B]和[A([1,3],:);B^2]3.设有矩阵A 和B ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=25242322212019181716151413121110987654321A ,⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡--=11134079423096171603B (1) 求它们的乘积C 。
(2) 将矩阵C 的右下角3×2子矩阵赋给D 。
(3) 查看MATLAB 工作空间的使用情况(1)(2)(3)4.完成下列操作(1)求[100,999]之间能被21整除的数的个数。
(2)建立一个字符串向量,删除其中的大写字母。
(1)(2)实验二3.建立一个5×5矩阵,求它的行列式值、迹、秩和范数。
运行截图:A 矩阵的行列式值、迹、秩分别如下:范数如下:4.已知 ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=5881252018629A求A 的特征值及特征向量,并分析其数学意义。
运行截图:5.下面是一个线性方程组:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡52.067.095.06/15/14/15/14/13/14/13/12/1321x x x (1) 求方程的解;(2) 将方程右边向量元素改为0.53,在求解,并比较的变化和解的相对变化;(3) 计算系数矩阵A 的条件数并分析结论。
(2)变大,其解中,相对未变化前的的解:x1变大,x2变小,x3变大。
(3)由于A 矩阵的条件数很大,故当线性方程组中的b 变大时,x也将发生很大的变化,即数值稳定性较差。
Matlab编程与应用习题和一些参考答案

Matlab编程与应用习题和一些参考答案Matlab 上机实验一、二3.求下列联立方程的解⎪⎪⎩⎪⎪⎨⎧=+-+-=-+=++-=--+41025695842475412743w z y x w z x w z y x w z y x >> a=[3 4 -7 -12;5 -7 4 2;1 0 8 -5;-6 5 -2 10];>> b=[4;4;9;4];>> c=a\b4.设⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡------=81272956313841A ,⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----=793183262345B ,求C1=A*B’;C2=A’*B;C3=A.*B,并求上述所有方阵的逆阵。
>> A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 -8];>> B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7];>> C1=A*B'>> C2=A'*B>> C3=A.*B>> inv(C1)>> inv(C2)>> inv(C3)5.设 ⎥⎦⎤⎢⎣⎡++=)1(sin 35.0cos 2x x x y ,把x=0~2π间分为101点,画出以x 为横坐标,y 为纵坐标的曲线。
>> x=linspace(0,2*pi,101);>> y=cos(x)*(0.5+(1+x.^2)\3*sin(x));>> plot(x,y,'r')6.产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。
并求该矩阵全体数的平均值和均方差。
(mean var )a=randn(8,6)mean(a)var(a)k=mean(a)k1=mean(k)i=ones(8,6)i1=i*k1i2=a-i1i3=i2.*i2g=mean(i3)g2=mean(g)10.利用帮助查找limit 函数的用法,并自己编写,验证几个函数极限的例子。
matlab程序设计例题及答案

matlab程序设计例题及答案1.编写程序:计算1/3+2/5+3/7+……+10/21法一: s=0;for i=1:10s=s+i/(2*i+1); end ss =法二:sum((1:10)./(3:2:21)) ans =2.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。
s=0;for i=1:100if mod(i,3)==0&&mod(i,7)==0 s=s+i; end,end ss =2103.画出y=n!的图,阶乘的函数自己编写,禁用MATLAB 自带的阶乘函数。
x=1:10; for i=1:10try y(i)=y(i-1)*i; catch y(i)=1; end,end plot(x,y)106123456789104.一个数恰好等于它的因子之和,这个数就称为完数。
例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。
编程找出20XX以内的所有完数。
g=;for n=2:20XX s=0;for r=1:n-1if mod(n,r)==0 s=s+r; end endif s==ng=[g n]; end end gg =6 28 4965.编写一个函数,模拟numel函数的功能,函数中调用size函数。
function y=numelnumel(x) m=size(x); y=m(1)*m(2);numelnumel([1 2 3;4 5 6])ans =66. 编写一个函数,模拟length函数的功能,函数中调用size函数。
function y=lengthlength(x) m=size(x);y=max(m(1),m(2));lengthlength([1 2 3;4 5 6])ans =37.求矩阵rand的所有元素和及各行平均值,各列平均值。
s=rand(5);sum=sum(sum(s)) mean2=mean(s,2) mean1=mean(s)sum =mean2 =mean1 =8.编程判断1001,1003,1007,1009,1011为素数,若不是,输出其约数。
大学matlab考试题及答案

大学matlab考试题及答案一、选择题(每题2分,共10分)1. MATLAB中用于创建向量的命令是?A. vectorB. arrayC. linspaceD. [ ]答案:D2. 以下哪个函数用于计算矩阵的行列式?A. detB. rankC. invD. eig答案:A3. 在MATLAB中,以下哪个命令用于绘制三维曲面?A. plot3B. surfC. meshD. contour答案:B4. MATLAB中,以下哪个函数用于求解非线性方程?A. fsolveB. fzeroC. linsolveD. solve答案:A5. 如何在MATLAB中创建一个全为1的3x3矩阵?A. ones(3,3)B. zeros(3,3)C. eye(3,3)D. rand(3,3)答案:A二、填空题(每题3分,共15分)1. 在MATLAB中,使用________函数可以计算矩阵的逆。
答案:inv2. 要将向量[1, 2, 3]转置成行向量,可以使用________运算符。
答案:.'3. MATLAB中,________函数用于计算两个矩阵的点乘。
答案:dot4. 若要在MATLAB中生成一个从0到1的100个等间隔的数,可以使用________函数。
答案:linspace5. 使用________函数可以在MATLAB中创建一个随机数矩阵。
答案:rand三、简答题(每题5分,共20分)1. 描述MATLAB中矩阵的基本操作有哪些?答案:矩阵的基本操作包括矩阵的创建、转置、加法、减法、乘法、点乘、求逆、行列式计算、特征值和特征向量的计算等。
2. MATLAB中如何实现循环结构?答案:MATLAB中可以使用for循环、while循环和switch-case结构来实现循环结构。
3. 简述MATLAB中函数定义的基本语法。
答案:MATLAB中函数定义的基本语法是:function [输出参数列表] = 函数名(输入参数列表)函数体end4. MATLAB中如何实现条件判断?答案:MATLAB中可以使用if-else语句、switch-case语句来实现条件判断。
MATLAB40道题与答案修正版

操作方法:首先点击File —New —M-File ,输入相应代码,然后点击运行按钮即可。
P1.已知两序列[]0.8{[][5]}nx n u n u n =--,[]{1,1,1,1,1}h n =计算两序列的卷积并绘制其波形。
%function a1 for i=1:5x(i)=0.8^(i-1); endh=[1 1 1 1 1]; y=conv(x,h) m=0:8;stem(m,y,'filled')P2。
已知复指数序列(1.52)[] 1.2j nx n e +=,绘制20点该序列的实部和虚部。
n=0:19;x=1.2*exp((1.5+j*2)*n); subplot(211); stem(n,real(x)); ylabel('real part'); xlabel('n'); legend('x[n]'); subplot(212); stem(n,imag(x)); ylabel('imag part'); xlabel('n'); legend('x[n]');P3.编写长度为5的中值滤波器程序。
原始未受干扰的序列为:s[n]=3[n(0.5) ]n ,加性噪声信号d[n]为随机序列,幅度0.4,分别绘制长度为40的受干扰序列,以及中值滤波器的输出。
% Program 2_5% Illustration of Median Filtering N = 5; R = 40;a = 0.8*rand(1,R)-0.4;b = round(a); % Generate impulse noise m = 0:R-1;s =3*m.*(0.5.^m); % Generate signalx = s + b; % Impulse noise corrupted signal y = medfilt1(x,N); % Median filtering subplot(2,1,1) stem(m,x);xlabel('n');ylabel('Amplitude');title('Impulse Noise Corrupted Signal'); subplot(2,1,2) stem(m,y);xlabel('n');ylabel('Amplitude'); title('Output of Median Filter'); P4. 已知序列x1[n]={2.2,3,1.5,4.2,1.8}, x2[n]= {0.8,1,1.6,0.8},x[n]=x1[n]∗x2[n] (卷积),分别绘制序列x1[n] ,x2[n]和x [n]的波形。
matlab20道试题及解答

试题1.“数学黑洞”:任意一个4位自然数,将组成该数的各位数字重新排列,形成一个最大数和一个最小数,之后两数相减,其差仍为一个自然数。
重复进行上述运算,最终会出现一个神秘的数,请编程输出这个神秘的数。
clear;a=input('请输入一个四位正整数:');str_a=num2str(a); %将a转化为一个字符串b_min=str2double(sort(str_a)); %形成最小数b_max=str2double(sort(str_a,'descend')); %形成最大数b=b_max-b_min; %求最大数与最小数之差while (b~=a)a=b;str_a=num2str(a); %将a转化为一个字符串b_min=str2double(sort(str_a)); %形成最小数b_max=str2double(sort(str_a,'descend')); %形成最大数b=b_max-b_min; %求最大数与最小数之差endb试题2.将数字1、2、3、4、5、6填入一个2行3列的表格中,要使得每一列右边的数字比左边的数字大,每一行下面的数字比上面的数字大。
请编写程序求出按此要求可有几种填写方法。
a(1)=1;a(6)=6;count=0; %用来计数b=perms('2345'); %产生2345的全排列[m,n]=size(b);for i=1:mtemp=b(i,:);a(2)=str2double(temp(1));a(3)=str2double(temp(2));a(4)=str2double(temp(3));a(5)=str2double(temp(4));if ((a(4)>a(2))&&(a(4)>a(3))&&(a(5)>a(3)))count=count+1;c=reshape(a,2,3); %将a向量转化为2*3矩阵输出disp(c);endenddisp(['共有',num2str(count),'种填写方法']); %输出填写方法的种数试题3.编写成绩排序程序。
MATLAB程序应用题及答案

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 为基本软件,来说明各个专业领域的教科书或工具书)。
第4章 MATLAB程序流程控制_习题答案

第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。
A A.函数文件可以在命令行窗口直接运行B.去掉函数文件第一行的定义行可转变成脚本文件C.脚本文件可以调用函数文件D.函数文件中的第一行必须以function开始2.下列程序的输出结果是( )。
Dy=10;if y==10y=20;elseif y>0y=30enddisp(y)A.1 B.30 C.10 D.203.有以下语句:a=eye(5);for n=a(2:end,:)for循环的循环次数是()。
CA.3 B.4 C.5 D.104.设有程序段k=10;whilekk=k—1end则下面描述中正确的是()。
AA.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段:x=reshape(1:12,3,4);m=0;n=0;for k=1:4if x(:,k)<=6m=m+1;elsen=n+1;endend则m和n的值分别是()。
CA.6 6 B.2 1 C.2 2 D.1 26.调用函数时,如果函数文件名与函数名不一致,则使用()。
A A.函数文件名B.函数名C.函数文件名或函数名均可D.@函数名7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。
BA.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c)C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z)8.执行语句“fn=@(x)10*x;",则fn是()。
AA.匿名函数B.函数句柄C.字符串D.普通函数9.执行下列语句后,变量A的值是( )。
D>> f=@(x,y) log(exp(x+y));〉〉 A=f(22,3);A.22,3B.22 C.3 D.2510.程序调试时用于设置断点的函数是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 为基本软件,来说明各个专业领域的教科书或工具书)。
哪一个领域的 MATLAB-based books 最多?中文书共有几本?答:1612本,数学方面的最多,中文书共有37本。
2.请在 MATLAB中直接输入下列常数,看它们的值是多少:a.ib.jc.epsd.infe.nanf.pig.realmaxh.realmin依次解为:ans = 0 + 1.0000i ans = 0 + 1.0000i ans =2.2204e-016ans =Inf ans = NaN ans =3.1416ans = 1.7977e+308 ans =2.2251e-3083.试写一函数 regPolygon(n),其功能为画出一个圆心在 (0, 0)、半径为 1 的圆,并在圆内画出一个内接正 n 边形,其中一顶点位于 (0, 1)。
例如 regPolygon(8) 可以画出如下之正八边型:解:新建regPolygon.m文件如下:function y=regPolyfon(n)n=8;%要画的n边形R=1; %圆的半径t=0:0.01:2*pi;x=R*cos(t);y=R*sin(t);m=linspace(pi/2,5/2*pi,n+1);xz=R*cos(m);yz=R*sin(m);hold onplot(x,y,xz,yz);axis 'equal';4.一条参数式的曲线可由下列方程式表示:x = sin(t), y = 1 - cos(t) + t/10当 t 由 0 变化到 4*pi 时,请写一个 MATLAB 的脚本 plotParam.m,画出此曲线在 XY 平面的轨迹。
解:新建plotParam.m:t = linspace(0, 4*pi);x = sin(t);y = 1-cos(t)+t/10;plot(x, y, '-o');5.当一个小圆轮沿着一条曲线行进时,轮缘任一点的轨迹就会产生变化丰富的摆线。
假设小圆轮的半径 r=2。
a.当小圆轮绕着一个大圆(半径 R=5)的外部滚动时,请画此「圆轮摆线」或「外花瓣线」。
b.重复上小题,但改成在大圆的内部滚动,请画出此「内花瓣线」。
提示:下图显示在不同的 R 和 r 值,所产生的圆轮摆线。
解:R=5;% 大圆半徑r=2;% 小圆半徑n=r/gcd(r, R);% 圈数t=linspace(0, n*2*pi, 1000);c=R*exp(i*t);% 內花瓣线c1=(R-r)*exp(i*t)+r*exp(i*(-R*t/r+t));% 外花瓣线c2=(R+r)*exp(i*t)+r*exp(i*(pi+R*t/r+t));plot(real(c), imag(c), real(c1), imag(c1), real(c2), imag(c2));axis imagetitle('內花瓣线(绿色)和外花瓣线(红色)');6.一个空间中的椭球可以表示成下列方程式:(x/a)2+(y/b)2+(z/c)2 = 1请使用任何你可以想到的方法,画出三维空间中的一个平滑的椭球,其中 a = 3,b = 4,c = 8。
(但不能使用 ellipsoid 指令。
)解:x=-3:0.1:3;y=-4:0.1:4;[X,Y]=meshgrid(x,y);Z1=sqrt(64-64*X.*X/9-16*Y.*Y);surf(X,Y,z1);hold onZ2=-sqrt(64-64*X.*X/9-16*Y.*Y);surf(X,Y,Z2);7.请用 ez 开头的绘图指令(例如 ezmesh、ezsurf、ezmeshc、ezsurfc、ezplot3、ezcontour 等),画出一个你认为最炫的立体图形。
Ezmesh:8.画出下列方程式的曲面图及等高线图:z = sin(x/2)cos(y)其中,x 的 21 个值均匀分布在 [-2*pi, 2*pi] 范围,y 的 31 值均匀分布在 [-1.5*pi, 1.5*pi]。
请使用 subplot(2,1,1) 和 subplot(2,1,2) 将产生的曲面图和等高线图在同一个窗口上,产生的图形应类似下图:解:x = linspace(-2*pi, 2*pi, 21);y = linspace(-1.5*pi, 1.5*pi, 31);[xx, yy] = meshgrid(x, y);zz = sin(xx/2).*cos(yy);subplot(2,1,1)surf(xx, yy, zz); axis imagesubplot(2,1,2)contour(xx, yy, zz); axis image-5059.假设一曲线资料点为x = 0:2:4*pi;y = sin(x).*exp(-x/5);试将 x 的间距调成 0.1,并用下列方法进行内插:a.线性内插法 (method='linear')。
b.Spline 内插法 (method='spline')。
c.三次多项式内插法 (method='cubic')。
d.多项式拟合法:直接利用 6 次多项式去通过 7 个资料点。
解:x = 0:2:4*pi;y = sin(x).*exp(-x/5);xx=0:0.1:4*pi;yyb=interp1(x,y,xx,'linear');yyc=interp1(x,y,xx,'spline');yyd=interp1(x,y,xx,'cubic');yye=polyval(polyfit(x,y,6),x);plot(xx,yya,xx,yyb,xx,yyc,xx,yyd,xx,yyd,x,y,'r*');legend('nearest','linear','spline','cubic','poly','source')gridtitle('2007***07**_张*')xlabel('x') ylabel('y')10.求下列函数的极小点:1) ()2123222118294x x x x x X f +-++=; 2) ()212122212223x x x x x x X f -+-+=; 3) ()()2241x 21+-=x X f . 第1),2)题的初始点可任意选取,第3)题的初始点取为()T00,1X =. 1)解: [x,feval]=fminunc(@(x)x(1)^2+4*x(2)^2+9*x(3)^2-2*x(1)-18*x(2),[3 1 2]) 解得:x =1.00002.2500 0.0000feval =-21.25002)解:[x,feval]=fminunc(@(x)x(1)^2+3/2*x(2)^2-2*x(1)*x(2)-x(1)+2*x(2),[1 2]) 解得:x =-0.5000 -1.0000feval =-0.75003)解:[x,feval]=fminunc(@(x)(x(1)-1)^4+x(2)^2,[0 1])解得:x =1.0045 -0.0000feval =4.0848e-010。