工程实践与创新 实践报告.doc
工程实践与创新 实践报告实践 报 告 课程名称:工程实践与创新 学生姓名:学号:指导老师:职称:教 授 院 系:物理与电子信息工程学院 专业班级:9 20_ 级电子信息科学与技术 2021 年 6 月 30 日 实践一 基于 MATLAB 的基本操作 一.实践目的 熟悉 MATLAB 工作环境,掌握常用的数学函数。二.实践内容 (1) 熟悉 MATLAB 平台的工作环境。(2) 熟悉 MATLAB 的 5 个工作窗口。(3) MATLAB 的优先搜索顺序。三.实践步骤 一.熟悉 MATLAB 的 5 个基本窗口 mand dow (命令窗口) Workspace (工作空间窗口) mand History (命令历史记录窗口) Current Directory (当前目录窗口) Help dow (帮助窗口) (1)命令窗口(mand dow)。在命令窗口中依次输入以下命令 gt;gt;_=1 gt;gt;y=1 2 3 4 5 6 7 8 9; gt;gt;z1=1:10,z2=1:2:5; gt;gt;w=linspace(1,10,10); gt;gt;t1=ones(3),t2=ones(1,3),t3=ones(3,1) gt;gt;t4=zeros(3),t5=eye(4) 图 三-1 (2)工作空间窗口(Workspace)。单击工作空间窗口右上角的按钮,将其从 MATLAB 主界面分离出来。 在工作空间查看各个变量,或在命令窗口用 who, whos(注意大小写)查看各个 变量。 在工作空间双击变量,弹出 Array Editor 窗口(数组编辑器窗口),即可修改变量。 使用 save 命令把工作空间的全部变量保存为 my_var.mat 文件。gt;gt;save my_var.mat 输入下列命令:gt;gt;clear all 清除工作空间的所有变量 观察工作空间的变量是否被清空。使用 load 命令把刚才保存的变量载入工作空间。gt;gt;load my_var.mat 清除命令窗口命令:gt;gt;clc (3)历史命令窗口(mand History)。打开历史命令窗口,可以看到每次运行 MATLAB 的时间和曾在命令窗口输入过的命 令,练习以下几种利用历史命令窗口重复执行输入过的命令的方法。 在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择 Copy,然后再 Paste 到命令窗口。 在历史命令窗口中双击要执行的一行命令,或者选中要重复执行的一行或几行命令 后,用鼠标将其拖动到命令窗口中执行。 在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择 Evaluate Selection,也可以执行。 或者在命令窗口使用方向键的上下键得到以前输入的命令。例如,按方向键“↑” 一次,就重新将用户最后一次输入的命令调到 MATLAB 提示符下。重复地按方向上键 “↑”,就会在每次按下的时候调用再往前一次输入的命令。类似地,按方向键“↓”的时 候,就往后调用一次输入的命令。按方向键“←”或者方向键“”就会在提示符的命令 中左右移动光标,这样用户就可以用类似于在字处理软件中编辑文本的方法编辑这些命令。(4)当前目录命令窗口(Current Directory)。MATLAB 的当前目录即是系统默认的实施打开、装载、编辑和保存文件等操作时的文 件夹。打开当前目录窗口后,可以看到用“save”命令所保存的 my_var.mat 文件是保存在 目录 C:MATLABwork 下。(5)帮助窗口(Help dow) 单击工具栏的 图标,或选择菜单 View|Help,或选择菜单 Help|MATLAB Help 都能 启动帮助窗口。 通过 Inde_ 选项卡查找 log2函数的用法,在 Search inde_ for 栏中输入需要查找的 词汇“log2”,在左下侧就列出与之最匹配的词汇条目,选择“log21”,右侧的窗口就会显示相应的内容。 也可以通过 Search 选项卡查找 log2( )函数的用法。Search 选项卡与 Inde_ 选项卡 不同,Inde_ 只在专用术语表中查找,而 Search 搜索的是整个 HTML 帮助文件。二、MATLAB 的数值显示格式设置 屏幕显示方式有紧凑(pact)和松散(Loose)两种,其中 Loose 为默认方式。gt;gt;a=ones(1,30) gt;gt;format pact gt;gt;a 数字显示格式有 short、long、short e、long e 等,请参照列表练习一遍。gt;gt;format long gt;gt;pi gt;gt;format short gt;gt;pi gt;gt;format long gt;gt;pi gt;gt;format + gt;gt;pi gt;gt;-pi 3.变量的搜索顺序 在命令窗口中输入以下指令:gt;gt;pi gt;gt;sin(pi); gt;gt;e_ist("pi") gt;gt;pi=0; gt;gt;e_ist("pi") gt;gt;pi gt;gt;clear pi gt;gt;e_ist("pi") gt;gt;pi 青海民族大学 四思考题 (1)圆周率 pi 是系统的默认常量,为什么会被改变为 0? (2)3 次执行 e_ist("pi")的结果一样吗?如果不一样,试解释为什么? (3)变量名遵循什么规则,是否区分大小写? (4)linspace称为线性等分函数,说明它的用法,使用 help 命令。(5)说明 ones,zeros,eye 的用法。1.答:(1)、pi=0 为赋值语句,此时 pi 不再是系统默认常量,而是定义的变量了。(2)、3 次执行的结果不一样。e_ist函数是返回变量搜索顺序的一个函数。在第一次执行时返回 5 代表变量 pi 是由 Matlab 构建的变量。在第二次执行时已经通过赋值语句定义了变量 pi,返回 1 代表pi 是工作空间变量。第三次执行前清除了工作空间,此时 pi 为系统默认常量,和第一次执行时性质一样,所以又返回 5。(3)、变量一般不需事先对变量的数据类型进行声明,系统会依据变量被赋值的类型自动进行类型识别,也就是说变量可以直接赋值而不用提前声明。变量名要遵守以下几条规则: ·变量名必须以字母开头,只能由字母、数字或下划线组成。·变量名区分大小写; ·变量名不能超过 63 个字符; ·关键字不能作为变量名; ·最好不要用特殊常量作为变量名。(4)、 gt;gt;linspace(1,4,5) ans= 1.0000 1.7500 2.5000 3.2500 4.0000 (5)说明 ones,zeros,eye 的用法。函数 功能 eye 产生 n 阶单位矩阵 ones 产生 m_n 矩阵,元素都是“1” zeros 产生 m_n 矩阵,元素都是“0”(零矩阵) 实践二 MATLAB 数值计算 一、 实践目的 i.熟悉对矩阵的创建以及对矩阵的基本计算 二、 实践内容 三、 熟悉矩阵的几种创建方法 四、 熟悉矩阵的运算 五、 熟悉矩阵的几种操作 六、 数据的输出格式 七、 实践步骤 1、直接输入法在命令窗口按规则输入方式创建矩阵 例 1.在命令窗口创建简单的数值矩阵。gt;gt;A=1 3 2;3 1 0;2 1 5 回车后在命令窗口显示如下结果 A = 1 3 2 3 1 0 2 1 5 例 2.在命令窗口创建带运算表达式的矩阵,不显示结果。gt;gt;y=sin(pi/3),cos(pi/6);log(20),e_p(2); 输入“y”回车,在命令窗口显示出来。gt;gt;y 显示出的结果为 y = 0.8660 0.8660 2.9957 7.3891 例 3.用记事本输入一组数据 1 2 3 4 2 3 4 5 4 3 4 5 5 7 6 1 保存为 fort.t_t,用 load 命令读入, gt;gt;load fort.t_t 输入 fort 就可以在命令窗口显示创建的矩阵。gt;gt; fort 显示结果为 fort = 1 2 3 4 2 3 4 5 4 3 4 5 5 7 6 1 例 4.在窗口输入 gt;gt; _=0:0.5:2 回车后显示 _ = 0 0.5000 1.0000 1.5000 2.0000。例 5.在命令窗口输入 gt;gt; _=2:-0.5:0 回车后显示 _ = 2.0000 1.5000 1.0000 0.5000 0 例 6.建立矩阵 解:gt;gt; A(1,:)=1:5 设置矩阵的第 1 行 解:gt;gt; A(1,:)=1:5 设置矩阵的第 1 行 A = 1 2 3 4 5 gt;gt; A(2,:)=6:10 设置矩阵的第 2 行 A = 1 2 3 4 5 6 7 8 9 10 gt;gt; A(3,:)=11:15 设置矩阵的第 3 行,设置完成 A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 例 7.若创建矩阵 A=1,0,2;0,1,3;1,0,4,B=1,2,3;4,5,6;7,8,9,C=1,2;3,4;5,6 并计算 A+B、A+3、A_C、A 2 、C T 、A -1 、A 1 B。例 8.求下面方程组的根。解:解线性方程组,可以使用矩阵的左除“”,即 _AB。gt;gt;A=2,1,-3;3,-2,2;5,-3,-1; gt;gt;B=5;5;16; 列向量 gt;gt;_=AB _ = 1 -3 -2 例 9.已知矩阵 求矩阵的大小。解:gt;gt; A=1 1 1 1 1;1 2 3 4 5;1 3 6 10 15 设 A 为已知矩阵 A = 1 1 1 1 1 1 2 3 4 5 1 3 6 10 15 gt;gt; d=size(A) 测试矩阵 A 的大小 d = 3 5 gt;gt; d1=size(A,1) 测试矩阵的行数 d1 = 3 gt;gt; d2=size(A,2) 测试矩阵的列数 d2 = 5 例 10.已知矩阵 写出矩阵的元素 A(2,3),将 A(3,5)改为1。解:gt;gt; A=1 1 1 1 1;1 2 3 4 5;1 3 6 10 15 A = 1 1 1 1 1 1 2 3 4 5 1 3 6 10 15 1 1 1 1 11 2 3 4 51 3 6 10 15Aæ öç ÷=ç ÷ç ÷è ø1 1 1 1 11 2 3 4 51 3 6 10 15Aæ öç ÷=ç ÷ç ÷è øgt;gt; A(2,3) ans = 3 gt;gt; A(3,5)=-1 A = 1 1 1 1 1 1 2 3 4 5 1 3 6 10 -1 例 11.gt;gt; A=1 3 2;3 1 0;2 1 5 A = 1 3 2 3 1 0 2 1 5 gt;gt; B=4 3 61 4 3;3 4 6 B = 4 3 6 5 1 4 3 4 6 gt;gt; U(1,1)=A(1,1)+B(1,1); gt;gt; U(1,2)=A(1,2)+B(1,2); gt;gt; U(2,1)=A(2,1)-B(2,1); gt;gt; U(2,2)=A(2,2)-B(2,2); gt;gt; U U = 5 6 2 -3 例 12.拆分矩阵的例子。gt;gt; A=1 1 1 1 1;1 2 3 4 5;1 3 6 10 15 A = 1 1 1 1 1 1 2 3 4 5 1 3 6 10 15 gt;gt; A(2,3) ans = 3 gt;gt; A(3,5)=-1 A = 1 1 1 1 1 1 2 3 4 5 1 3 6 10 -1 gt;gt; A=1,2,3,4,5;6,7,8,9,10;11,12,13,14,15;16,17,18,19,20 A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 gt;gt; A(1,:) ans = 1 2 3 4 5 gt;gt; A(:,2:4) ans = 2 3 4 7 8 9 12 13 14 17 18 19 gt;gt; A(2:3,4:5) ans = 9 10 14 15 gt;gt; A(2:3,1:2:5) ans = 6 8 10 11 13 15 例 13.组合矩阵的例子。gt;gt; A=1,2;3,4 A = 1 2 3 4 gt;gt; B=2,3;4,5 B = 2 3 4 5 gt;gt; A,B ans = 1 2 2 3 3 4 4 5 gt;gt; A;B ans = 1 2 3 4 2 3 4 5 gt;gt; A;6,7 ans = 1 2 3 4 6 7 例 14.gt;gt; A=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 gt;gt; A(end,:) 取 A 的最后一行 ans = 16 17 18 19 20 gt;gt; A(1,4,3:end) 取 A 的第 1,4 两行中第 3 列到最后一列。ans = 3 4 5 18 19 20 gt;gt; A(1,4,:) 取 A 的第 1,4 两行。ans = 1 2 3 4 5 16 17 18 19 20。例 15 gt;gt;c=3.2,4.5;2.4,4.7; gt;gt; d=c,ones(size(c);zeros(size(c),eye(size(c) d = 3.20_ 4.5000 1.0000 1.0000 2.4000 4.7000 1.0000 1.0000 0 0 1.0000 0 0 0 0 1.0000。实践三 基于 MATLAB 的符号运算 一实践目的 掌握符号变量和符号表达式的创建。二实践内容 (1) 符号变量、表达式、方程及函数的表示。(2) 符号微积分运算。(3) 符号表达式的操作和转换。(4) 符号微分方程求解。三实践步骤 1.符号运算的引入 在数值运算中如果求lim_0sinπ_/_,则可以不断地让 _ 趋近 0,以求得表达式趋近什么数,_0 _ 但是终究不能令 _0,因为在数值运算中 0 是不能作除数的。MATLAB 的符号运算能解 决这类问题。输入如下命令:gt;gt;f=sym("sin(pi_)/_ ") f= sin(pi_)/_ gt;gt;limit(f,&rs;_&rs;,0第 8 页 共 8 页