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.程序调试时用于设置断点的函数是()。
915204-MATLAB程序设计与应用-第1章 MATLAB系统环境_习题答案
第1章 MATLAB系统环境习题1一、选择题1.最初的MA TLAB核心程序是采用()语言编写的。
AA.FORTRAN B.C C.BASIC D.PASCAL2.2016年3月发布的MA TLAB版本的编号为()。
BA.MA TLAB 2016Ra B.MA TLAB R2016aC.MATLAB 2016Rb D.MA TLAB R2016b3.下列选项中能反应MA TLAB特点的是()。
DA.算法最优B.不需要写程序C.程序执行效率高D.编程效率高4.当在命令行窗口执行命令时,如果不想立即在命令行窗口中输出结果,可以在命令后加上()。
CA.冒号(:)B.逗号(,)C.分号(;)D.百分号(%)5.如果要重新执行以前输入的命令,可以使用()。
DA.左移光标键(←)B.右移光标键(→)C.下移光标键(↓)D.上移光标键(↑)6.MA TLAB命令行窗口中提示用户输入命令的符号是()。
BA.> B.>> C.>>> D.>>>>7.plot(x,y)是一条()命令。
CA.打印B.输出C.绘图D.描点8.以下两个命令行的区别是()。
A>> x=5,y=x+10>> x=5,y=x+10;A.第一个命令行同时显示x和y的值,第二个命令行只显示x的值B.第一个命令行同时显示x和y的值,第二个命令行只显示y的值C.第一个命令行只显示x的值,第二个命令行同时显示x和y的值D.第一个命令行只显示y的值,第二个命令行同时显示x和y的值9.下列命令行中,输出结果与其他3项不同的是()。
DA.>> 10+20+... B.>> ...30 10+20+30C.>> 10+20+30%5 D.>> %10+20+3010.下列选项中,不是MATLAB帮助命令的是()。
CA.lookfor B.lookfor –all C.search D.help二、填空题1.MA TLAB一词来自的缩写。
matlab习题及答案
matlab习题及答案《Matlab习题及答案:提升编程技能,解决实际问题》Matlab是一种强大的数值计算和数据分析工具,它被广泛应用于工程、科学和其他领域的计算和模拟。
为了帮助大家提升编程技能,解决实际问题,我们为大家准备了一些Matlab习题及答案,希望能够帮助大家更好地掌握Matlab的使用。
1. 习题一:编写一个Matlab程序,计算斐波那契数列的前20个数字,并将结果打印出来。
答案:下面是一个简单的Matlab程序,用于计算斐波那契数列的前20个数字。
```matlaba = 0;b = 1;fib = zeros(1, 20);fib(1) = a;fib(2) = b;for i = 3:20fib(i) = fib(i-1) + fib(i-2);enddisp(fib);```2. 习题二:编写一个Matlab程序,求解一个二次方程ax^2 + bx + c = 0的根。
答案:下面是一个简单的Matlab程序,用于求解二次方程的根。
```matlaba = 1;b = -3;c = 2;delta = b^2 - 4*a*c;if delta > 0x1 = (-b + sqrt(delta))/(2*a);x2 = (-b - sqrt(delta))/(2*a);disp(['The roots are ', num2str(x1), ' and ', num2str(x2)]);elseif delta == 0x = -b/(2*a);disp(['The root is ', num2str(x)]);elsedisp('The equation has no real roots');end```通过以上两个习题及答案的示例,我们可以看到Matlab的强大功能和灵活性。
通过练习这些习题,我们可以更好地掌握Matlab的基本语法和常用函数,从而在实际问题中更快更准确地解决数值计算和数据分析的挑战。
matlab简单编程21个题目及答案
1、设⎥⎦⎤⎢⎣⎡++=)1(sin35.0cos2xxxy,把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的曲线。
第一题的matlab源程序:①考虑cos(x)为一个整体,然后乘以中括号里面的全部x=0:2*pi/100:2*pi; %x的步长以及范围从0到2*pi y=cos(x).*(0.5+3*sin(x)./(1+x.^2)); %y的表达式plot(x,y)%画出图形图如下:②考虑对整体求解cos,先求x乘以括号中的部分x=0:2*pi/100:2*pi; %x的步长以及范围从0到2*pi y=cos(x.*(0.5+3*sin(x)./(1+x.^2))); %y的表达式plot(x,y) %画出图形图如下:2、产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。
并求该矩阵全体数的平均值和均方差。
第二题的matlab源程序如下:R1=randn(8,6) %产生正态分布随机矩阵R1 =1.0933 -0.7697 1.5442 -0.1924 1.4193 0.21571.1093 0.3714 0.0859 0.8886 0.2916 -1.1658-0.8637 -0.2256 -1.4916 -0.7648 0.1978 -1.14800.0774 1.1174 -0.7423 -1.4023 1.5877 0.1049-1.2141 -1.0891 -1.0616 -1.4224 -0.8045 0.7223-1.1135 0.0326 2.3505 0.4882 0.6966 2.5855-0.0068 0.5525 -0.6156 -0.1774 0.8351 -0.66691.5326 1.1006 0.7481 -0.1961 -0.2437 0.1873aver=(sum(R1(1:end,1:end)))./8 %产生各行的平均值aver =0.0768 0.1363 0.1022 -0.3473 0.4975 0.1044a=std(R1(1:end,1:end)) %产生各行的均方差也就是标准差a =1.0819 0.8093 1.3456 0.8233 0.8079 1.2150aver1=(sum(R1(:)))./48 %全体数的平均值aver1 =0.0950b=std(R1(:)) %全体数的均方差即标准差b =1.01033、设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=0~10区间生成的x~y 曲线。
matlab程序设计与应用习题答案
matlab程序设计与应用习题答案Matlab程序设计与应用习题答案Matlab是一种强大的数学软件,被广泛应用于科学计算、数据分析和工程模拟等领域。
无论是学术界还是工业界,Matlab都扮演着重要的角色。
在学习和应用Matlab时,我们常常会遇到一些习题,下面我将为大家提供一些常见习题的解答。
习题一:编写一个Matlab程序,计算一个数列的和。
数列的定义如下:a(1) = 1, a(n) = a(n-1) + 2*n, 其中n大于等于2。
解答一:```matlabfunction sum = calculate_sum(n)a = zeros(1, n);a(1) = 1;for i = 2:na(i) = a(i-1) + 2*i;endsum = sum(a);end```习题二:编写一个Matlab程序,求解一个线性方程组。
方程组的定义如下:2x + 3y + z = 7, 3x - 2y + 2z = 5, x + y - z = 3。
解答二:```matlabfunction [x, y, z] = solve_equations()A = [2, 3, 1; 3, -2, 2; 1, 1, -1];b = [7; 5; 3];solution = A\b;x = solution(1);y = solution(2);z = solution(3);end```习题三:编写一个Matlab程序,实现矩阵的转置操作。
解答三:```matlabfunction transposed_matrix = transpose_matrix(matrix) [m, n] = size(matrix);transposed_matrix = zeros(n, m);for i = 1:mfor j = 1:ntransposed_matrix(j, i) = matrix(i, j);endendend```习题四:编写一个Matlab程序,实现矩阵的相乘操作。
matlab练习题及答案详解(附程序)
Matlab练习题及答案详解一、基础题1、下表为1)2) 把任意两点距离的表中,自己到自己的距离,转变成无穷大clcclearclose alldata=xlsread('ti1.xls');%从excel里导入数据x=data(1,:);%将data里第一行的所有列赋值给xy=data(2,:);%将data里第二行的所有列赋值给xn=length(x);%表x的长度dis=zeros(n,n);%对距离表进行初始化for i=1:nfor j=1:ndis(i,j)=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2);%平面坐标距离公式endenddis(dis==0)=inf;%将距离表中为0的数值,变成无穷大redis=dis;2、按要求步骤,操作下表要求:1) 对每列进行[0,1]区间化'(min())/(max min())=--;x x x x2) 把区间化后的表的右边3列,连接在左边3列下边,构成16行3列的表;3) 把16行3列进行转置,得到3行16列的表。
然后对列进行操作,把3行16列的表变成一列,后转置成一行,得到最终的结果。
clcclearclose allx=load('ti2.txt');%从txt里导入数据big=max(x);small=min(x);%算出每列的最大最小值[m,n]=size(x);%表x的行和列的大小newx1=zeros(m,n);%对newx1进行初始化,大小和初始x一样大for i=1:nnewx1(:,i)=(x(:,i)-small(i))./(big(i)-small(i));endnewx2=zeros(2*m,n/2);%对最新的表进行初始化大小为,行为newx1的2倍,列为一半newx2(1:m,1:n/2)=newx1(1:m,1:n/2);%把左边3列不操作的值,直接赋值给newx2上边newx2(m+1:end,1:n/2)=newx1(1:m,n/2+1:end);%把右边的3列,赋值给newx2下边[p,q]=size(newx2);%表newx2的行和列的大小 newx3=zeros(p*q,1);%对newx3进行初始化 for j=1:qnewx3((j-1)*p+1:j*p,1)=newx2(:,q);%对newx3进行操作 end% newx3=reshape(newx2,[],1); renewx=newx3';%最终的结果3、数值运算1)用matlab 求下列式子极限(a) lim x → (b) 0x →2)用matlab 求下列函数的导数(a)22sin (1)y x =+ (b) arccos()(,)x f x y ye =3)用matlab 求下列式子的定积分(a) 4⎰(b) 312-⎰⎰clc clear %===求极限 %====3.1.a=== syms xy=(x^(1/2)-8)/(x^(1/3)-4);re1a=limit(y,x,64)%====3.1.b===syms xy=((x^2-2*x+4)^(1/2)-2)/x;re1b=limit(y,x,0)%===求导数%====3.2.a===syms xf=(sin(x^2+1))^2;re2a=diff(f,x)%对x求导%====3.2.b===syms x yf=y*exp(acos(x));re2bx=diff(f,x)%对x求偏导re2by=diff(f,y)%对y求偏导%===求定积分===%====3.3.a===syms xre3a=int((x+2)/(2*x+1)^(1/2),x,0,4)%一重积分%====3.3.b===syms x yre3b=int(int(y/(x^2-1),x,-2,-sqrt(2)),y,1,3)%二重积分二、提高题1、画一个正五边形,边长自定。
(完整版)第4章MATLAB程序流程控制_习题答案
第4章 MATLAB程序流程控制习题4一、选择题1.下列关于脚本文件和函数文件的描述中不正确的是()。
AA.函数文件可以在命令行窗口直接运行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;while kk=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.程序调试时用于设置断点的函数是()。
Matlab考试题库及答案(教师出卷参考专用)
Matlab考试题库及答案(教师出卷参考专用)一、选择题1.以下哪个函数用于在Matlab中创建一个图形窗口?A. figureB. plotC. graphD. window答案:A2.在Matlab中,以下哪个选项可以用来定义一个矩阵?A. A = [1 2 3; 4 5 6]B. A = (1, 2, 3, 4, 5, 6)C. A = {1, 2, 3, 4, 5, 6}D. A = 1 2 3; 4 5 6答案:A3.以下哪个函数用于求解线性方程组Ax=b?A. solveB. linsolveC. solve(A, b)D. linsolve(A, b)答案:D4.在Matlab中,如何计算矩阵A和矩阵B的乘积?A. A BB. A \ BC. A . BD. A .\ B答案:A5.以下哪个函数用于在Matlab中绘制三维散点图?A. scatterB. scatter3C. plot3D. bar3答案:B二、填空题1.在Matlab中,要创建一个名为"myfig"的图形窗口,可以使用______函数。
答案:figure('Name', 'myfig')2.在Matlab中,要计算矩阵A的行列式,可以使用______函数。
答案:det(A)3.在Matlab中,若要计算变量x的平方,可以使用______运算符。
答案:.^24.在Matlab中,若要计算矩阵A的逆矩阵,可以使用______函数。
答案:inv(A)5.在Matlab中,要绘制一个正弦波形,可以使用______函数。
答案:plot(sin(x))三、判断题1.在Matlab中,矩阵的索引从1开始计数。
()答案:正确2.在Matlab中,可以使用逻辑运算符"&&"和"||"。
()答案:错误3.在Matlab中,矩阵乘法满足交换律。
MATLAB习题与参考答案
习题:6 9 3 2 4 1 1, 计算 a7 5与 b6 的数组乘积。
2 4 84 9 2 372, 对于 AXB ,如果 A 7 6 4 , B26 ,求解 X 。
3 5 7281 2 33, 已知: a 4 5 6 ,分别计算 a 的数组平方和矩阵平方,并观察其结果。
7 8 94, 角度 x 30 45 60 ,求 x 的正弦、余弦、正切和余切。
(应用 sin,cos,tan.cot)5, 将矩阵 a4 2 、 b7 15 95 7 8和 c组合成两个新矩阵:36 2( 1)组合成一个 4 3 的矩阵,第一列为按列顺序排列的a 矩阵元素,第二列为按列顺序排列的b 矩阵元素,第三列为按列顺序排列的c 矩阵元素,即4 75 5 86 2 1 9 73 2( 2)按照 a 、 b 、 c 的列顺序组合成一个行矢量,即45 2 7 7 8 1 3 5 69 26, 将 (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, 计算多项式 4x 412 x 3 14 x 25x9 的微分和积分。
(应用 polyder,polyint , poly2sym)2 9 0 1310, 解方程组3 4 11 x 6 。
(应用 x=a\b)2 26611, 求欠定方程组2 4 7 4 89 35 x的最小范数解。
(应用 pinv)654 2 612, 矩阵 a 7 54 ,计算 a 的行列式和逆矩阵。
(应用 det,inv)3 4913, y=sin(x),x 从 0 到 2 , x=0.02 ,求 y 的最大值、 最小值、 均值和标准差。
(应用 max,min,mean,std) 14, 参照课件中例题的方法,计算表达式z 10 x 3y 5 e x 2 y 2的梯度并绘图。
MatLab语言及应用--习题及参考答案
MatLab语言及应用--习题1.产生一个1x10的随机矩阵,大小位于(-5 5),并且按照从大到小的顺序排列好!1.A = [21 2 3; 4 35 6; 7 8 49];B = [3; 2; 1];设求AB、BTA、A-1与A-1B,求A2、A的2次数幂,并求矩阵A的秩、转置和行列式。
2.请产生一个100*5的矩阵,矩阵的每一行都是[1 2 3 4 5]4. 请修改下面的程序,让他们没有for循环语句!A=[1 2 3; 4 5 6; 7 8 9];[r c]=size(A);for i=1:1:rfor j=1:1:cif (A(i,j)>8 | A(i,j)<2)A(i,j)=0;endendend5.a=[1 2 3 4 5],b=a(1)*a(5)+a(2)*a(4)+a(3)*a(3)+a(4)*a(2)+a(5)*a(1).试用MATLAB中最简单的方法计算b,注意最简单。
6. 求下列联立方程的解3x+4y-7z-12w=45x-7y+4z+ 2w=-3x +8z- 5w=9-6x+5y-2z+10w=-8求系数矩阵的秩;求出方程组的解。
7.设 y=cos[0.5+((3sinx)/(1+x^2))]把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的曲线;8. 设f(x)=x^5-4x^4+3x^2+2x+6取x=[-2,8]之间函数的值(取100个点),画出 曲线,看它有几个零点。
9. 在[-10,10;-10,10]范围内画出函数的三维图形。
10.编写一个函数,使其能够产生如下的分段函数:⎪⎩⎪⎨⎧≤≤<-≤=x x x x x x f 65.0620.251.525.0)(,,,,并调用此函数,绘制曲线2)()(范围的2],[0在+•+=x f x f x 。
(10分)11.将一个屏幕分4幅,选择合适的步长在右上幅与左下幅绘制出下列函数的图形。
MATLAB程序设计应用试卷与答案
研究生课程考试试题
课程名称:MATLAB 程序设计与应用
1/3 3 2
考试形式: 开 卷
2/3
试卷: A
5.解:构造函数 f(t)=H(t)-G(t)=13-t-3t =0 ;
姓名:
alpha=0:pi/1000:pi/3; y1=750*cos(alpha); y2=800*cos(pi/3-alpha); plot(alpha,y1,'g-',alpha,y2,'r')
线
grid on 运行得到的效果图如下:
订
②
t=3.6768 -21.4316i; x=0:0.01:t; y=13-x-3*x.^(2/3); trapz(x,y)
令 t =x,则 f(t)=-t -3t +13 可得矩阵 P=[-1,-3,0,13] 求最佳生产时间的源程序如下: p=[-1,-3,0,13]; x=roots(p); t=x.^3 运行结果如下: t = 3.6768 +21.4316i 3.6768 -21.4316i 4.6465 再分别将 t 的三个值带入函数 f(t),比较大小后,得到最大利润与最佳生产时间。 求最大利润的程序代码如下: ① t=3.6768 +21.4316i; x=0:0.01:t; y=13-x-3*x.^(2/3); trapz(x,y) 运行结果: ans = 25.2583
姓名:
订
二、分别利用数值积分法、符号积分法和 Simulink 仿真求 I=
03MATLAB应用题目的答案
03MATLAB应用题目的答案题目描述:请使用MATLAB编写一个程序,实现以下功能:1.输入一个数字n,判断其是否为质数。
2.输入一个整数n,输出1到n之间的所有质数。
3.输入一个数字n,输出小于等于n的斐波那契数列。
解答:1. 判断质数要判断一个数字n是否为质数,只需要判断它能否被2到sqrt(n)之间的数字整除。
若能整除,则说明n不是质数,否则n是质数。
下面是MATLAB的代码实现:function result = isPrime(n)if n <= 1result = false;return;endfor i = 2:sqrt(n)if mod(n, i) == 0result = false;return;endendresult = true;end2. 输出质数要输出1到n之间的所有质数,可以使用上面的判断质数函数,在循环中判断从1到n之间的每个数字是否为质数。
如果是质数,则输出该数字。
下面是MATLAB的代码实现:function printPrimes(n)for i = 1:nif isPrime(i)disp(i);endendend3. 输出斐波那契数列斐波那契数列是一个递归定义的数列,其中第n个数字是前两个数字之和。
可以使用循环来输出小于等于n的斐波那契数列。
下面是MATLAB的代码实现:function printFibonacci(n)if n == 0disp(0);return;enda = 0;b = 1;disp(a);disp(b);for i = 3:nc = a + b;if c > nbreak;enddisp(c);a = b;b = c;endend示例以下是使用上述函数的示例:% 判断质数示例isPrime(7) % 输出trueisPrime(10) % 输出false% 输出质数示例printPrimes(10) % 输出2 3 5 7% 输出斐波那契数列示例printFibonacci(10) % 输出0 1 1 2 3 5 8以上就是MATLAB应用题目的答案。
03MATLAB应用题目的答案
03MATLAB应用题目的答案1. 题目描述在MATLAB中,编写程序计算下列数列的前n项和:an = n2 + 2n + 12. 程序设计MATLAB 中的数列求和问题可以通过for循环结构来解决。
下面是解决此问题的 MATLAB 程序:function sum = calculateSum(n)sum = 0;for i = 1:nterm = i^2 + 2*i + 1;sum = sum + term;endend3. 测试和结果分析为了测试这个程序的准确性,我们将计算前几项的和,并与手工计算的结果进行比较。
接下来,我们编写另一个 MATLAB 程序来执行测试并输出结果:n = 5; % 将要计算的数列项数result = calculateSum(n);fprintf('前 %d 项的和为:%d\', n, result);运行上述测试程序,将得到以下结果:前 5 项的和为:55我们可以手动验证以下数列的前五项和为55,因此可以得出结论,此程序计算的和是正确的。
4. 性能分析此程序的时间复杂度是O(n),其中n是要计算的数列项数。
因此,随着n的增大,程序的执行时间也会线性增长。
由于循环结构的实现方式,该程序的空间复杂度为O(1),即不随输入规模的增大而增加额外的空间。
5. 总结通过编写上述程序,我们可以快速计算给定数列的前n项之和。
此程序使用for循环结构遍历并计算数列的每一项,然后将每一项的和累加得到最终结果。
用户可以使用该程序解决类似数列求和的问题,只需修改给定的数列项。
此外,在执行大规模计算时,我们需要注意程序的时间复杂度和空间复杂度,以确保程序的效率。
通过本文档的说明,我们希望读者能够理解和掌握使用MATLAB 编写数列求和程序的基本方法,并且运用所学知识解决实际问题。
通过不断练习和实践,您将能够熟练运用MATLAB 解决更加复杂和多样化的数学问题。
- 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。