matlab2012实验1参考答案
- 格式:doc
- 大小:88.50 KB
- 文档页数:6
实验一 MATLAB 运算基础1. 先求以下表达式的值,尔后显示 MATLAB 工作空间的使用情况并保存全部变量。
(1)2sin 85 z1 21 e(2) 12z ln( x 1 x ) ,其中22 x2 1 2i5(3)ae e az sin( a 0.3) ln , a 3.0, 2.9, L , 2.9, 32 22t 0 t 1(4) 2z t 1 1 t 242t 2t 1 2 t 3,其中解:M 文件:z1=2*sin(85*pi/180)/(1+exp(2))x=[2 1+2*i;-.45 5];z2=1/2*log(x+sqrt(1+x^2))a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2)t=0:0.5:2.5;z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)4. 完成以下操作:(1) 求[100,999] 之间能被 21 整除的数的个数。
(2) 建立一个字符串向量,删除其中的大写字母。
解:(1) 结果:m=100:999;n=find(mod(m,21)==0);length(n)ans =43(2). 建立一个字符串向量比方:ch='ABC123d4e56Fg9'; 那么要求结果是:ch='ABC123d4e56Fg9';k=find(ch>='A'&ch<='Z');ch(k)=[]ch =123d4e56g9实验二 MATLAB矩阵解析与办理1. 设有分块矩阵 A E R3 3 3 2O S2 3 2 2,其中 E、R、O、S 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试经过数值计算考据 2A E R RS2O S。
实验一Matlab使用方法和程序设计一、实验目的1、掌握Matlab软件使用的基本方法;2、熟悉Matlab的数据表示、基本运算和程序控制语句3、熟悉Matlab绘图命令及基本绘图控制4、熟悉Matlab程序设计的基本方法二、实验内容:1、帮助命令使用help命令,查找sqrt(开方)函数的使用方法;解:sqrtSquare rootSyntaxB = sqrt(X)DescriptionB = sqrt(X) returns the square root of each element of the array X. For the elements of X that are negative or complex, sqrt(X) produces complex results.RemarksSee sqrtm for the matrix square root.Examplessqrt((-2:2)')ans =0 + 1.4142i0 + 1.0000i1.00001.41422、矩阵运算(1)矩阵的乘法已知A=[1 2;3 4]; B=[5 5;7 8]; 求A^2*B解:A=[1 2;3 4 ];B=[5 5;7 8 ];A^2*B(2)矩阵除法已知A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3];A\B,A/B解:A=[1 2 3;4 5 6;7 8 9 ];B=[1 0 0;0 2 0;0 0 3 ];A\B,A/B(3)矩阵的转置及共轭转置已知A=[5+i,2-i,1;6*i,4,9-i];求A.', A'解:A=[5+1i,2-1i,1;6*1i,4,9-1i ];A1=A.',A2=A'(4)使用冒号表达式选出指定元素已知:A=[1 2 3;4 5 6;7 8 9];求A 中第3列前2个元素;A 中所有列第2,3行的元素;方括号[]解:A=[1 2 3;4 5 6;7 8 9 ];B=A([1,2],[3]),C=A(2:end, : )用magic 函数生成一个4阶魔术矩阵,删除该矩阵的第四列3、多项式(1)求多项式42)(3--=x x x p 的根解:A=[1 0 -2 -4];B=roots(A)(2)已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征多项式;解:A=[1.2 3 5 .9 ; 5 1.7 5 6 ;3 9 0 1 ;1 2 3 4];A=poly(A);A=poly2sym(A)把矩阵A作为未知数代入到多项式中;4、基本绘图命令(1)绘制余弦曲线y=cos(t),t∈[0,2π]解:t=0:.1:2*pi;y=cos(t);plot(t,y),grid(2)在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5),t∈[0,2π]t=0:.1:2*pi;y1=cos(t-0.25);y2=sin(t-0.25);plot(t,y1,t,y2)grid5、基本绘图控制绘制[0,4π]区间上的x1=10sint曲线,并要求:(1)线形为点划线、颜色为红色、数据点标记为加号;(2)坐标轴控制:显示范围、刻度线、比例、网络线(3)标注控制:坐标轴名称、标题、相应文本;t=0:.01:4*pi;y=10*sin(t);plot(t,y,'-.',t,y,'r')grid6、基本程序设计(1)编写命令文件:计算1+2+…+n<2000时的最大n值;解法1:s=0;i=0;while(s<2000) i=i+1;s=s+i; ends=s-i,i=i-1解法2:s=0;for i=1:1000; s=s+i;if(s>2000) ,break;endends=s-i,i=i-1(2)编写函数文件:分别用for和while循环结构编写程序,求2的0到n次幂的和。
MATLAB基础实验指导书漳州师范学院物电系2010年10月目录实验一MATLAB环境的熟悉与基本运算 (2)实验二MATLAB数值运算 (8)实验三MATLAB语言的程序设计 (12)实验四MATLAB的图形绘制 (16)实验五采用SIMULINK的系统仿真 (20)实验六MATLAB在电路中的应用 (25)实验七MATLAB在信号与系统中的应用 (27)实验八MATLAB在控制理论中的应用 (29)实验一 MATLAB环境的熟悉与基本运算一、实验目的:1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本知识:1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器文件和搜索路径浏览器。
2.掌握MATLAB常用命令3.MATLAB变量与运算符变量命名规则如下:(1)变量名可以由英语字母、数字和下划线组成(2)变量名应以英文字母开头(3)长度不大于31个(4)区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。
MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符表2 MATLAB算术运算符表3 MATLAB关系运算符表4 MATLAB逻辑运算符表5 MATLAB特殊运算4.MATLAB的一维、二维数组的寻访表6 子数组访问与赋值常用的相关指令格式5.MATLAB的基本运算表7 两种运算指令形式和实质内涵的异同表6.MATLAB的常用函数表8 标准数组生成函数表9 数组操作函数三、实验内容1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)2、学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。
3、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、exerc3……),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。
实验报告说明:matlab 课程实验需撰写8个实验报告,每个实验报告内容写每次实验内容中标号呈黑体大号字显示的题目。
第一次实验内容:实验一 MATLAB 运算基础一、实验目的1.熟悉启动和退出MATLAB 的方法。
2.熟悉MATLAB 命令窗口的组成。
3.掌握建立矩阵的方法。
|4.掌握MATLAB 各种表达式的书写规则以及常用函数的使用。
二、实验内容1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1)22sin 8511z e︒=+ (2)12ln(2z x =,其中2120.455i +⎡⎤=⎢⎥-⎣⎦(3)0.30.33sin(0.3), 3.0, 2.9, 2.8,,2.8,2.9,3.02a ae e z a a --=+=--- 提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。
(4)2220141122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪--≤<⎩,其中t =0::】提示:用逻辑表达式求分段函数值。
2.已知12344347873657A -⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,131203327B -⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦求下列表达式的值:(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 和B12345678910111213141516171819202122232425A ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦, 30161769023497041311B ⎡⎤⎢⎥-⎢⎥⎢⎥=-⎢⎥⎢⎥⎢⎥⎣⎦(1) 求它们的乘积C 。
(2) 将矩阵C 的右下角3×2子矩阵赋给D(3) 查看MATLAB 工作空间使用情况。
4.完成下列操作:(1)求[100,999]之间能被21整除的数的个数。
实验一 Matlab使用方法和程序设计一、实验目的1、熟悉MATLAB上机环境,练习MATLAB命令、m文件;2、熟悉Matlab的数据表示、基本运算和程序控制语句;3、熟悉Matlab图形绘制、数据处理;4、熟悉Matlab程序设计的基本方法。
二MA TLAB简介MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。
MATLAB 有3种窗口,即:命令窗口(The Command Window)、m-文件编辑窗口(The Edit Window)和图形窗口(The Figure Window),而Simulink另外又有Simulink模型编辑窗口。
1.命令窗口(The Command Window)当MA TLAB启动后,出现的最大的窗口就是命令窗口。
用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。
在MA TLAB中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。
在命令窗口中输入该文件名,这一连串命令就被执行了。
因为这样的文件都是以“.m”为后缀,所以称为m-文件。
2.m-文件编辑窗口(The Edit Window)我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。
在MATLAB主界面上选择菜单“File/New/M-file”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。
3.图形窗口(The Figure Window)图形窗口用来显示MA TLAB程序产生的图形。
图形可以是2维的、3维的数据图形,也可以是照片等。
二、实验内容1、帮助命令2、矩阵运算(1)矩阵的乘法和乘方已知A=[1 2;3 4]:B=[5 5;7 8]:求A^2*B( 2 )矩阵除法已知A=[1 2 3:4 5 6:7 8 9]:B=[1 0 0:0 2 0:0 0 3],求矩阵左除A\B,右除A/B。
实验报告说明:matlab课程实验需撰写8个实验报告,每个实验报告内容写每次实验内容中标号呈黑体大号字显示的题目。
第一次实验内容实验_ MATLAB运算基础一、实验目的1. 熟悉启动和退出MATLAB的方法。
2. 熟悉MATLAB命令窗口的组成。
3•掌握建立矩阵的方法。
4•掌握MATLAB各种表达式的书写规则以及常用函数的使用。
二、实验内容1•先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。
(1) Zl =2 sin85。
1 + e22-0.45,0.3“ _ -0.3d提示:利用冒号表达式生成a向量,求各点的函数值时用点乘运算。
t20</<1(4)Z4=$—11</<2 ,其中t = 0 : 0.5 : 2.52<t<3提示:用逻辑表达式求分段函数值。
2 •已知_12 34 -4_i 3 -rA =34 7 87,B = 2 0 33 65 73-2 7求下列表达式的值:(1) A+6二B和A-B+I(其中I为单位矩阵)。
(2) A*B和A.*B o(3) A^3 和A\3。
(4) A/B和B\A。
(5 ) [A , B]和[A([l f3],;);B A2]。
3•设有矩阵A和B_12345・~301667891017-69A =1112131415,B =023-41617181920970212223242541311(1) 求它们的乘积C。
2 将矩阵C的右下角3x2子矩阵赋给D(3) 查看MATLAB I作空间使用情况。
4.完成下列操作:(1) 求[100,999]之间能被21整除的数的个数。
提示:先利用冒号表达式,再利用find和length函数。
(2) 建立一个字符串向量,删除其中的大写字母。
提示:利用find函数和空矩阵。
第二次实验内容实验三选择结构程序设计一、实验目的1. 掌握建立和执行M文件的方法。
2. 掌握利用if语句实现选择结构的方法。
Matlab 曲线绘图练习1. 绘出立方曲线3=。
y xx=-2::2;y=x.^3;plot(x,y)grid on2. 立方抛物线y=y=-2::2;x=y.^3;plot(x,y)grid on3. 高斯曲线2x y e -=。
clear; x=-2::2;y=exp(-x.^2); plot(x,y)以参数方程表示的曲线: 4. 奈尔抛物线2323,()x t y t y x ===clear; t=-2::2;x=t.^3;y=t.^2 plot(x,y)y =Columns 1 through 14Columns 15 through 28Columns 29 through 420 Columns 43 through 56Columns 57 through 70Columns 71 through 815. 半立方抛物线2323,()x t y t y x ===clear; t=-2::2;x=t.^2;y=t.^3 plot(x,y)y =Columns 1 through 14Columns 15 through 28Columns 29 through 420 Columns 43 through 56Columns 57 through 70 Columns 71 through 816. 迪卡尔曲线2332233,(30) 11at atx y x y axyt t==+-= ++clear;a=3;t=-2::2;x=3*a.*t./(1+t.^2);y=3*a.*t.^2./(1+t.^2); plot(x,y);grid on7. 蔓叶线233222,() 11at at xx y yt t a x ===++-clear;a=2;t=-10::10;x=a.*t.^2./(1+t.^2);y=a.*t.^3./(1+t.^2); plot(x,y);grid on8. 摆线(sin),(1cos)x a t t y b t=-=-。
MATLAB 实验一 MATLAB 数值计算试验报告说明:1 做试验前请先预习,并独立完成试验和试验报告。
2 报告解答方式:将MATLAB 执行命令和最后运行结果从命令窗口拷贝到每题的题目下面,请将报告解答部分的底纹设置为灰色,以便于批阅。
3 在页眉上写清报告名称,学生姓名,学号,专业以及班级。
3 报告以Word 文档书写。
文档命名方式: 学号+姓名+_(下划线)+试验几.doc 如:110400220张三_试验1.doc 4 试验报告doc 文档以附件形式发送到maya_email@ 。
凡文档命名不符合规范,或者发送方式不正确,不予登记。
5 每次试验报告的最后提交期限:下次试验课之前。
一 目的和要求1 熟练掌握MATLAB 变量的使用2 熟练掌握矩阵的创建3 熟练掌握MATLAB 的矩阵和数组的运算4 使用元胞数组和结构数组二 试验内容1 创建矩阵(必做)1.1使用直接输入,from:step:to ,linspace ,logspace 等方式创建矩阵。
1.2 输入矩阵1234246836912a ⎛⎫⎪= ⎪ ⎪⎝⎭1.2-1)分别使用全下标和单下标达方式取出元素“8”>>a=[1 2 3 4;2 4 6 8;3 6 9 12]>> a(2,4) %全下标方式 >> a(11) % 单下标方式1.2-2)分别用不同的方式从矩阵a 中取出子矩阵⎥⎦⎤⎢⎣⎡1286432%方法一:全下标方式 a([2,3],[1 2 4])%方法二:单下标方式 a([2 5 11;3 6 12])% 方法三:利用逻辑向量 l1=logical([0 1 1])l2=logical([1 1 0 1]) a(l1,l2)1.2-3)分别写出以下的执行结果:a ( :, 3 ) a (:,end) a (:, 2 : 3) a ([1 3], : )a (:) a (2 : 3) a([2 3 4])本题解答略,希望大家熟练掌握数组运算中 : end 的用法以及 全下标,单下标等方式2 矩阵的运算(必做)2.1使用format 命令,将 pi 分别用short 和long 格式显示其值。
>> format short >> pi ans = 3.1416 >> format long >> pi ans =3.141592653589792.2 设3x =, 4v =。
利用MA TLAB 分别计算下面的表达式::1) 22log()x v + 2)(2)x v ->> x=3; >> v=4;>> log(x^2+v^2)ans =3.21887582486820>> sqrt(x-3)/(x-2*v)^2 %此处,注意 / 和 \ 的使用区别,有同学混淆了 ans = 02.3 计算函数)4sin(1110)(22t ezt f t--=的值,其中t 的范围从0到pi ,步长0.1pi ;Z 为0.707。
)(1t f 为0)(1≥t f 的部分,计算)(1t f 的值。
t=0:0.1*pi:pi;z=0.707;f=10*exp(-2*t).*sin(4*t)/sqrt(1-z^2) %或f=10/sqrt(1-z^2)*exp(-2*t).*sin(4*t)l=(f>=0); % 关系运算,返回l 为逻辑向量 f1=f(l) % 利用逻辑向量l 取出f 中满足要求的元素%也可以用此指令代替:% li=find(f>0) %找出大于0元素的下标 % f1=f(li) ;2.4 设A=[1 2 1; 2 4 2; 2 1 1]; B=[3 1 2; 1 2 2; 3 1 4]; C=A+i*B. 利用MATLAB 观察下列表达式的结果:1) C ’ 和 C .’ 2) A ’ 和 A .’ 3)A*B 和A .*B (注意比较’ 和.’的区别)求解过程略。
注意区别:’ 是共轭转置,.’是非共轭转置。
* 是矩阵乘,.*是数组乘。
2.5利用MATLAB 求解线性方程组。
(思考:可以用几种方法实现)⎪⎩⎪⎨⎧=+=++=++42032153y x z y x z y x a=[1 3 1;2 1 3; 1 1 0]b=[15 20 4]' %注意符号 ' ,也可以写成b=[15;20;4], 注意符号 ;漏写则不是列向量 a\b %此处注意 / 和\ 的区别。
%解法二:a=[1 3 1;2 1 3; 1 1 0] b=[15 20 4]'inv(a)*b %此处,注意顺序,有同学写b*inv(a) 思考:错误在哪里?%解法三a=[1 3 1;2 1 3; 1 1 0] b=[15 20 4]'a^-1*b% 此题考用数值方法求解方程组。
采用符号方法,解题如下: eq1=sym('x+3*y+z=15'); eq2=sym('2*x+y+3*z=20'); eq3=sym('x+y=4');[x,y,z]=solve(eq1,eq2,eq3)2.6 分别创建两个3*3的矩阵A=round(10*rand(3)) ,B=round(20*rand(3))-10,利用MATLAB 求BA AB1-。
>> A=round(10*rand(3)),B=round(20*rand(3))-10 A =10 5 5 2 9 0 6 8 8 B =-1 8 -2 2 5 96 -6 8>> det(A*inv(B))*det(A)/det(B) %或det(A/B)*det(A)/det(B)% 或 det(A*B^(-1))*det(A)/det(B) 此题注意右除 / 和左除 \ 区别,有同学混淆。
ans =2.342773844231574 多维数组创建下面的矩阵⎥⎦⎤⎢⎣⎡=4321A ,⎥⎦⎤⎢⎣⎡=14131211B ,⎥⎦⎤⎢⎣⎡=24232221C 4.1将它们合并为一个322⨯⨯的多维数组 ABC A=[1 2;3 4] B=[11 12;13 14] C=[5 6;7 8] ABC(:,:,1)=A; ABC(:,:,2)=B;ABC(:,:,3)=C;或者:ABC=cat(3,A,B,C)4.2提取ABC 矩阵元素‘22’。
ABC(1,2,3) %下标 或者:ABC(11); %索引4.3将ABC 矩阵重排为3行,2列,2页 reshape(ABC,[3,2,2])4.4分别提取A,B,C 矩阵的第2列,组成一个32⨯数组ABC2 ABC2=cat(2,A(:,2),B(:,2),C(:,2)) 或者: ABC2=[A(:,2),B(:,2),C(:,2)]5 字符串5.1 创建字符串。
写出执行结果: str='hello matlab!', abs(str) double(str)ss1=strvcat('this','is','a','','book') ss2=char('this','is','a','','book') ss3=str2mat('this','is','a','','book') 6元胞数组和结构数组的使用学生信息存放在下列的表格中6.1 创建元胞数组1)将每个学生的姓名以字符串形式存储,并将所有的字符串存入一个元胞数组name={'Mike';'Nancy';'Emily'}2)将每个学生的学号以字符串形式存储,并将所有的字符串存入一个字符矩阵id=['1001';'1002';'1003']3)将学生的所有成绩存放在一个二维数组中score=[67,83,90;70 78 86;85,80,92]4)将1)2) 3)中创建的数组合并到一个元胞数组中stuCell={name,id,score}5)从4)中创建的元胞中提取所有学生的数学成绩。
stuCell{3}(:,2)1创建结构数组,将表格信息保存在结构数组student中。
方法一:student=struct('name',{'Mike','Nancy','Emily'},'id',{'1001','1002','1003'},'score',{[67,83,90],[70,78, 86],[85,80,92]})思考:student=struct('name',{'Mike','Nancy','Emily'},'id',['1001','1002','1003'],'score',[[67,83,90],[70,78,8 6],[85,80,92]])显示结果是什么?错在哪里。
方法二:student(1)=struct('name','Mike','Id','1001','score',[67 83 90]);student(2)=struct('name','Nancy','Id','1002','score',[70 78 86]);student(3)=struct('name','Emily','Id','1003','score',[85 80 92])方法三:student(1).name=('Mike')student(1).id=’1001’student(1).score=[67 83 90]student(2).name=('Nancy')student(2).id=’1002’student(2).score=[70 78 86]student(3).name=('Emily')student(3).id=’1003’student(3).score=[85 80 92];2 用disp命令或者fprintf命令打印李四的成绩信息,显示格式如下:×××(姓名)的语文成绩:×××是: ×××方法一:fprintf('%s的语文成绩是%d\n',student(2).name,student(2).score(1));方法二:str=[student(2).name,'的语文成绩是:',num2str(student(2).score(1))]; disp(str)思考:str=[student(2).name,'的语文成绩是:', student(2).score(1)];disp(str)显示结果将是什么?。