matlab实验二及其答案
- 格式:pdf
- 大小:110.62 KB
- 文档页数:3
MATLAB实验答案实验一:变量和矩阵的赋值、矩阵的初等运算实验目的:1. 熟悉MATLAB的工作环境2. 掌握变量的赋值、矩阵的创建。
3. 掌握矩阵和数组的初等运算。
4. 熟悉和掌握inv、mean、var、randn、rand、ones、zeros、magic、eye函数的使用。
实验内容:1. 菜单栏File→Preferences→Command Window→Font and Colors修改字体,选择Use custom font改为24。
同样方法File→Preferences→Editor/Debugger→Font and Colors 修改字体,选择Use custom font改为24。
点击Apply,OK即可。
2. 在内产生均匀分布的200个点,形成1×200向量赋给变量X。
(结果不必记录)X=linspace(0,2*pi,200);3. 在内每间隔3产生向量Y。
Y=[0:3:10];4. 给矩阵赋值,,打开workspace查看矩阵的赋值。
使用save data A B语句存储到data.mat数据文件中。
输入Clear all命令清空所有变量,再使用load data加载矩阵A 和B。
A=[1 4 8 13;-3 6 -5 -9;2 -7 -12 18];B=[5 4 3 -2;6 -2 3 -8;-1 3 -9 7];save data A B;clear all;load data;5. 产生8*6阶的正态分布随机数矩阵R,求其各列的平均值和方差,并求全体的平均值和方差。
R=randn(8,6);a=mean(R);b= var(R);c=mean(R(:));d=var(R(:));6. 模拟选号程序,现有10000人,按顺序编号为1,2,…10000号,一次随机选出一个编号,要求随机数均匀分布。
R=round(ceil(rand(10000,1)*10000));7. 产生4*6阶的均匀分布随机数矩阵R,要求其元素在1~16之间取整数值,并求此矩阵前四列组成的方阵的逆阵。
实验一 MATLAB 运算基础1。
先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1) 0122sin 851z e =+(2) 21ln(2z x =,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e az a a --+=++=--(4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.5 解:4. 完成下列操作:(1)求[100,999]之间能被21整除的数的个数. (2) 建立一个字符串向量,删除其中的大写字母。
解:(1) 结果:(2)。
建立一个字符串向量例如:ch=’ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A OS +⎡⎤=⎢⎥⎣⎦。
解: M 文件如下;5。
下面是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦ch =123d4e56g9(1) 求方程的解。
(2) 将方程右边向量元素b 3改为0。
53再求解,并比较b 3的变化和解的相对变化。
(3) 计算系数矩阵A 的条件数并分析结论。
解: M 文件如下:实验三 选择结构程序设计1. 求分段函数的值.2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=-5.0,—3.0,1.0,2。
实验二数组(矩阵)及其运算《MATLAB原理及应用》实验报告1 •课后练习122-1 3 •1、建立/二25-1和B二31-541034-11⑴求矩阵A和B的乘积,矩阵A左除B,以及矩阵A的2次方⑵求数组A和B的乘积,数组A左除B ,及数组A的2次方程序如下:>)A二[1 2 1; 2 5 -1; 4 10 3];»B=[2 —1 3 ;3 1 -5 ; 4 — 1 1];}) C1=A*B;>} C2=A\B;>> C3=A~2;/ ? DI = A •卡B:)> D2 = A. \B;>> D3=A「2;)> Cl运行后显示:C1 =12 0 -615 4-2050 3 -35>> C2C2 =9o S000 4. 0 0 0 0 一了. 5 000 19, 3333 8. 6 6 6 7 -15, 666744, 5 000 19o 00 0 0 -3 5.500 0» C3C3 =9 2 2 28 19 -63 6 88 3» D1D1 二2-2 36 5 51 6 -1 0 3} > D2D2 =0. 5000 -2. 0000 0. 3 3330. 6667 5 o 0000 Oo 2 0 0 01。
0 0 00 - 10o 0 0 00 3. 0 00 0} > D3D3 =1 4 14 25 116 1 0 0 916 3213-1一45 10118 79A =9 6812-424 1514 1 -5152.建立矩阵< 1)用两种方法索引出A矩阵第3行第2列的元素.并将其值改为自己的学号加20(2>索引出A矩阵第2行至第4行.第二列至第5列的所有元素程序如下:〉> A二[16 3 2 1 3 —1 —4; 5 10 11 8 7 9; 9 6 8 1 2 -4 2 :415 14 1 -5 15]A =16 3 2 13 1 -45 10 1 1 8 7 99 6 8 12 —4 24 15 1 4 1 -5 15> > A (3, 2)an s =6>} A(7)ans =6» A(3, 2) = 21A 二1 6 32 13 -1 -45 1 0 11 8 7 g9 2 18 1 2 -4 24 15 1 4 1 -5 15(2) >> B=A(2:4, 2: 5)B =1 011 8 12 1 8 12 -41 5 1 4 1 一53、使用两神方法建立范围为[1°20]的向呈,使得向量中的元素相邻元袤的间隔是2 <1>改变第二个元素的值,并将其赋给一个新的变量〈学号加20〉,并求两个向量的点积(2)从第二个元素开始提取三个元素,并与向量[123]做叉积程序如下:» a=l 0 :2:20 %求 (1) ID 12 16IS20 i nspace(10. 20< 6) 14 IS20b (2) =21 21 20 >> dotb 〉 a ns 1 5 28 b=(3 : 5) %求(2) [12 3] >> cro & s(b,c )4、复数可二彳+及计程序如下:» zl =3+4* i: z2= 1 +2*i: z3=2* e xp z=zl z2/z30o 3349 4 5。
MATLAB)课后实验答案[1]实验一 MATLAB 运算基础1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1) 0122sin851z e=+(2) 21ln(2z x =+,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e az a a --+=++=--(4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0.5:2.5 解:4. 完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。
(2) 建立一个字符串向量,删除其中的大写字母。
解:(1) 结果:(2). 建立一个字符串向量例如:ch='ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A O S +⎡⎤=⎢⎥⎣⎦。
解: M 文件如下;5. 下面是一个线性方程组:123d4e56g91231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦(1) 求方程的解。
(2) 将方程右边向量元素b 3改为0.53再求解,并比较b 3的变化和解的相对变化。
(3) 计算系数矩阵A 的条件数并分析结论。
解: M 文件如下:实验三 选择结构程序设计1. 求分段函数的值。
2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0时的y 值。
Matlab课后实验题答案实验一 MATLAB运算基础1. 先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。
(1)0 122sin851ze =+(2)21ln( 2z x=+,其中2120.455i x+⎡⎤=⎢⎥-⎣⎦(3)0.30.330.3sin(0.3)ln, 3.0, 2.9,,2.9,3.0 22a ae e az a a--+=++=--L(4)2242011122123t tz t tt t t⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t=0:0.5:2.52. 已知:1234413134787,2033657327A B --⎡⎤⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦求下列表达式的值:(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 和B123453166789101769,111213141502341617181920970212223242541311A B ⎡⎤⎡⎤⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥==-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦(1) 求它们的乘积C 。
(2) 将矩阵C 的右下角3×2子矩阵赋给D 。
(3) 查看MATLAB 工作空间的使用情况。
4. 完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。
(2) 建立一个字符串向量,删除其中的大写字母。
解:(1) 结果:(2). 建立一个字符串向量 例如:ch='ABC123d4e56Fg9';则要求结果是:实验二 MATLAB 矩阵分析与处理1. 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证22E R RS A OS +⎡⎤=⎢⎥⎣⎦。
实验二MATLAB程序设计1.随机产生0~100之间的20个数,求其中最大数和最小数。
要求:方法1:采用循环结构实现方法2:调用MATLAB的max函数、min函数来实现。
解:方法一:用循环结构A=randint(1,20,[0,100])for m=1:19for n=m+1:20if A(m)>A(n)A(m)=A(m)+A(n);A(n)=A(m)-A(n);A(m)=A(m)-A(n);endendenddisp(['max=',num2str(A(20))])disp(['min=',num2str(A(1))])方法二:用max、min函数A=randint(1,20,[0,100])a=max(A);b=min(A);disp(['max=',num2str(a)])disp(['min=',num2str(b)])2.从屏幕输入两个正整数,求它们的最小公倍数。
解:法一:x=input('x=');y=input('y=');m=max(x,y);n=min(x,y);for k=m:m:x*yif rem(k,n)==0disp(['最小公倍数是',num2str(k)]);breakendend法二:直接调用函数x=input('x=');y=input('y=');k=lcm(x,y);disp(['最小公倍数是',num2str(k)]);3.编写转换成绩等级的函数文件“cj”,考试成绩在[80,100]分数段的显示优秀,在[70,80)分数段的显示良好,[60,70)分数段的显示及格,[0,60)分数段的显示不及格,要求在命令行输入“cj(X)”后,显示相应的成绩等级。
解:function result=cj(x)n=fix(x/10);switch ncase {8,9,10}disp('优秀');case 7disp('良好');case 6disp('及格');otherwisedisp('不及格');end4.生成一个10*10矩阵,矩阵元素为[0,100]的随机整数,求其中的最大和最小元素。
MATLAB全部实验及答案MATLAB全部实验及答案实验一、MATLAB基本操作实验内容及步骤4、有关向量、矩阵或数组的一些运算(1)设A=15;B=20;求C=A+B与c=a+b?(2)设A=[1 2 3;4 5 6;7 8 9],B=[9 8 7;6 5 4;3 2 1];求A*B 与A.*B?A*B就是线代里面的矩阵相乘A.*B是对应位置的元素相乘(3)设a=10,b=20;求i=a/b=0.5与j=a\b=2?(4)设a=[1 -2 3;4 5 -4;5 -6 7]请设计出程序,分别找出小于0的矩阵元素及其位置(单下标、全下标的形式),并将其单下标转换成全下标。
clear,clca=[1 -2 3;4 5 -4;5 -6 7];[x,y]=find(a<0);c=[];for i=1:length(x)c(i,1)=a(x(i),y(i));c(i,2)=x(i);c(i,3)=y(i);c(i,4)=(y(i)-1)*size(a,2)+x(i);endc(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?前面那个是虚数矩阵,后面那个出错(6)请写出完成下列计算的指令:a=[1 2 3;3 4 2;5 2 3],求a^2=?,a.^2=?a^2= 22 16 1625 26 2326 24 28a.^2=1 4 99 16 425 4 9(7)有一段指令如下,请思考并说明运行结果及其原因clearX=[1 2;8 9;3 6];X( : ) 转化为列向量(8)使用三元组方法,创建下列稀疏矩阵2 0 8 00 0 0 10 4 0 06 0 0 0方法一:clear,clcdata=[2 8 1 4 6];ir=[1 1 2 3 4 ];jc=[1 3 4 2 1];s=sparse(ir,jc,data,4,4);full(s)方法二:不用三元组法clear,clca=zeros(4,4);a(1,[1,3])=[2,8];a(2,4)=1;a(3,2)=4;a(4,1)=6;a(9)写出下列指令的运行结果>> A = [ 1 2 3 ]; B = [ 4 5 6 ];>> C = 3.^A>> D = A.^B5、已知+?=-334sin 234πt e y t 若需要计算t ∈[-1,1],取间隔为0.01,试计算出相对应的y 值。
实验一 矩阵基本运算(一)(1)设A 和B 是两个同维同大小的矩阵,问:1)A*B 和A.*B 的值是否相等?⎪⎪⎪⎭⎫⎝⎛=763514432A ⎪⎪⎪⎭⎫ ⎝⎛=945253134B A=[2 3 4;4 1 5;3 6 7];B=[4 3 1;3 5 2;5 4 9];A*B,A.*Bans =37 37 4444 37 5165 67 78ans =8 9 412 5 1015 24 632)A./B 和B.\A 的值是否相等?A=[2 3 4;4 1 5;3 6 7];B=[4 3 1;3 5 2;5 4 9];A./B,B./Aans =0.5000 1.0000 4.00001.3333 0.20002.5000 0.6000 1.5000 0.7778ans =2.0000 1.0000 0.25000.7500 5.0000 0.40001.6667 0.6667 1.28573)A/B和B\A的值是否相等? A=[2 3 4;4 1 5;3 6 7];B=[4 3 1;3 5 2;5 4 9];A/B,B/Aans =-0.3452 0.5119 0.3690 0.7857 -0.7857 0.6429 -0.9762 1.3095 0.5952ans =110.0000 -15.0000 -52.000092.0000 -13.0000 -43.0000-22.0000 4.0000 11.00004)A/B和B\A所代表的数学含义是什么?解: A/B是B*A的逆矩阵 B\A是B*A的逆矩阵(2)写出完成下列操作的命令。
1)将矩阵A第2—5行中第1,3,5列元素赋给矩阵B。
A=[0.9501 0.4565 0.9218 0.4103 0.1389 0.01530.2311 0.0185 0.7382 0.8936 0.2028 0.74680.6068 0.8214 0.1763 0.0579 0.1987 0.44510.4860 0.4447 0.4057 0.3529 0.6038 0.93180.8913 0.6154 0.9355 0.8132 0.2722 0.46600.7621 0.7919 0.9169 0.0099 0.1988 0.4186]B=A(2:5,[1,3,5])A = 0.9501 0.4565 0.9218 0.4103 0.1389 0.01530.2311 0.0185 0.7382 0.8936 0.2028 0.74680.6068 0.8214 0.1763 0.0579 0.1987 0.44510.4860 0.4447 0.4057 0.3529 0.6038 0.93180.8913 0.6154 0.9355 0.8132 0.2722 0.46600.7621 0.7919 0.9169 0.0099 0.1988 0.4186B = 0.2311 0.7382 0.20280.6068 0.1763 0.19870.4860 0.4057 0.60380.8913 0.9355 0.27222)删除矩阵A的第7号元素。
实验二程序编写
专业学号姓名成绩
电气工程及其自动化201409140305杨诚
1.编写求平均值和标准差的程序,平均值为
N
i
i
xNx
1
1
,标准差为
N
xNx
s
NiN
i
ii
121
1
。
编写程序为:
symsxnsum_xsum_x2xbarstd_dev
n=0;sum_x=0;sum_x2=0;
x=input('请输入第一个变量:');
whileisnumeric(x)&&isempty(x)==0
n=n+1;
xmat(n)=x;
sum_x=sum_x+x;
x=input('请输入下一个变量:');
end
x_bar=sum_x/n;
forii=1:n
sum_x2=sum_x2+(xmat(ii)-x_bar)^2;
end
std_dev=sqrt(sum_x2/n);
fprintf('输入的变量个数:%f\n',n);
fprintf('平均值为:%f\n',x_bar);
fprintf('标准差为:%f\n',std_dev);
程序运行结果为:
请输入第一个变量:1
请输入下一个变量:2
请输入下一个变量:3
请输入下一个变量:4
请输入下一个变量:5
请输入下一个变量:
输入的变量个数:5.000000
平均值为:3.000000
标准差为:1.414214
2.第n个Fibonacci定义如下:f(1)=1,f(2)=2,f(3)=f(1)+f(2),…,f(n)=f
(n-2)+f(n-1)。
编写程序,根据用户输入任何大于2的整数n,计算出第n个Fibonacci数。
编写程序为:
a(1)=1;
a(2)=2;
n=input('n=');
k=2;
whilea(k)<=n
a(k+1)=a(k)+a(k-1);
k=k+1;
end
num=a(k)
Fibonacci=[1:length(a);a]'
程序运行结果为:
n=5
num=
8
Fibonacci=
11
22
33
45
58
3.编写程序能够根据用户输入的x,y值,给出下面表达式对应的解,给定表达式为:
0,00,00,00,0)cos()sin(,
yxyxyxyxyexe
ex
xyx
yx
yxf
xyx
y
。
编写程序为:
symsxyf
x=input('Pleaseenterx:');
y=input('Pleaseentery:');
if(x<=0)
if(y<=0)
f=x-y;
fprintf('f(x,y)=%f\n',f);
else
f=sin(x)*cos(x*y);
fprintf('f(x,y)=%f\n',f);
end
else
if(y<=0)
f=x+exp(y);
fprintf('f(x,y)=%f\n',f);
else
f=x*exp(x)-y*exp(x*y);
fprintf('f(x,y)=%f\n',f);
end
end
程序运行结果为:
Pleaseenterx:-3
Pleaseentery:-4
f(x,y)=1.000000
Pleaseenterx:-pi/2
Pleaseentery:2
f(x,y)=1.000000
Pleaseenterx:2
Pleaseentery:-1
f(x,y)=2.367879
Pleaseenterx:1
Pleaseentery:2
f(x,y)=-12.059830